rz sz ssh crontab grep tree scp cp
工做的第一天就是服務器上的各類命令行使用狀況,本身感受還不很熟悉。操做起來比較緩慢,不熟悉。使用比較多的就是vim編輯器,由於在服務器上直接操做比較多。html
先從簡單的提及吧,我的感受Linux各類命令的使用必須得很是的熟練才行。這樣纔會在工做中才會可以更快的解決問題,提升編程的效率!java
首先來一個理論概念:linux
軟連接也叫符號連接,對符號文件進行讀或寫操做的時候,系統會自動把該操做轉換爲對源文件的操做,但刪除連接文件時,系統僅僅刪除連接文件,而不刪除源文件自己。
1.rzweb
Receive Zmodem 接收文件傳輸協議,從本地上傳文件到服務器。正則表達式
2.szshell
Send Zmodem 發送文件傳輸協議,從服務器發送文件到本地。express
3.sshapache
在1995年,芬蘭學者Tatu Ylonen設計了SSH協議,將登陸信息所有加密,成爲互聯網安全的一個基本解決方案,迅速在全世界得到推廣。SSH是一種網絡協議,用於計算機之間的加密登陸。若是一個用戶從本地計算機,使用SSH協議登陸另外一臺遠程計算機,咱們就能夠認爲,這種登陸是安全的,即便被中途截獲,密碼也不會泄露。SSH只是一種協議,存在多種實現,既有商業實現,也有開源實現。
編程
用戶名:uservim
遠程主機:host
(1)ssh遠程登陸
ssh user@host
(2)若是本地用戶名與遠程用戶名一致,登陸時能夠省略用戶名
ssh host
(3)ssh的默認端口是22,也就是說,登陸請求會送進遠程主機的22端口。使用p參數,能夠修改這個端口。
ssh -p 80 user@host
(4)ssh可以保證安全,緣由在於它採用了公鑰加密,具體過程以下:
a.遠程主機收到用戶的登陸請求,把本身的公鑰發給用戶。
b.用戶使用這個公鑰,將登陸密碼加密後,發送回來。
c.遠程主機用本身的私鑰,解密登陸密碼,若是密碼正確,就贊成用戶登陸。
不過,這個過程存在一個風險:中間人攻擊,這裏再也不詳述。感興趣本身谷歌。
4.crontab
百度百科:經常使用於Linux,Unix和類Unix的操做系統之中,用於設置週期性被執行的指令。該命令從標準輸入設備讀取指令,並將其存放於「crontab」文件中,以供以後讀取和執行。crontab儲存的指令被守護進程激活, crond經常在後臺運行,每一分鐘檢查是否有預約的做業須要執行。這類做業通常稱爲cron jobs。crontab文件包含送交cron守護進程的一系列做業和指令。每一個用戶能夠擁有本身的crontab文件;同時,操做系統保存一個針對整個系統的crontab文件,該文件一般存放於/etc或者/etc之下的子目錄中,而這個文件只能由系統管理員來修改。
(1)crond簡介,crond是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護進程。crond進程每分鐘會按期檢查是否有要執行的任務,若是有要執行的任務,則自動執行該任務。Linux下的任務調度分爲兩類:系統任務調度和用戶任務調度。
系統任務調度:系統週期性所要執行的工做。好比寫緩存數據到硬盤、日誌清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件。
用戶任務調度:用戶按期要執行的工做,好比用戶數據備份、定時郵件提醒等。用戶可使用 crontab 工具來定製本身的計劃任務。全部用戶定義的crontab 文件都被保存在 /var/spool/cron目錄中。其文件名與用戶名一致。
使用者權限文件:
(1)cron.deny該文件中所列用戶不容許使用crontab命令.
/etc/cron.deny
(2)cron.allow該文件中所列用戶容許使用crontab命令.
/etc/cron.allow
(3)全部用戶crontab文件存放的目錄,以用戶名命名.
/var/spool/cron/
(4)crontab文件的含義:
用戶所創建的crontab文件中,每一行都表明一項任務,每行的每一個字段表明一項設置。
它的格式共分爲六個字段,前五段是時間設定段,第六段是要執行的命令段,格式以下:
minute hour day month week command
其中:
minute: 表示分鐘,能夠是從0到59之間的任何整數。
hour:表示小時,能夠是從0到23之間的任何整數。
day:表示日期,能夠是從1到31之間的任何整數。
month:表示月份,能夠是從1到12之間的任何整數。
week:表示星期幾,能夠是從0到7之間的任何整數,這裏的0或7表明星期日。
command:要執行的命令,能夠是系統命令,也能夠是本身編寫的腳本文件。
以上各個字段中,還可使用如下特殊字符:
星號(*):表明全部可能的值,例如month字段若是是星號,則表示在知足其它字段的制約條件後每個月都執行該命令操做。
逗號(,):能夠用逗號隔開的值指定一個列表範圍,例如,「1,2,5,7,8,9」
中槓(-):能夠用整數之間的中槓表示一個整數範圍,例如「2-6」表示「2,3,4,5,6」
正斜線(/):能夠用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線能夠和星號一塊兒使用,例如*/10,若是用在minute字段,表示每十分鐘執行一次。
(5)命令格式
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
功能:經過crontab 命令,咱們能夠在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位能夠是分鐘、小時、日、月、周及以上的任意組合。這個命令很是適合週期性的日誌分析或數據備份等工做。
參數:
1 -u user:用來設定某個用戶的crontab服務,例如,「-u ricky」表示設定ricky用戶的crontab服務,此參數通常有root用戶來運行。 2 file:file是命令文件的名字,表示將file作爲crontab的任務列表文件並載入crontab。若是在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。 3 -e:編輯某個用戶的crontab文件內容。若是不指定用戶,則表示編輯當前用戶的crontab文件。 4 -l:顯示某個用戶的crontab文件內容,若是不指定用戶,則表示顯示當前用戶的crontab文件內容。 5 -r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,若是不指定用戶,則默認刪除當前用戶的crontab文件。 6 -i:在刪除用戶的crontab文件時給確認提示。
在開始crontab的操做的時候,咱們首先要備份一下:
crontab -l > $HOME/mycron
一旦不當心誤刪了crontab文件,也可以迅速恢復。
恢復方法:
若是不當心誤刪了crontab文件,假設你在本身的$HOME目錄下還有一個備份,那麼能夠將其拷貝到/var/spool/cron/<username>,其中<username>是用戶名。若是因爲權限問題沒法完成拷貝,能夠用:
crontab <filename>
<filename>是在$HOME目錄中副本的文件名。
在編輯crontab命令的時候,最好在crontab文件的每個條目之上加入一條註釋,這樣就能夠知道它的功能、運行時間,更爲重要的是,知道這是哪位用戶的做業。
crontab -e命令添加、刪除或編輯crontab文件中的條目
crontab -l命令列出crontab的所有信息
crontab -r命令刪除crontab文件
前輩經驗注意點:
有些crontab的變體有些怪異,因此在使用crontab命令時要格外當心。若是遺漏了任何選項,crontab可能會打開一個空文件,或者看起來像是個空文件。這時敲delete鍵退出,不要按<Ctrl-D>,不然你將丟失crontab文件。
(6)crontab使用注意事項:
a. 注意環境變量問題
1)腳本中涉及文件路徑時寫全局路徑;
2)腳本執行要用到java或其餘環境變量時,經過source命令引入環境變量。
3)當手動執行腳本OK,可是crontab死活不執行時。這時必須大膽懷疑是環境變量惹的禍,並能夠嘗試在crontab中直接引入環境變量解決問題:
0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh
b.注意清理系統用戶的郵件日誌
每條任務調度執行完畢,系統都會將任務輸出信息經過電子郵件的形式發送給當前系統用戶,這樣日積月累,日誌信息會很是大,可能會影響系統的正常運行,所以,將每條任務進行重定向處理很是重要。
例如,能夠在crontab文件中設置以下形式,忽略日誌輸出: 0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1 「/dev/null 2>&1」表示先將標準輸出重定向到/dev/null,而後將標準錯誤重定向到標準輸出,因爲標準輸出已經重定向到了/dev/null,所以標準錯誤也會重定向到/dev/null,這樣日誌輸出問題就解決了。
c.系統級任務調度與用戶級任務調度
系統級任務調度主要完成系統的一些維護操做,用戶級任務調度主要完成用戶自定義的一些任務,能夠將用戶級任務調度放到系統級任務調度來完成(不建議這麼作),可是反過來卻不行,root用戶的任務調度操做能夠經過「crontab –uroot –e」來設置,也能夠將調度任務直接寫入/etc/crontab文件,須要注意的是,若是要定義一個定時重啓系統的任務,就必須將任務放到/etc/crontab文件,即便在root用戶下建立一個定時重啓系統的任務也是無效的。
d.其餘注意事項
新建立的cron job,不會立刻執行,至少要過2分鐘才執行。若是重啓cron則立刻執行。
當crontab忽然失效時,能夠嘗試/etc/init.d/crond restart解決問題。或者查看日誌看某個job有沒有執行/報錯tail -f /var/log/cron。
千萬別亂運行crontab -r。它從Crontab目錄(/var/spool/cron)中刪除用戶的Crontab文件。刪除了該用戶的全部crontab都沒了。
在crontab中%是有特殊含義的,表示換行的意思。若是要用的話必須進行轉義\%,如常常用的date ‘+%Y%m%d’在crontab裏是不會執行的,應該換成date ‘+\%Y\%m\%d’。
crontab參考:http://www.jb51.net/LINUXjishu/151805.html
5.grep
grep《Global Regular Expression Print》(global search regular expression and print out the line)全面搜索正則表達式並把行打印出來,
是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不一樣。
grep [options] 「搜索的字符串」 filename
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大 小寫(只適用於單字符)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的全部行。
pattern正則表達式主要參數:
\: 忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:全部的單個字符。
* :有字符,長度能夠爲0。
(1)將/etc/passwd,有出現 root 的行取出來.
grep root /etc/passwd
1 root:x:0:0:root:/root:/bin/bash 2 operator:x:11:0:operator:/root:/sbin/nologin
或者
cat /etc/passwd | grep root
1 root:x:0:0:root:/root:/bin/bash 2 operator:x:11:0:operator:/root:/sbin/nologin
感興趣能夠本身谷歌更多grep案例。
6.tree
語法:
tree(選項)(參數)
選項:
-a:顯示全部文件和目錄; -A:使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合; -C:在文件和目錄清單加上色彩,便於區分各類類型; -d:先是目錄名稱而非內容; -D:列出文件或目錄的更改時間; -f:在每一個文件或目錄以前,顯示完整的相對路徑名稱; -F:在執行文件,目錄,Socket,符號鏈接,管道名稱名稱,各自加上"*","/","@","|"號; -g:列出文件或目錄的所屬羣組名稱,沒有對應的名稱時,則顯示羣組識別碼; -i:不以階梯狀列出文件和目錄名稱; -l:<範本樣式> 不顯示符號範本樣式的文件或目錄名稱; -l:如遇到性質爲符號鏈接的目錄,直接列出該鏈接所指向的原始目錄; -n:不在文件和目錄清單加上色彩; -N:直接列出文件和目錄名稱,包括控制字符; -p:列出權限標示; -P:<範本樣式> 只顯示符合範本樣式的文件和目錄名稱; -q:用「?」號取代控制字符,列出文件和目錄名稱; -s:列出文件和目錄大小; -t:用文件和目錄的更改時間排序; -u:列出文件或目錄的擁有者名稱,沒有對應的名稱時,則顯示用戶識別碼; -x:將範圍侷限在現行的文件系統中,若指定目錄下的某些子目錄,其存放於另外一個文件系統上,則將該目錄予以排除在尋找範圍外。
7.scp cp
Linux中cp和scp命令的使用方法:
Linux爲咱們提供了兩個用於文件copy的命令,一個是cp,一個是scp,可是他們略有不一樣。
cp --- 主要是用於在同一臺電腦上,在不一樣的目錄之間來回copy文件 scp --- 主要是在不一樣的Linux系統之間來回copy文件
cp的具體用法:
命令基本格式:
cp [OPTIONS] SOURCE DEST --- 從源路徑copy文件到目的路徑
cp [OPTIONS] SOURCE... DIRECTORY --- 將多個源文件copy到指定的目錄(多個源文件用空格分隔)
OPTIONS: -a same as -dpR 儘量將源文件狀態、權限等資料都照原裝予以複製,而且是遞歸copy; -r 表示遞歸copy,若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地; -f 表示force,若目的地已經有相同檔名的檔案存在,則在複製前先予以刪除再行復制;
具體案例多多谷歌。
scp的具體用法:
scp是有Security的文件copy,基於ssh登陸。
scp是有Security的文件copy,基於ssh登陸。
命令基本格式:
scp [OPTIONS] file_source file_target
OPTIONS: -v 和大多數 linux 命令中的 -v 意思同樣 , 用來顯示進度 . 能夠用來查看鏈接、認證、 或是配置錯誤 -C 使能壓縮選項 -P 選擇端口
-4 強行使用 IPV4 地址 .
-6 強行使用 IPV6 地址 .
從本地複製到遠程:
scp local_file remote_username@remote_ip:remote_folder
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
而後會提示你輸入另外那臺172.19.2.75主機的root用戶的登陸密碼,接着就開始copy了,複製目錄加參數 -r 便可。
從遠程複製到本地:
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/1.mp3 scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/
scp root@172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz
注意兩點:
1.若是遠程服務器防火牆有特殊限制,scp便要走特殊端口,具體用什麼端口視狀況而定,命令格式以下: scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator 2.使用scp要注意所使用的用戶是否具備可讀取遠程服務器相應文件的權限。
cp scp 參考:http://www.jb51.net/LINUXjishu/70474.html
暫時寫着麼多辣。:)