1. 程式人生 > >Linux 基礎命令(收藏大全)

Linux 基礎命令(收藏大全)

linux系統檔案結構

/ 根目錄

/bin 存放必要的命令

/boot 存放核心以及啟動所需的檔案

/dev 存放裝置檔案

/etc 存放系統配置檔案

/home 普通使用者的宿主目錄,使用者資料存放在其主目錄中lib 存放必要 的執行庫

/mnt 存放臨時的對映檔案系統,通常用來掛載使用

/proc 存放儲存程序和系統資訊

/root 超級使用者的主目錄

/sbin 存放系統管理程式

/tmp 存放臨時檔案

/usr 存放應用程式,命令程式檔案、程式庫、手冊和其它文件。

/var 系統預設日誌存放目錄錄

關閉防火牆

systemctl stop firewalld.service

禁止防火牆開機啟動

systemctl disable firewalld.service

關閉SELinux

nano -w /etc/selinux/config

將SELINUX=enforcing改為SELINUX=disabled儲存並退出:^x->y->回車

--------------

命令:ls

-a 這個選項能顯示.開頭的隱藏檔案

-i 顯示每個檔案的inode號

-m 所有專案以逗號分隔,並填滿整行行寬

-R 同時列出所有子目錄層

-h 將列出檔案的大小以人性化格式輸出

--color=tty(2個-號)顯示檔案的時候以色彩提示

目錄 可執行檔案 連線檔案 一般檔案
藍色 綠色 淡藍色 白色

檢視檔案狀態修改時間

ls -lc [檔名]

檢視檔案的訪問時間

ls -lu [檔名]

檢視檔案的最後修改時間

ls -l

顯示檔案的詳細訪問時間

ls –full-time

顯示本地目錄下以” .”開頭的檔案
ls -d .*

------------
命令: date 顯示系統當前時間

命令格式: date [選項]

-R 按照RFC822文件中的時間格式來實現時間

-r 檔名 顯示檔案的最後修改日期

-u 顯示utc時間(通用時間)

使用date檢視過去/將來的時間

1. 檢視2045年8月15日是星期幾(當前時間為2014-9-27)

date -d "+31year -1 month -12 day"

2. 顯示2014年1月1日星期幾

date -d “+3month +5day”或#date -d “+4month -26day”

--------------

命令: hwclock 顯示硬體時鐘

將系統時鐘同步至硬體時鐘

hwclock --systohc

將硬體時鐘同步至系統時鐘

hwclock --hctosys

---------------

命令: tzselect 功能:設定系統時區

1. 設定當前系統的時區

tzselect

命令: timedatectl 功能:設定系統時間及日期

語法格式:timedatectl [選項] [日期]

示例:

1. 顯示各項當前時間

timedatectl

2. 顯示系統所支援的時間區域

timedatectl list-timezones

3.設定當前系統的時間區域

timedatectl set-timezone Asia/Shanghai

4. 設定當前系統時間

timedatectl set-time “2014-09-0912:29:30”

5.設定NTP支援

timedatectl set-ntp true

-------------

命令: mkdir 建立目錄

-p 建立多級目錄

-m 在建立目錄的時候給目錄賦於許可權值

示例: mkdir -p /name/a/b/c
--------

命令: rmdir 刪除空目錄

-p 刪除多級空目錄

示例: mkdir -p /name/a/b/c

注意:目錄本身一定要是空的

------------

命令: rm 刪除檔案/目錄

-i 在刪除檔案之前需要手工確認

-v 在刪除檔案的時候顯示資訊

-r 刪除目錄 -f 忽略提示

示例: rm -v filename

常用選項: rm -rf 目錄名

-----------

命令:cp 複製命令

cp [選項] 檔名(原件) 目的檔名(影印件)

-R 複製整個目錄裡的內容

-p 複製完後保持目錄的許可權值

-v 在複製檔案的時候顯示進度

-f 在複製的時候如果碰到目的檔名有重複就將原先的刪除

------------

命令: mv 移動檔案或目錄/修改檔案或目錄名

命令格式: mv [選項] 原始檔 目的路徑

-i 如果目的地有相同檔名時會出現提示

-v 在搬移檔案時顯示進度,在移動多檔案時非常有用

-u 當移動時只有原始檔比目的檔案新的時候才會移動

-f 強制覆蓋已有的檔案

示例: mv -i 1.jpg /home/2.jpg

-------------

命令: pwd 顯示當前工作路徑

-----------

命令:cat 檢視文字檔案

命令格式: cat [選項] 檔名

-b 顯示檔案內容的時候顯示行數

-n 顯示檔案內容包括空行

-s 將多個空行合併成一個空行輸出

-------------

命令: more 檢視文字檔案命令

命令格式: more [選項] 檔名

+行數直接從給定的行數開始顯示

-s 將多個空行壓縮成一個空行
-p 清除屏幕後再顯示

提示: 用more開啟一個檔案後用空格向下翻頁,用b向上翻頁

------------

命令: nano 功能:文字編輯器

命令格式:nano [選項] [行號] 檔名

--------------

命令: head 檢視檔案頭部

命令格式:head [選項] 檔案

-n <行數> 顯示檔案的最前指定的行

-c <位元組數> 顯示檔案前N個位元組數裡的內容

-q 不輸出檔案頭的內容

-v 輸出檔案頭的內容

示例: head -n 15 test.file

-------------

命令: tail 檢視檔案尾部

命令格式:tail [選項] 檔案

-f 迴圈讀取

-c <位元組數> 顯示檔案前N個位元組數裡的內容

-q 不輸出檔案頭的內容

-n <行數> 指定所顯示的行數

-v 輸出檔案頭的內容

示例: tail -n 15 test.file

-------------

命令:ln 生成連結檔案

命令格式:ln [選項] 原始檔 連結檔案

-f 刪除已存在的目的檔案

-i 如果碰到有重複名字的提示如何操作

-v 顯示操作資訊

-s 軟連結選項

-------------

命令: file 功能:檢視檔案的型別

-------------

命令: stat 功能:顯示檔案或檔案系統狀態

命令格式:stat [選項] <檔案/目錄>

-f:檢視指定的檔案系統

stat可檢視:

  1. 檔名 2. 檔案尺寸 3. I節點號 4. 建立時間/訪問時間/狀態(屬 主、組、許可權)修改時間 5.許可權 6.連結檔案個數 7. 屬主及屬組等

---------------

多命令配合或結果匯入、匯出符號

“ |” 管道符號

“ >” 輸出重定向

“ >>” 輸出重定向

“ <” 輸入重定向

多命令配合或結果的引用符號

“ ” 雙引號

' ' 單引號

 反引號
--------------

命令: whereis

特點: 是查詢工具中速度最快的一個,但是whereis查詢的範圍有限, whereis 只能查詢2進製程序,文件和原始碼。

命令: which

which命令是查詢工具中速度最快命令之一,但是which查詢的範圍有限,但是 它可以給使用者顯示出命令所在的路徑

命令格式:which 檔名

-----------

find -size n [c]

查詢n值大小的檔案,預設單位是塊(1塊=512位元組)

1. 查詢大於1500位元組的檔案

find ~ -size +1500c

2. 查詢等於1500位元組的檔案

find ~ -size 1500c

3. 查詢小於1500位元組的檔案

find ~ -size -1500c

4. 查詢大於512k位元組的檔案

find ~ -size +512k

5. 查詢等於1M位元組的檔案

find ~ -size 1M

6. 查詢小於1G位元組的檔案

find ~ -size -1G

7. 查詢大於10塊的檔案

find ~ -size +10

8. 查詢等於10塊的檔案

find ~ -size -10

9. 查詢大於10M小於20M的檔案

find ./ -size +10M -size -20M

10. 查詢小於10塊的檔案

find ~ -size -10

11. 查詢檔案/目錄位元組為0的檔案(即空檔案)

find / -empty

-----------

命令: grep

功能: 通過正則表示式查詢檔案中的關鍵字

引數:

-i:忽略大小寫

-c:列印匹配的行數

-C:打印出匹配的上下文(上N行,下N行)的多少行

-l:列出匹配的檔名

-L:列出不匹配的檔名

-n:列印包含匹配項的行和行標

-w:僅匹配指定的單詞而非關鍵字

-e:索引匹配字串

-r:遞迴查詢

-v:不輸出匹配的行

-A <行號>:顯示所找的匹配欄位,並顯示下面指定的行數的資訊

-B <行號>:顯示所找的匹配欄位,並顯示上面指定的行數的資訊

正則表示式表示方法:

忽略正則表示式中特殊字元的原有含義

^ 匹配正則表示式的開始行

$ 匹配正則表示式的結束行

< 從匹配正則表示式的行開始

> 到匹配正則表示式的行結束

[ ] 單個字元;如[A] 即A符合要求

[ n - m ] 範圍 ;如[A-H]即包含A至H都符合要求

. 所有的單個字元

* 所有字元,長度可以為0

---------

命令: egrep

資訊: grep的增強版/擴充版(即grep -E)

特點:

1.支援?匹配,即匹配0到1個正則表示式

2.支援+匹配,即匹配1到N個正則表示式

3.支援”或關係”的匹配

4.在查詢範圍時,可直接用{a,z},而不需要””符號

5.可以被()來包含正則表示式進行分組

6.引數與grep基本通用

示例:

1. 遞迴且不區分大小寫對test欄位查詢

grep -ri “test” ./

2. 列印匹配”test”關鍵字有多少行

grep -c “test” grepcmd.txt

3. 列印匹配”test”關鍵字的上下文各1行

grep -C 1“test” grepcmd.txt

4. 列印匹配test關鍵的行並顯示行號

grep -n “test” grepcmd.txt

5. 查詢開頭為”#”的行,並顯示行號

grep -n ^# grepcmd.txt

6. 查詢在本地目錄下(含子目錄)結尾為”c”的檔案

grep -r c$ ./

7. 查詢以”man”開頭的單詞

grep '<man'* grepcmd.txt

8. 查詢”man”僅匹配此三個字元

grep '<man>' grepcmd.txt

9. 查詢含有以”D”字元開頭的行

grep -n ^[D] grepcmd.txt

10. 查詢含有以”A-F”字元開頭的行

grep -r “^[A-F]” ./

11. 查詢含有以”A-F”字元開頭,第2個字元為i的行

grep “^[A-F]i” grepcmd.txt

12. 查詢含有以'nobody'字元的行及下面3行資訊

grep -A 3 'nobody' /etc/passwd

13. 查詢含有以'nobody'字元的行及上面3行資訊

grep -B 3 'nobody' /etc/passwd

14. 查詢以D或d字元為開頭的行

egrep '(^D|^d)' egrepcmd.txt

15.匹配以D開頭的0個或1個字元

egrep ^D? egrepcmd.txt

16.查詢不包含”chuai”及”lisa”的欄位

egrep -v '^(chuai|lisa)' egrepcmd.txt

----------

命令: cut

功能: 對所需字元進行擷取

-d “n”:定義分界符,即點位

-f n:取第幾位的字元

示例:

1. 以空格符為分界符,進行第2位擷取.

cut -d “ “ -f 2 ./cutcmd.txt

2. 以空格符為分界符,進行第1,3位擷取.

cut -d “ “ -f 1,3 ./cutcmd.txt

---------

命令:sed

功能:通過指定的正則表示式完成指定關鍵字的過濾、擷取、修改等操作

特點:

1.sed屬於一個流線式的非互動式的編輯器

2. sed在輸入命令和檔名後,將在螢幕上輸出

3.在不用重定向至檔案之前,是不會改變檔案現有內容以避免修改檔案時出現問題

示例:

1.將install.log的第1-3行刪除 $sed ‘1,3d’ install.log

2.對install.log查詢以A或a開頭且後面字元為pache的字串 $sed -n ‘/^[Aa]pache/p’ install.log

3.列印匹配欄位的行及所有行 $sed ‘/ftp/p’ install.log

4.列印匹配欄位的行 $sed -n ‘/ftp/p’ install.log

5.預設刪除第3行 $sed ‘3d’ install.log

6.預設刪除第3行至末尾行 $sed ‘3,$d’ install.log

7.刪除含有指定欄位的行 $sed ‘/data/d’ install.log 8.將data替換為date $sed –n ‘s/data/date/p’ install.log 9.將行尾noarch為結尾後面增加.chuai字元 $sed ‘s/noarch$/&.chuai/’ install.log

8.將所有行尾noarch的單詞替換為chuai單詞 $sed -n ‘s/noarch$/chuai/gp’ install.log

9.顯示包含ra及data欄位的行 $sed –n ‘/ra/,/data/p’ install.og

10.從第5行開始顯示直至包含有data的行 $sed -n ‘5,/data/p’ install.log

-----------

命令:awk

功能:通過正則表示式,得到需要的行,列資訊

示例:

1. 用awk 列印所有包含有data欄位的行

$awk ‘/data/’ install.log

2. 檢視df -h命令的第2列

$df -h | awk '{print $2}'

3. 檢視df -h名ing的第2,5列

$df -h | awk '{print $2,$5}'

4. 顯示install.log的第四行

$awk 'NR==4' install.log

5.列印install.log檔案中包含data欄位行的第二區域

$awk ‘/data/ {print $2}’ install.log

6. 列示月份及年份(為換行符)

$date | awk ‘{print “Year:” $6 “Month:” $2 }’

7. 在有/data關鍵字的行的第1列後面增加1個製表符,並增加RedHat,第2列後面!字元

$awk ‘/data/{print $1 “RedHat Linux”$2 “!” }’ install.log

8. 在有data關鍵字的行第1列前面增加1個製表符,並增加RedHat,第2列後面!字元)

$awk ‘/data/{print “RedHat Linux, “$1,$2 “!” }’ install.log

9. 在有noarch欄位的行前增加記錄號($0為行頭前)

$awk ‘/noarch/{print NR, $0}’ install.log

10. 在有sda2欄位的行前增加行的序號及顯示第2列內容

$df -h | awk '/sda2/{print NR,$2}'

11. 匹配noarch欄位,如果有,則顯示整行

$awk ‘$2 ~ /noarch/’ install.log

12. 匹配不存在noarch欄位的行,如果有,則顯示整行

$awk ‘$2 !~ /noarch/’ install.log

---------------

命令:sort

功能:預設以排序ASCII方式進行排序[a-z]

引數:

-u 去除重複的行

-r 降序排序[z-a]

-n 數值排序,預設情況10比2小,主要因為sort判斷第一字元的值

-k 以文字的列進行判斷

-t 設定分界符

示例:

1. 對/etc/passwd檔案進行升序排序

sort /etc/passwd

2. 對/etc/passwd檔案進行降序排序

sort -r /etc/passwd

3. 對/etc/passwd第3列進行數值排序,分界符為:

sort -n -k 3 -t : /etc/passwd

4. 對test.txt檔案中重複的行刪除並升序排序

sort -u test.txt

5. 對/etc/shadow檔案進行降序排序

sort -r /etc/shadow

6. 對/etc/passwd第3列進行數值排序,分界符為:

sort -n -k 3 -t : /etc/passwd

7. 對/etc/passwd的第2列進行逆序排序,並對第3列進行數值排序,優先順序為第2列

sort -k 2r -k 3n -t : /etc/passwd

8. 對/etc/passwd的第3列進行數值排序,第2列進行逆序排序,優先順序為第3列

sort -k 3n -k 2r -t : /etc/passwd

-----------

命令:wc

功能:統計行數、字數、字元數、檔案總統計數

引數:

-l 統計行數

-c 統計位元組數

-w 統計字數(單詞數)

示例:

1. 統計/etc/passwd檔案行數

wc -l /etc/passwd

2. 統計/etc/passwd檔案的字數

wc -w /etc/passwd

3. 統計/etc/passwd檔案的位元組數

wc -c /etc/passwd

4. 統計/etc/passwd檔案行數和位元組數

wc -lc /etc/passwd

5. 統計/etc/passwd與/etc/fstab各檔案的行、字、位元組數

wc -lwc /etc/passwd /etc/fstab

--------------

命令:uniq

功能:檢查文字中重複出現的行

-c 顯示輸出,並在文字行前加出現的次數,但如果重複行不連續,則不認為是重 復的行

-d 只顯示重複的行

-u 只顯示不重複的行

1. 對test.txt內容進行檢查並顯示次數

uniq -c test.txt

2. 對test.txt的重複行不顯示

uniq -u test.txt

3. 忽略test.txt的第1列,對第2列進行檢查

uniq +1

4. 對test.txt的顯示重複行

uniq -d test.txt

5. 忽略test.txt的第1個字元, 從第2個字元開始進行檢查

uniq -s 1 test.txt

6. 對每行的第2個字元以後不在做檢查

uniq -w 2 -c test.txt

------------

命令:tac

功能:將行顛倒

說明:將最頭行放置最底行,文字中所有的行均顛倒輸出

-----------

命令:tr

功能:大小寫轉換

語法格式:tr 現有小寫範圍 轉換大寫範圍

tr 現有大寫範圍 轉換小寫範圍