1125使用的命令行

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

grepGlobal 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

暫時寫着麼多辣。:)

tree命令以樹狀圖列出目錄的內容

來自: http://man.linuxde.net/tree
tree命令以樹狀圖列出目錄的內容。

來自: http://man.linuxde.net/tree tree命令以樹狀圖列出目錄的內容。
相關文章
相關標籤/搜索