linux

常用快捷鍵

按鍵 作用
Ctrl+c 終止進程
Ctrl+d 鍵盤輸入結束或退出終端
Ctrl+s 暫停當前程序,暫停後按下任意鍵恢復運行
Ctrl+z 將當前程序放到後臺運行,恢復到前臺爲命令fg
Ctrl+a 將光標移至輸入行頭,相當於Home鍵
Ctrl+e 將光標移至輸入行末,相當於End鍵
Ctrl+k 刪除從光標所在位置到行末
Alt+Backspace 向前刪除一個單詞
Shift+PgUp 將終端顯示向上滾動
Shift+PgDn 將終端顯示向下滾動
Tab 命令補全 / 檔案補全
Ctrl+u / Ctrl+k 從遊標處向前/向後刪除指令串
Ctrl+a / Ctrl+e 讓遊標處移動到指令串最前/最後

常用命令

ls命令

#顯示除了.(當前目錄)和..(上一級目錄)之外的所有文件,包括隱藏文件(Linux下以.開頭的文件爲隱藏文件)
ls -A
#使用較長格式列出文件
ls -l 或 ll 
#查看某一個目錄的完整屬性,而不是顯示目錄裏面的文件屬性:
ls -al 
#顯示當前目錄下的所有文件及文件夾包括隱藏的.和..等的詳細信息(最常用)
ls -dl <目錄名>
#顯示所有文件大小,並以普通人類能看懂的方式呈現:
ls -AsSh
其中小 s 爲顯示文件大小,大 S 爲按文件大小排序,若需要知道如何按其它方式排序,請使用“man”命令查詢。

更改用戶權限

chmod go-rw iphone6

g、o 還有 u 分別表示 group、others 和 user,+ 和 - 分別表示增加和去掉相應的權限。

chmod 741 filename 

讓本人可讀寫執行、同組用戶可讀、其他用戶可執行文件filename。

八進制數字法:
命令格式:chmod abc file
其中a,b,c各爲一個八進制數字,分別表示User、Group、及Other的權限。
4 (100) 表示可讀。
2 (010) 表示可寫。
1 (001) 表示可執行。
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=5。

目錄結構及文件操作

這裏寫圖片描述

使用 cd 命令可以切換目錄,在 Linux 裏面使用 . 表示當前目錄,… 表示上一級目錄(注意,我們上一節介紹過的,以 . 開頭的文件都是隱藏文件,所以這兩個目錄必然也是隱藏的,你可以使用 ls -a 命令查看隱藏文件), - 表示上一次所在目錄,~ 通常表示當前用戶的 home 目錄。使用 pwd 命令可以獲取當前所在路徑(絕對路徑)

#進入上一級目錄:
cd ..

#進入你的 home 目錄:
cd ~ 或 cd /home/<你的用戶名>

#使用 pwd 獲取當前路徑:
pwd

# 絕對路徑
cd /usr/local/bin
# 相對路徑
cd ../../usr/local/bin

其它命令

#創建一個名爲文件,touch是一個命令
touch file 

#進入一個目錄,cd是一個命令
cd /etc/

#查看當前所在目錄
pwd

#命令用於讀取指定文件的內容並打印到終端輸出
cat

#創建名爲“ mydir ”的空目錄:
mkdir mydir

#使用 cp(copy)命令複製一個文件到指定目錄。
#將之前創建的“ test ”文件複製到“ /home/shiyanlou/father/son/grandson ”目錄中:
cp test father/son/grandson
#要成功複製目錄需要加上 -r 或者 -R 參數,表示遞歸複製:
cp -r father family

文件類型

關於文件類型,這裏有一點你必需時刻牢記 Linux 裏面一切皆文件,正因爲這一點纔有了設備文件( /dev 目錄下有各種設備文件,大都跟具體的硬件設備相關)這一說。
socket:網絡套接字,具體是什麼,感興趣的用戶可以自己去了解或期待實驗樓的後續相關課程。
pipe 管道,這個東西很重要,我們以後將會討論到,這裏你先知道有它的存在即可。
軟鏈接文件:鏈接文件是分爲兩種的,另一種當然是“硬鏈接”(硬鏈接不常用,具體內容不作爲本課程討論重點,而軟鏈接等同於 Windows 上的快捷方式,你記住這一點就夠了)。

shell常用通配符

通配符是一種特殊語句,主要有星號(*)和問號(?),用來對字符串進行模糊匹配(比如文件名、參數名)。當查找文件夾時,可以使用它來代替一個或多個真正字符;當不知道真正字符或者懶得輸入完整名字時,常常使用通配符代替一個或多個真正字符。

字符 含義
* 匹配 0 或多個字符
? 匹配任意一個字符
[list] 匹配 list 中的任意單一字符
[!list] 匹配 除list 中的任意單一字符以外的字符
[c1-c2] 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z]
{string1,string2,…} 匹配 string1 或 string2 (或更多)其一字符串
{c1…c2} 匹配 c1-c2 中全部字符 如{1…10}

文件基本操作

新建

#新建空白文件
$ touch file 

#新建目錄 -p
$ mkdir directory
#使用 -p 參數,同時創建父目錄(如果不存在該父目錄),如下我們同時創建一個多級目錄(這在安裝軟件、配置安裝路徑時非常有用):
mkdir -p father/son/grandson

複製

#複製文件
使用 cp(copy)命令複製一個文件到指定目錄。
將之前創建的“ test ”文件複製到“ /home/shiyanlou/father/son/grandson ”目錄中:
$ cp test father/son/grandson

#複製目錄 -r
$ cp -r father family

刪除

#刪除文件
$ rm test
#強制刪除 -f
$ rm -f test
 
#刪除目錄 -r
$ rm -r family

移動文件、重命名

#重命名文件
#mv 舊的文件名 新的文件名:
$ mv file1 myfile

#批量重命名
# 使用通配符批量創建 5 個文件:
$ touch file{1..5}.txt
# 批量將這 5 個後綴爲 .txt 的文本文件重命名爲以 .c 爲後綴的文件:
$ rename 's/\.txt/\.c/' *.txt
# 批量將這 5 個文件,文件名改爲大寫:
$ rename 'y/a-z/A-Z/' *.c

查看文件

cat、tac命令

#cat,tac 打印文件內容到標準輸出(終端),其中 cat 爲正序顯示,tac 爲倒序顯示。
#顯示行數 -n
$ cat -n passwd

nl 命令,添加行號並打印,這是個比 cat -n 更專業的行號打印命令。
這裏簡單列舉它的常用的幾個參數:
-b : 指定添加行號的方式,主要有兩種:
-b a:表示無論是否爲空行,同樣列出行號("cat -n"就是這種方式)
-b t:只列出非空行的編號並列出(默認爲這種方式)
-n : 設置行號的樣式,主要有三種:
-n ln:在行號字段最左端顯示
-n rn:在行號字段最右邊顯示,且不加 0
-n rz:在行號字段最右邊顯示,且加 0
-w : 行號字段佔用的位數(默認爲 6 位)


tail、head命令

#查看文件前幾行
$ tail /etc/passwd
#選擇看幾行 -n
$ tail -n 1 /etc/passwd
#實時讀取某文件內容並顯示 -f
$ tail -f /etc/passwd

查看文件類型

$ file /bin/ls

文件打包與壓縮

zip命令

$ zip -r -q -o shiyanlou.zip /home/shiyanlou
$ du -h shiyanlou.zip
$ file shiyanlou.zip

上面命令將目錄 /home/shiyanlou 打包成一個文件,並查看了打包後文件的大小和類型。
第一行命令中,-r 參數表示遞歸打包包含子目錄的全部內容,-q 參數表示爲安靜模式,即不向屏幕輸出信息,-o,表示輸出文件,需在其後緊跟打包輸出文件名。後面使用 du 命令查看打包後文件的大小。

注意: 關於 zip 命令,因爲 Windows 系統與 Linux/Unix 在文本文件格式上的一些兼容問題,比如換行符(爲不可見字符),在 Windows 爲 CR+LF(Carriage-Return+Line-Feed:回車加換行),而在 Linux/Unix 上爲 LF(換行),所以如果在不加處理的情況下,在 Linux 上編輯的文本,在 Windows 系統上打開可能看起來是沒有換行的。如果你想讓你在 Linux 創建的 zip 壓縮文件在 Windows 上解壓後沒有任何問題,那麼你還需要對命令做一些修改:

#需要加上 -l 參數將 LF 轉換爲 CR+LF 來達到以上目的
$ zip -r -l -o shiyanlou.zip /home/shiyanlou

unzip命令

使用安靜模式,將文件解壓到指定目錄:
$ unzip -q shiyanlou.zip -d ziptest

rar命令

注意:rar 的命令參數沒有 -,如果加上會報錯。

$ rar a shiyanlou.rar .
上面的命令使用 a 參數添加一個目錄 ~ 到一個歸檔文件中,如果該文件不存在就會自動創建。

從指定壓縮包文件中刪除某個文件:
$ rar d shiyanlou.rar .zshrc

查看不解壓文件:
$ rar l shiyanlou.rar

unrar命令

全路徑解壓:
$ unrar x shiyanlou.rar

去掉路徑解壓:
$ mkdir tmp
$ unrar e shiyanlou.rar tmp/

tar命令

不進行壓縮只是進行打包(創建歸檔文件):

$ tar -cf shiyanlou.tar ~

上面命令中,-c 表示創建一個 tar 包文件,-f 用於指定創建的文件名,注意文件名必須緊跟在 -f 參數之後,比如不能寫成 tar -fc shiyanlou.tar,可以寫成 tar -f shiyanlou.tar -c ~。你還可以加上 -v 參數以可視的的方式輸出打包的文件。上面會自動去掉表示絕對路徑的 /,你也可以使用 -P 保留絕對路徑符。

 解包一個文件(-x 參數)到指定路徑的已存在目錄(-C 參數):
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir

只查看不解包文件 -t 參數:
$ tar -tf shiyanlou.tar

壓縮常用命令

zip:
    打包 :zip something.zip something (目錄請加 -r 參數)
    解包:unzip something
    指定路徑:-d 參數
tar:
    打包:tar -zcvf something.tar something
    解包:tar -zxvf something.tar
    指定路徑:-C 參數

文件上傳與下載

rz 命令

rz命令本地上傳文件到服務器:
rz -y

sz 命令

sz命令發送文件到本地:
sz filename1 filename2......


文件系統操作與磁盤管理

df 命令

# df 命令查看磁盤的容量
$ df

# 參數-h 易讀方式展示
$ df -h

du 命令

du 命令查看目錄的容量

$ du

# 易讀方式展示
$ du -h 

參數 -d 指定查看目錄的深度

# 只查看1級目錄的信息
$ du -h -d 0 ~
# 查看2級
$ du -h -d 1 ~

常用參數

du -h #同--human-readable 以K,M,G爲單位,提高信息的可讀性。
du -a #同--all 顯示目錄中所有文件的大小。
du -s #同--summarize 僅顯示總計,只列出最後加總的值。

進程命令

ps命令

ps -ef  #使用完整的格式顯示系統內的所有進程信息

ps aux  #顯示當前系統進程詳細列表以及進程用戶

ps ax|less # 如果輸出過長,可能添加管道命令 less查看具體進程, 如:ps ax|grep XXX(XXX爲進程名稱)

a:顯示當前終端啓動的進程

u:顯示用戶爲主的進程信息

x:顯示所有進程信息

-e:顯示系統內的所有進程信息

-l:使用長格式顯示進程信息

-f:使用完整的格式顯示進程信息

[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

解析:

PID 進程的ID;

%CPU 進程佔用的CPU百分比;

%MEM 佔用內存的百分比;

COMMAND 命令的名稱和參數

[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD

解析:

R 正在運行,在可中斷隊列中(就緒狀態);

S 處於休眠狀態,靜止狀態;

Z 殭屍進程不存在但暫時無法消除;

kill命令

kill -9 324  #強行殺死PID爲324的進程

pkill mysqld  #強行終止mysqld服務進程

後臺運行切換

https://blog.csdn.net/u013846293/article/details/74003051


幫助命令

help命令

# help 命令用於顯示 shell 內建命令的簡要幫助信息
$ help exit

# --help 參數查看外部命令幫助信息
$ ls --help

man命令

#獲得某個命令的說明和使用方式的詳細介紹
man <command_name>

man手冊的內容很多,涉及了 Linux 使用過程中的方方面面。爲了便於查找,man 手冊被進行了分冊(分區段)處理,在 Research UNIX、BSD、OS X 和 Linux 中,手冊通常被分爲8個區段,安排如下:
區段 說明
1 一般命令
2 系統調用
3 庫函數,涵蓋了C標準函數庫
4 特殊文件(通常是/dev中的設備)和驅動程序
5 文件格式和約定
6 遊戲和屏保
7 雜項
8 系統管理命令和守護進程
要查看相應區段的內容,就在 man 後面加上相應區段的數字即可,如:
$ man 1 ls

通常 man 手冊中的內容很多,你可能不太容易找到你想要的結果,不過幸運的是你可以在 man 中使用搜索/<你要搜索的關鍵字>,查找完畢後你可以使用n鍵切換到下一個關鍵字所在處,shift+n爲上一個關鍵字所在處。使用Space(空格鍵)翻頁,Enter(回車鍵)向下滾動一行,或者使用j,k(vim 編輯器的移動鍵)進行向前向後滾動一行。按下h鍵爲顯示使用幫助(因爲 man 使用 less 作爲閱讀器,實爲less工具的幫助),按下q退出。

想要獲得更詳細的幫助,你還可以使用info命令,不過通常使用man就足夠了。如果你知道某個命令的作用,只是想快速查看一些它的某個具體參數的作用,那麼你可以使用–help參數,大部分命令都會帶有這個參數,如:
$ ls --help

###info命令
info 來自自由軟件基金會的 GNU 項目,是 GNU 的超文本幫助系統,能夠更完整的顯示出 GNU 信息,所以得到的信息更多。

$ info ls

例行性工作

個人化的行爲使用『 crontab -e 』:如果你是依據個人需求來建立的例行工作排程,建議直接使用 crontab -e 來建立你的工作排程較佳! 這樣也能保障你的指令行爲不會被大家看到 (/etc/crontab 是大家都能讀取的權限喔!);

系統維護管理使用『 vim /etc/crontab 』:如果你這個例行工作排程是系統的重要工作,爲了讓自己管理方便,同時容易追蹤,建議直接寫入 /etc/crontab 較佳!

自己開發軟體使用『 vim /etc/cron.d/newfile 』:如果你是想要自己開發軟體,那當然最好就是使用全新的設定檔,並且放置於 /etc/cron.d/ 目錄內即可。

固定每小時、每日、每週、每天執行的特別工作:如果與系統維護有關,還是建議放置到 /etc/crontab 中來集中管理較好。 如果想要偷懶,或者是一定要再某個週期內進行的任務,也可以放置到上面談到的幾個目錄中,直接寫入指令即可!

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

crontab命令使用

usage:  crontab [-u user] file
        crontab [ -u user ] [ -i ] { -e | -l | -r }
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)

添加任務計劃

crontab -e
* * * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S)

注:“ % ” 在 crontab 文件中,有結束命令行、換行、重定向的作用,前面加 ” \ ” 符號轉意,否則,“ % ” 符號將執行其結束命令行或者換行的作用,並且其後的內容會被做爲標準輸入發送給前面的命令。

確認crontab是否成功啓動

ps aux | grep cron

or

pgrep cron
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章