linux腳本換行
1. 在linux命令行中要怎麼換行
就能換行 並且不影響你繼續寫命令,
出現>可以繼續輸入命令。
例如:apache源代碼安裝,
./configure --prefix=/export/apache
--enable-moles=most
--enable-mods-shared=all
--enable-so
--enable-rewrite
2. linux shell腳本換行問題
不是換行,而是續行,就是說一行寫不下了,下一行繼續,而不是一個命令的結束
你說報java: command not found,跟沒有關系,錯誤的原因:
你沒有裝java
path沒有設對,echo $PATH看一下java的執行文件在不在其中的一個目錄,沒有,加之
3. Linux Shell命令換行問題
xxxxxxx \
xxxxxxxx
或者 xxxxxxx ; xxxxxxx ;xxxxxxx
\ 後面回車不會馬上執行本條命令而是換行繼續。; 是運行完前面就繼續後面的,同樣 && 是前面正確就運行後面,|| 是前面運行不正確就運行後面。
放棄上一行好像不行。反正我是不會……
命令行裡面 ^C 就到下一行了上面那行不會被執行。如果你是在文本編輯器裡面寫程序,放棄本行可以看當前文本編輯器的操作手冊,有刪除本行的快捷鍵。
我覺得你這個「代碼」絕對是用錯詞了。應該是「命令」。
4. 在Linux部署進程守護腳本遇到的坑
    昨天在Linux做個進程守護腳本時發生了幾個小問題,實屬不該。先總結如下,在以後的實踐中一個避免這樣的問題。同時針對cron,再次深入學習實踐。
  
 1、換行符問題
  
     腳本與運行報錯「:badinterpreter:Nosuchfileordirectory」。
  
     腳本在windows下編輯,有幾條命令是直接復制過來使用的,雖然vs code可以在右下角選擇行尾序列,但是在實際運行時還是提示無法識別/r,每一行都多了個^M  。
  
   \r\n: Dos和Windows採用回車+換行(CR+LF)表示下一行,即^M$
  
  \n: 而UNIX/Linux採用換行符(LF)表示下一行
  
  \r: 蘋果機(MAC OS系統)則採用回車符(CR)表示下一行 
  
 2、= 賦值問題
  
     筆者在使用if條件表達式時,知道條件要放在方括弧之間,並且要有空格。誤以為變數賦值=也要空格,運行時發現變數無法識=識別,後來才知道變數賦值=不能有空格。
  
 3、cron定時任務的環境變數問題
  
     用戶的crontab定時任務不會使用默認的變數, 需要寫全路徑,包括crontab調用的腳本裡面 。而系統cron定時任務是由定義環境變數的。MAILTO是表示例行性命令發生錯誤時,會將錯誤訊息郵件傳給root,伺服器中關閉postfix,導致郵件發送不成功,全部小文件堆積在/var/spool/postfix/maildrop/裡面。
                                          
 4、cron中執行的程序有輸出內容,輸出內容會以郵件形式發給cron的用戶,而sendmail沒有啟動所以就產生了/var/spool/mail目錄下的那些文件,日積月累可能撐破磁碟。在cron中命令後面加上 >/dev/null 2>&1 來不輸出。
  
 5、crontab中的指令需要root,配置/etc/sudoers文件來保證sudo可用,其實可用使用系統任務計劃,指定root來執行即可。
  
      最後,筆者專注於使用cron,現在在以前的文章(樹莓派上測試)- Linux crontab定時任務詳細分解 的基礎上,在騰訊雲伺服器centos上補充以下cron的知識。
  
  用戶計劃任務 :
  
 1、crond時cron的守護進程,crond是由多個配置文件和系統范圍內的文件控制的,每個用戶對應一個配置文件。crond守護進程是cronie軟體的一部分。用戶的配置文件在/var/spool/cron/username。
  
 2、crontab命令
  
     crontab -e 編輯當前用戶的定時計劃
  
     crontab -l 列出當前用戶的定時計劃
  
      crontab -r 刪除當前用戶的所有定時計劃
  
        crontab filename 刪除當前用戶的所有定時計劃,並從filename中讀取作業,如果未指定任何文件,則使用stdin 。
  
 3、格式,另外*/x表示間隔x個周期。 用戶計劃任務沒有user-name欄位! 
                                          
   */7  9-16  *  jul 5 command表示7月的每周五的上午9到下午5點 間,每七分鍾執行一次。
  
  系統計劃任務: 
  
 1、系統cron不是由crontab來執行的,而是在一組配置文件中定義的,配置文件多了一個欄位-用戶欄位,指定作業在那個用戶下運行。
  
 2、系統計劃任務儲存在/etc/crontab、 /etc/cron.d/*  以及/etc/cron.* ,/etc/crontab的語法規則參照上面的圖。 /etc/cron.d/時軟體產生的一些更新任務,一般不在裡面做操作。
  
 3、預定義作業,cron.daily、cron.hourly、cron.monthly、cron.weekly下面儲存的是可執行腳本。
                                          
     /etc/cron.hourly/*腳本是使用runparts命令從/etc/cron.d/0hourly中定義的,表示每小時的第一分鍾將 /etc/cron.hourly/下面的腳本全部執行。
                                          
     /etc/cron.daily、 /etc/cron.monthly、 /etc/cron.weekly也是使用runparts命令,但是是從/etc/anacrontab中執行的。
                                          
 4、/etc/anacrontab語法規則
  
        START_HOURS_RANGE=3-22,表示Anacron jobs will start between 3am and 10pm.
  
        RANDOM_DELAY=45,The RANDOM_DELAY variable denotes the maximum number of  minutes  that will be added to  the  delay  in  minutes variable  which  is specified for each job.
  
      上圖中,對於 /etc/cron.daily,那麼delay 會是 5 minutes + RANDOM_DELAY  。
  
     接下來就是4個重要的參數:
  
        period in days ,delay in minutes ,job-identifier,   command
  
      The period in days variable表示執行周期,每多少天運行一次該作業。
  
     delay in minutes:上面提到的執行的延時,啟動作業前,crond等待的時間。
  
     job-identifier:標識作業的唯一名稱,用做日誌記錄。是/var/spool/anacron中文件的名稱,檢查該作業是否已運行,/etc/anacrontab啟動作業時,會更新此文件的時間戳,檢查作業上次運行的時間。anacron 會分析現在的時間與時間記錄文件所記載的上次執行 anacron 的時間,將兩者進行比較,如果兩個時間的差值超過 anacron 的指定時間差值(一般是 1 天、7 天和一個月),就說明有定時任務沒有執行,這時 anacron 會介入並執行這個漏掉的定時任務,從而保證在關機時沒有執行的定時任務不會被漏掉。這也是為什麼/etc/cron.{daily,weekly,monthly} 目錄中的定時任務只會被 anacron 調用,而 /etc/cron.hourly/被cron調用 。
  
      command:執行命令可以是普通命令或者腳本。
                                          
 5、cron的訪問控制
  
     /etc/cron.allow、    /etc/cron.deny ,以決定哪些用戶可以使用調度服務。
  
     如果只有cron.deny文件,而cron.allow文件不存在,則除了黑名單之外的所有用戶都可以使用;
  
     如果只有cron.allow文件存在,而cron.deny文件不存在時,則只有白名單用戶才可以使用,,包括root。
  
     如果兩個文件都存在,則忽略cron.allow文件。
  
     如果兩個文件都不存在,每個用戶都可以訪問。
5. Linux的shell腳本的read怎麼換行輸入
在末尾加反斜桿\,即可換行輸入
