日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

0基础学Linux-从小白到大牛(3)Linux命令

發(fā)布時(shí)間:2023/12/15 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 0基础学Linux-从小白到大牛(3)Linux命令 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 權(quán)限管理
    • 列出目錄內(nèi)容: ls
    • 顯示inode的內(nèi)容:stat
    • 文件訪問(wèn)權(quán)限
    • 修改文件權(quán)限:chmod
    • 修改文件所有者:chown
    • 修改文件所屬組:chgrp
  • 文件內(nèi)容查看
    • 基本顯示:cat、tac
    • 顯示行號(hào):nl
    • 分屏顯示
    • 取首尾n行:head、tail
  • 文件管理
    • 輸出重定向:>
    • 管道:|
    • 清屏:clear
    • 切換工作目錄:cd
    • 創(chuàng)建目錄:mkdir
    • 刪除文件:rm
    • 建立鏈接文件:ln
    • 文本搜索:grep
    • 查找文件:find
    • 拷貝文件:cp
    • 移動(dòng)文件:mv
    • 歸檔管理:tar
    • 文件壓縮解壓:gzip、bzip2
    • 文件壓縮解壓:zip、unzip
    • 查看命令位置:which
  • 用戶和用戶組管理
    • 查看當(dāng)前用戶:whoami
    • 查看登錄用戶:who
    • 退出登錄賬戶: exit
    • 添加用戶賬戶:useradd
    • 修改用戶:usermod
    • 設(shè)置用戶密碼:passwd
    • 刪除用戶:userdel
    • 以root身份執(zhí)行指令:sudo
    • 添加和刪除組賬戶:groupadd、groupdel
    • 用戶組管理:groupmod
  • 系統(tǒng)管理
    • 查看當(dāng)前日歷:cal
    • 顯示或設(shè)置時(shí)間:dete
    • 查看網(wǎng)絡(luò)狀態(tài):netstat
    • 查看進(jìn)程信息:ps
    • 以樹狀圖顯示進(jìn)程關(guān)系:pstree
    • 動(dòng)態(tài)顯示進(jìn)程:top
    • 終止進(jìn)程:kill
    • 關(guān)機(jī)重啟:reboot、shutdown、init
    • 檢查磁盤空間:df
    • 檢測(cè)目錄所占磁盤空間:du
    • 查看或配置網(wǎng)卡信息:ifconfig
    • 測(cè)試遠(yuǎn)程主機(jī)連通性:ping
    • Linux 磁盤管理
    • df
    • du
    • fdisk
    • 磁盤格式化
    • 磁盤檢驗(yàn)
    • 磁盤掛載與卸除
    • Linux管道命令
    • WC - 統(tǒng)計(jì)字?jǐn)?shù)
    • cut - 列選取命令
    • grep - 行選取命令
    • sort - 排序
    • uniq - 去重
    • tee - 同時(shí)輸出多個(gè)文件
    • split - 文件切割


權(quán)限管理

列出目錄內(nèi)容: ls

Linux文件或者目錄名稱最長(zhǎng)可以有265個(gè)字符,“.”代表當(dāng)前目錄,“…”代表上一級(jí)目錄,以“.”開(kāi)頭的文件為隱藏文件,需要用 -a 參數(shù)才能顯示。

ls常用參數(shù):

參數(shù)含義
-a顯示指定目錄下所有子目錄與文件,包括隱藏文件
-l以列表方式顯示文件的詳細(xì)信息
-h配合 -l 以人性化的方式顯示文件大小


信息含義:

ls支持通配符:

通配符含義
*文件代表文件名中所有字符
ls te*查找以te開(kāi)頭的文件
ls *html查找結(jié)尾為html的文件
代表文件名中任意一個(gè)字符
ls ?.c只找第一個(gè)字符任意,后綴為.c的文件
ls a.?只找只有3個(gè)字符,前2字符為a.,最后一個(gè)字符任意的文件
[][”和“]”將字符組括起來(lái),表示可以匹配字符組中的任意一個(gè)。“-”用于表示字符范圍。
[abc]匹配a、b、c中的任意一個(gè)
[a-f]匹配從a到f范圍內(nèi)的的任意一個(gè)字符
ls [a-f]*找到從a到f范圍內(nèi)的的任意一個(gè)字符開(kāi)頭的文件
ls a-f查找文件名為a-f的文件,當(dāng)“-”處于方括號(hào)之外失去通配符的作用
\如果要使通配符作為普通字符使用,可以在其前面加上轉(zhuǎn)義字符?!?”和“*”處于方括號(hào)內(nèi)時(shí)不用使用轉(zhuǎn)義字符就失去通配符的作用。
ls *a查找文件名為*a的文件

顯示inode的內(nèi)容:stat

stat [文件或目錄]

文件訪問(wèn)權(quán)限

用戶能夠控制一個(gè)給定的文件或目錄的訪問(wèn)程度,一個(gè)文件或目錄可能有讀、寫及執(zhí)行權(quán)限:

  • 讀權(quán)限(r) :對(duì)于文件,具有讀取文件內(nèi)容的權(quán)限;對(duì)于目錄,具有瀏覽目錄的權(quán)限。
  • 寫權(quán)限(w) :對(duì)于文件,具有修改文件內(nèi)容的權(quán)限;對(duì)于目錄,具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。
  • 可執(zhí)行權(quán)限(x): 對(duì)于文件,具有執(zhí)行文件的權(quán)限;對(duì)于目錄,該用戶具有進(jìn)入目錄的權(quán)限。

通常,Unix/Linux系統(tǒng)只允許文件的屬主(所有者)或超級(jí)用戶改變文件的讀寫權(quán)限。

示例:

第1個(gè)字母代表文件的類型:

  • “d” 代表文件夾
  • “-” 代表普通文件
  • “c” 代表硬件字符設(shè)備
  • “b” 代表硬件塊設(shè)備
  • “s”表示管道文件
  • “l(fā)” 代表軟鏈接文件。

后9個(gè)字母分別代表三組權(quán)限:文件所有者、用戶組、其他用戶擁有的權(quán)限。

修改文件權(quán)限:chmod

chmod 修改文件權(quán)限有兩種使用格式:字母法與數(shù)字法。

字母法:chmod u/g/o/a + +/-/= rwx 文件

[ u/g/o/a ]含義
uuser 表示該文件的所有者
ggroup 表示與該文件的所有者屬于同一組( group )者,即用戶組
oother 表示其他以外的人
aall 表示這三者皆是
[ ±= ]含義
+增加權(quán)限
-撤銷權(quán)限
=設(shè)定權(quán)限

數(shù)字法:“rwx” 這些權(quán)限也可以用數(shù)字來(lái)代替

字母說(shuō)明
r讀取權(quán)限,數(shù)字代號(hào)為 “4”
w寫入權(quán)限,數(shù)字代號(hào)為 “2”
x執(zhí)行權(quán)限,數(shù)字代號(hào)為 “1”
-不具任何權(quán)限,數(shù)字代號(hào)為 “0”

如執(zhí)行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename

chmod 751 file:- 文件所有者:讀、寫、執(zhí)行權(quán)限 - 同組用戶:讀、執(zhí)行的權(quán)限 - 其它用戶:執(zhí)行的權(quán)限 chmod 777 file:- 所有用戶擁有讀、寫、執(zhí)行權(quán)限

注意:如果想遞歸所有目錄加上相同權(quán)限,需要加上參數(shù)“ -R ”。 如:chmod 777 test/ -R 遞歸 test 目錄下所有文件加 777 權(quán)限

修改文件所有者:chown

[root@localhost opt]# ll 總用量 4 -rw-r--r-- 1 root root 5 10月 8 14:05 1.txt[root@localhost opt]# sudo useradd -m test [root@localhost opt]# chown test 1.txt [root@localhost opt]# ll 總用量 4 -rw-r--r-- 1 test root 5 10月 8 14:05 1.txt可以看到已經(jīng)修改了文件所有者

修改文件所屬組:chgrp

[root@localhost opt]# ll 1.txt -rw-r--r-- 1 test root 5 10月 8 14:05 1.txt [root@localhost opt]# sudo chgrp test 1.txt [root@localhost opt]# ll 1.txt -rw-r--r-- 1 test test 5 10月 8 14:05 1.txt

文件內(nèi)容查看

Linux系統(tǒng)中使用以下命令來(lái)查看文件的內(nèi)容:

  • cat 由第一行開(kāi)始顯示文件內(nèi)容
  • tac 從最后一行開(kāi)始顯示
  • nl 顯示的時(shí)候,順道輸出行號(hào)
  • more 一頁(yè)一頁(yè)的顯示文件內(nèi)容
  • less與more 類似,但可以往前翻頁(yè)
  • head 只看頭幾行
  • tail 只看尾部幾行

基本顯示:cat、tac

語(yǔ)法:

cat [-AbEnTv]

選項(xiàng)與參數(shù):

  • -A :相當(dāng)于 -vET 的整合選項(xiàng),可列出一些特殊字符而不是空白而已;
  • -v :列出一些看不出來(lái)的特殊字符
  • -E :將結(jié)尾的斷行字節(jié) $ 顯示出來(lái);
  • -T :將 [tab] 按鍵以 ^I 顯示出來(lái);
  • -b :列出行號(hào),空白行不標(biāo)行號(hào)
  • -n :列出行號(hào),連同空白行也會(huì)有行號(hào)
[root@localhost opt]# cat -b /opt/1.txt1 iii2 text3 text24 aaa [root@localhost opt]# cat -n /opt/1.txt1 iii2 text3 text24 aaa5 6

tac與cat命令剛好相反,文件內(nèi)容從最后一行開(kāi)始顯示,可以看出 tac 是 cat 的倒著寫!如:

[root@localhost opt]# tac 1.txtaaa text2 text iii

顯示行號(hào):nl

語(yǔ)法:

nl [-bnw] 文件

選項(xiàng)與參數(shù):

  • -b :指定行號(hào)指定的方式,主要有兩種:
    • -b a :表示不論是否為空行,也同樣列出行號(hào)(類似 cat -n);
    • -b t :如果有空行,空的那一行不要列出行號(hào)(默認(rèn)值);
  • -n :列出行號(hào)表示的方法,主要有三種:
    • -n ln :行號(hào)在熒幕的最左方顯示;
    • -n rn :行號(hào)在自己欄位的最右方顯示,且不加 0 ;
    • -n rz :行號(hào)在自己欄位的最右方顯示,且加 0 ;
  • -w :行號(hào)欄位的占用的位數(shù)。
[root@localhost opt]# nl 1.txt1 iii2 text3 text24 aaa#此處空行但不顯示行號(hào)#此處空行但不顯示行號(hào)

分屏顯示

[root@localhost opt]# more /etc/man_db.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(中間省略).... --More--(28%) <== 光標(biāo)在這里等待命令

more運(yùn)行時(shí)可以輸入的命令有

  • 空格鍵 (space):代表向下翻一頁(yè);
  • Enter :代表向下翻『一行』;
  • /字串 :代表在這個(gè)顯示的內(nèi)容當(dāng)中,向下搜尋『字串』這個(gè)關(guān)鍵字;
  • :f :立刻顯示出檔名以及目前顯示的行數(shù);
  • q :代表立刻離開(kāi) more ,不再顯示該文件內(nèi)容。
  • b 或 [ctrl]-b :代表往回翻頁(yè),不過(guò)這動(dòng)作只對(duì)文件有用,對(duì)管線無(wú)用。
[root@localhost opt]# less /etc/man.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(中間省略).... : <== 這里可以等待你輸入命令!

less運(yùn)行時(shí)可以輸入的命令有

  • 空白鍵 :向下翻動(dòng)一頁(yè);
  • [pagedown]:向下翻動(dòng)一頁(yè);
  • [pageup] :向上翻動(dòng)一頁(yè);
  • /字串 :向下搜尋『字串』的功能;
  • ?字串 :向上搜尋『字串』的功能;
  • n :重復(fù)前一個(gè)搜尋 (與 / 或 ? 有關(guān)!)
  • N· :反向的重復(fù)前一個(gè)搜尋 (與 / 或 ? 有關(guān)!)
  • q:離開(kāi) less 這個(gè)程序;

取首尾n行:head、tail

head取出文件前面幾行

語(yǔ)法:

head [-n number] 文件

選項(xiàng)與參數(shù):

-n :后面接數(shù)字,代表顯示幾行的意思

[root@localhost opt]# head /etc/man.config

默認(rèn)的情況中,顯示前面 10 行!若要顯示前 20 行,就得要這樣:

[root@localhost opt]# head -n 20 /etc/man.config

tail取出文件后面幾行

語(yǔ)法:

tail [-n number] 文件

選項(xiàng)與參數(shù):

-n :后面接數(shù)字,代表顯示幾行的意思
-f :表示持續(xù)偵測(cè)后面所接的檔名,要等到按下[ctrl]-c才會(huì)結(jié)束tail的偵測(cè)

[root@localhost opt]# tail /etc/man.config # 默認(rèn)的情況中,顯示最后的十行!若要顯示最后的 20 行,就得要這樣: [root@localhost opt]# tail -n 20 /etc/man.config

文件管理

輸出重定向:>

可將本應(yīng)顯示在終端上的內(nèi)容保存到指定文件中。

如:ls > test.txt ( test.txt 如果不存在,則創(chuàng)建,存在則覆蓋其內(nèi)容 )

注意: >輸出重定向會(huì)覆蓋原來(lái)的內(nèi)容,>>輸出重定向則會(huì)追加到文件的尾部。

管道:|

管道:一個(gè)命令的輸出可以通過(guò)管道做為另一個(gè)命令的輸入。

“ | ”的左右分為兩端,從左端寫入到右端。

[root@localhost opt]# ll -h |more 總用量 13M drwxr-xr-x 2 root root 4.0K 8月 4 2016 ./ drwxr-xr-x 26 root root 4.0K 7月 30 2016 ../ -rwxr-xr-x 1 root root 1014K 6月 24 2016 bash* -rwxr-xr-x 1 root root 31K 5月 20 2015 bunzip2* -rwxr-xr-x 1 root root 1.9M 8月 19 2015 busybox* -rwxr-xr-x 1 root root 31K 5月 20 2015 bzcat* lrwxrwxrwx 1 root root 6 5月 16 2016 bzcmp -> bzdiff* -rwxr-xr-x 1 root root 2.1K 5月 20 2015 bzdiff* lrwxrwxrwx 1 root root 6 5月 16 2016 bzegrep -> bzgrep* --更多--

清屏:clear

clear作用為清除終端上的顯示(類似于DOS的cls清屏功能),快捷鍵:Ctrl + l ( “l(fā)” 為字母 )。

切換工作目錄:cd

Linux所有的目錄和文件名大小寫敏感
cd后面可跟絕對(duì)路徑,也可以跟相對(duì)路徑。如果省略目錄,則默認(rèn)切換到當(dāng)前用戶的主目錄。

命令含義
cd相當(dāng)于cd ~
cd ~切換到當(dāng)前用戶的主目錄(/home/用戶目錄)
cd .切換到當(dāng)前目錄
cd …切換到上級(jí)目錄
cd -進(jìn)入上次所在的目錄

顯示當(dāng)前路徑:pwd

[root@localhost opt]# pwd /opt

選項(xiàng)與參數(shù):

  • P :顯示出確實(shí)的路徑,而非使用連結(jié) (link) 路徑。
    注意:是大寫的P
[root@localhost opt]# pwd -P /opt

創(chuàng)建目錄:mkdir

mkdir可以創(chuàng)建一個(gè)新的目錄。

注意:新建目錄的名稱不能與當(dāng)前目錄中已有的目錄或文件同名,并且目錄創(chuàng)建者必須對(duì)當(dāng)前目錄具有寫權(quán)限。

語(yǔ)法:

mkdir [-mp] 目錄名稱

選項(xiàng)與參數(shù):

  • -m :指定被創(chuàng)建目錄的權(quán)限,而不是根據(jù)默認(rèn)權(quán)限 (umask) 設(shè)定
  • -p :遞歸創(chuàng)建所需要的目錄
[root@localhost opt]# mkdir -p test1/test2/test3 [root@localhost opt]# ls 1.txt test test1 [root@localhost opt]# cd test1 [root@localhost test1]# ls test2

mkdir創(chuàng)建的目錄權(quán)限默認(rèn)根據(jù)umask得到,而-m參數(shù)可以指定被創(chuàng)建目錄的權(quán)限:

[root@localhost opt]# mkdir t1 [root@localhost opt]# ll drwxr-xr-x 2 root root 4096 Nov 22 18:54 t1 [root@localhost opt]# mkdir t2 -m 711 [root@localhost opt]# ll drwxr-xr-x 2 root root 4096 Nov 22 18:54 t1 drwx--x--x 2 root root 4096 Nov 22 18:54 t2

刪除文件:rm

可通過(guò)rm刪除文件或目錄。使用rm命令要小心,因?yàn)槲募h除后不能恢復(fù)。為了防止文件誤刪,可以在rm后使用-i參數(shù)以逐個(gè)確認(rèn)要?jiǎng)h除的文件。

常用參數(shù)及含義如下表所示:

參數(shù)含義
-i以進(jìn)行交互式方式執(zhí)行
-f強(qiáng)制刪除,忽略不存在的文件,無(wú)需提示
-r遞歸地刪除目錄下的內(nèi)容,刪除文件夾時(shí)必須加此參數(shù)

建立鏈接文件:ln

軟鏈接:ln -s 源文件 鏈接文件

硬鏈接:ln 源文件 鏈接文件

軟鏈接類似于Windows下的快捷方式,如果軟鏈接文件和源文件不在同一個(gè)目錄,源文件要使用絕對(duì)路徑,不能使用相對(duì)路徑。

硬鏈接只能鏈接普通文件不能鏈接目錄。 兩個(gè)文件占用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項(xiàng)是更常見(jiàn)的形式。

文本搜索:grep

Linux系統(tǒng)中g(shù)rep命令是一種強(qiáng)大的文本搜索工具,grep允許對(duì)文本文件進(jìn)行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式為:

grep [-選項(xiàng)] '搜索內(nèi)容串' 文件名

在grep命令中輸入字符串參數(shù)時(shí),最好引號(hào)或雙引號(hào)括起來(lái)。例如:grep ‘a(chǎn)’ 1.txt。

在當(dāng)前目錄中,查找前綴有test字樣的文件中包含 test 字符串的文件,并打印出該字符串的行。此時(shí),可以使用如下命令:

$ grep test test* #查找前綴有test的文件包含test字符串的文件 testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行 testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行 testfile_2:Linux test #列出testfile_2 文件中包含test字符的行

以遞歸的方式查找符合條件的文件。例如,查找指定目錄/etc/acpi 及其子目錄(如果存在子目錄的話)下所有文件中包含字符串"update"的文件,并打印出該字符串所在行的內(nèi)容,使用的命令為:

$ grep -r update /etc/acpi #以遞歸的方式查找“etc/acpi” #下包含“update”的文件 /etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.) Rather than /etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.) Rather than /etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update

反向查找。前面各個(gè)例子是查找并打印出符合條件的行,通過(guò)"-v"參數(shù)可以打印出不符合條件行的內(nèi)容。

查找文件名中包含 test 的文件中不包含test 的行,此時(shí),使用的命令為:

$ grep -v test* #查找文件名中包含test 的文件中不包含test 的行 testfile1:helLinux! testfile1:Linis a free Unix-type operating system. testfile1:Lin testfile_1:HELLO LINUX! testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. testfile_1:THIS IS A LINUX TESTFILE! testfile_2:HELLO LINUX! testfile_2:Linux is a free unix-type opterating system.

查找文件:find

常用用法:

命令含義
find ./ -name test.sh查找當(dāng)前目錄下所有名為test.sh的文件
find ./ -name ‘*.sh’查找當(dāng)前目錄下所有后綴為.sh的文件
find ./ -name “[A-Z]*”查找當(dāng)前目錄下所有以大寫字母開(kāi)頭的文件
find /tmp -size 2M查找在/tmp 目錄下等于2M的文件
find /tmp -size +2M查找在/tmp 目錄下大于2M的文件
find /tmp -size -2M查找在/tmp 目錄下小于2M的文件
find ./ -size +4k -size -5M查找當(dāng)前目錄下大于4k,小于5M的文件
find ./ -perm 0777查找當(dāng)前目錄下權(quán)限為 777 的文件或目錄

Linux find命令用來(lái)在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時(shí),不設(shè)置任何參數(shù),則find命令將在當(dāng)前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進(jìn)行顯示。
語(yǔ)法:

find path -option [ -print ] [ -exec -ok command ] {} \;

常用參數(shù)說(shuō)明 :

  • -perm xxxx:權(quán)限為 xxxx的文件或目錄
  • -user: 按照文件屬主來(lái)查找文件。
  • -size n : n單位,b:512位元組的區(qū)塊,c:字元數(shù),k:kilo bytes,w:二個(gè)位元組
  • -mount, -xdev : 只檢查和指定目錄在同一個(gè)文件系統(tǒng)下的文件,避免列出其它文件系統(tǒng)中的文件
  • -amin n : 在過(guò)去 n 分鐘內(nèi)被讀取過(guò)
  • -anewer file : 比文件 file 更晚被讀取過(guò)的文件
  • -atime n : 在過(guò)去n天內(nèi)被讀取過(guò)的文件
  • -cmin n : 在過(guò)去 n 分鐘內(nèi)被修改過(guò)
  • -cnewer file :比文件 file 更新的文件
  • -ctime n : 在過(guò)去n天內(nèi)被修改過(guò)的文件
  • -empty : 空的文件
  • -gid n or -group name : gid 是 n 或是 group 名稱是 name
  • -ipath p, -path p : 路徑名稱符合 p 的文件,ipath 會(huì)忽略大小寫
  • -name name, -iname name : 文件名稱符合 name 的文件。iname 會(huì)忽略大小寫
  • -type 查找某一類型的文件:
    • b - 塊設(shè)備文件
    • d - 目錄
    • c - 字符設(shè)備文件
    • p - 管道文件
    • l - 符號(hào)鏈接文件
    • f - 普通文件
  • -exec 命令名{} \ (注意:“}”和“\”之間有空格)

find實(shí)例:

顯示當(dāng)前目錄中大于20字節(jié)并以.c結(jié)尾的文件名

find . -name "*.c" -size +20c

將目前目錄其其下子目錄中所有一般文件列出

find . -type f

將目前目錄及其子目錄下所有最近 20 天內(nèi)更新過(guò)的文件列出

find . -ctime -20

查找/var/log目錄中更改時(shí)間在7日以前的普通文件,并在刪除之前詢問(wèn)它們:

find /var/log -type f -mtime +7 -ok rm {} \;

查找前目錄中文件屬主具有讀、寫權(quán)限,并且文件所屬組的用戶和其他用戶具有讀權(quán)限的文件:

find . -type f -perm 644 -exec ls -l {} \;

查找系統(tǒng)中所有文件長(zhǎng)度為0的普通文件,并列出它們的完整路徑:

find / -type f -size 0 -exec ls -l {} \;

從根目錄查找類型為符號(hào)鏈接的文件,并將其刪除:

find / -type l -exec rm -rf {} \

從當(dāng)前目錄查找用戶tom的所有文件并顯示在屏幕上

find . -user tom

在當(dāng)前目錄中查找所有文件以.doc結(jié)尾,且更改時(shí)間在3天以上的文件,找到后刪除,并且給出刪除提示

find . -name *.doc -mtime +3 -ok rm {} ;
1
在當(dāng)前目錄下查找所有鏈接文件,并且以長(zhǎng)格式顯示文件的基本信息

find . -type l -exec ls -l {} \;

在當(dāng)前目錄下查找文件名有一個(gè)小寫字母、一個(gè)大寫字母、兩個(gè)數(shù)字組成,且擴(kuò)展名為.doc的文件

find . -name '[a-z][A-Z][0-9][0-9].doc'

拷貝文件:cp

cp命令的功能是將給出的文件或目錄復(fù)制到另一個(gè)文件或目錄中,相當(dāng)于DOS下的copy命令。

常用選項(xiàng)說(shuō)明:

選項(xiàng)含義
-a該選項(xiàng)通常在復(fù)制目錄時(shí)使用,它保留鏈接、文件屬性,并遞歸地復(fù)制目錄,簡(jiǎn)單而言,保持文件原有屬性。
-f已經(jīng)存在的目標(biāo)文件而不提示
-i交互式復(fù)制,在覆蓋目標(biāo)文件之前將給出提示要求用戶確認(rèn)
-r若給出的源文件是目錄文件,則cp將遞歸復(fù)制該目錄下的所有子目錄和文件,目標(biāo)文件必須為一個(gè)目錄名。
-v顯示拷貝進(jìn)度
-l創(chuàng)建硬鏈接(hard link),而非復(fù)制文件本身
-s復(fù)制成為符號(hào)鏈接 (symbolic link),相當(dāng)于批量創(chuàng)建快捷方式
-u若 destination 比 source 舊才升級(jí) destination !

cp vim_configure/ code/ -ivr 把文件夾 vim_configure 拷貝到 code 目錄里。

移動(dòng)文件:mv

mv命令用來(lái)移動(dòng)文件或目錄,也可以給文件或目錄重命名。

常用選項(xiàng)說(shuō)明:

選項(xiàng)含義
-f禁止交互式操作,如有覆蓋也不會(huì)給出提示
-i確認(rèn)交互方式操作,如果mv操作將導(dǎo)致對(duì)已存在的目標(biāo)文件的覆蓋,系統(tǒng)會(huì)詢問(wèn)是否重寫,要求用戶回答以避免誤覆蓋文件
-v顯示移動(dòng)進(jìn)度

歸檔管理:tar

此命令可以把一系列文件歸檔到一個(gè)大文件中,也可以把檔案文件解開(kāi)以恢復(fù)數(shù)據(jù)。

tar使用格式 tar [參數(shù)] 打包文件名 文件

tar命令參數(shù)很特殊,其參數(shù)前面可以使用“-”,也可以不使用。

常用參數(shù):

參數(shù)含義
-c生成檔案文件,創(chuàng)建打包文件
-v列出歸檔解檔的詳細(xì)過(guò)程,顯示進(jìn)度
-f指定檔案文件名稱,f后面一定是.tar文件,所以必須放選項(xiàng)最后
-t列出檔案中包含的文件
-x解開(kāi)檔案文件

注意:除了f需要放在參數(shù)的最后,其它參數(shù)的順序任意。

[root@localhost /]# tar -cvf test.tar 1.txt 2.txt 3.txt 1.txt 2.txt 3.txt

文件壓縮解壓:gzip、bzip2

tar與gzip命令結(jié)合使用實(shí)現(xiàn)文件打包、壓縮。 tar只負(fù)責(zé)打包文件,但不壓縮,用gzip壓縮tar打包后的文件,其擴(kuò)展名一般用xxxx.tar.gz。

gzip使用格式如下:

gzip [選項(xiàng)] 被壓縮文件 選項(xiàng)含義
-d解壓文件
-r壓縮文件
[root@localhost /]# ll *.tar*[root@localhost /]# gzip -r test.tar test.tar.gz ==>或者:gzip test.tar

tar命令中-z選項(xiàng)可以調(diào)用gzip實(shí)現(xiàn)了一個(gè)壓縮的功能,實(shí)行一個(gè)先打包后壓縮的過(guò)程。

壓縮用法:tar zcvf 壓縮包包名 文件1 文件2 …

例如: tar zcvf test.tar.gz 1.c 2.c 3.c 4.c把 1.c 2.c 3.c 4.c 壓縮成 test.tar.gz

[root@localhost /]# ls 1.c 2.c 3.c 4.c [root@localhost /]#tar zcvf test.tar.gz 1.c 2.c 3.c 4.c [root@localhost /]# ls 1.c 2.c 3.c 4.c test.tar.gz [root@localhost /]# tar -zcvf new.tar.gz 1.c 2.c 3.c 4.c [root@localhost /]# ls 1.c 2.c 3.c 4.c new.tar.gz test.tar.gz

解壓用法: tar zxvf 壓縮包包名
例如:

[root@localhost /]# ls new.tar.gz test.tar.gz [root@localhost /]# tar zxvf new.tar.gz 1.c 2.c 3.c 4.c [root@localhost /]# ls 1.c 2.c 3.c 4.c new.tar.gz test.tar.gz

解壓到指定目錄:-C (解壓時(shí)可以不指定-z選項(xiàng))

[root@localhost /]# ls number/ [root@localhost /]# tar xvf test.tar.gz -C number/ [root@localhost /]# ls number/ 1.c 2.c 3.c 4.c

bzip2命令跟gzip用法類似

壓縮用法:tar jcvf 壓縮包包名 文件…(tar jcvf bk.tar.bz2 *.c)

解壓用法:tar jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)

文件壓縮解壓:zip、unzip

通過(guò)zip壓縮文件的目標(biāo)文件不需要指定擴(kuò)展名,默認(rèn)擴(kuò)展名為zip。

壓縮文件:zip [-r] 目標(biāo)文件(沒(méi)有擴(kuò)展名) 源文件

解壓文件:unzip -d 解壓后目錄文件 壓縮文件

[root@localhost /]# ls 1.txt 2.txt 3.txt test.tar [root@localhost /]# zip myzip *.txtadding: 1.txt (stored 0%)adding: 2.txt (stored 0%)adding: 3.txt (stored 0%) [root@localhost /]# ls 1.txt 2.txt 3.txt myzip.zip test.tar [root@localhost /]# rm -f *.txt *.tar [root@localhost /]# ls myzip.zip [root@localhost /]# unzip myzip.zip Archive: myzip.zipextracting: 1.txt extracting: 2.txt extracting: 3.txt [root@localhost /]# ls 1.txt 2.txt 3.txt myzip.zip [root@localhost /]# unzip -d dir myzip.zip Archive: myzip.zipextracting: dir/1.txt extracting: dir/2.txt extracting: dir/3.txt [root@localhost /]# ls 1.txt 2.txt 3.txt dir myzip.zip

查看命令位置:which

[root@localhost /]# which ls /bin/ls [root@localhost /]# which sudo /usr/bin/sudo

用戶和用戶組管理

用戶管理包括用戶與組賬號(hào)的管理。

在Unix/Linux系統(tǒng)中,不論是由本機(jī)或是遠(yuǎn)程登錄系統(tǒng),每個(gè)系統(tǒng)都必須擁有一個(gè)賬號(hào),并且對(duì)于不同的系統(tǒng)資源擁有不同的使用權(quán)限。

Unix/Linux系統(tǒng)中的root賬號(hào)通常用于系統(tǒng)的維護(hù)和管理,它對(duì)Unix/Linux操作系統(tǒng)的所有部分具有不受限制的訪問(wèn)權(quán)限。

在Unix/Linux安裝的過(guò)程中,系統(tǒng)會(huì)自動(dòng)創(chuàng)建許多用戶賬號(hào),而這些默認(rèn)的用戶就稱為“標(biāo)準(zhǔn)用戶”。

在大多數(shù)版本的Unix/Linux中,都不推薦直接使用root賬號(hào)登錄系統(tǒng)。

查看當(dāng)前用戶:whoami

查看當(dāng)前系統(tǒng)當(dāng)前賬號(hào)的用戶名??赏ㄟ^(guò)cat /etc/passwd查看系統(tǒng)用戶信息。

[root@localhost ~]# whoami root

查看登錄用戶:who

who命令用于查看當(dāng)前所有登錄系統(tǒng)的用戶信息。

選項(xiàng)含義
-m或am I只顯示運(yùn)行who命令的用戶名、登錄終端和登錄時(shí)間
-q或–count只顯示用戶的登錄賬號(hào)和登錄用戶的數(shù)量
-u在登錄時(shí)間后顯示該用戶最后一次操作到當(dāng)前的時(shí)間間隔
-u或–heading顯示列標(biāo)題

退出登錄賬戶: exit

如果是圖形界面,退出當(dāng)前終端;

如果是使用ssh遠(yuǎn)程登錄,退出登陸賬戶;

如果是切換后的登陸用戶,退出則返回上一個(gè)登陸賬號(hào)。

添加用戶賬戶:useradd

在Unix/Linux中添加用戶賬號(hào)可以使用adduser或useradd命令,因?yàn)閍dduser命令是指向useradd命令的一個(gè)鏈接,因此,這兩個(gè)命令的使用格式完全一樣。

useradd命令的使用格式如下: useradd [參數(shù)] 新建用戶賬號(hào)

參數(shù)含義
-d指定用戶登錄系統(tǒng)時(shí)的主目錄
-m自動(dòng)建立目錄,未指定-d參數(shù)時(shí)會(huì)在/home/{當(dāng)前用戶}目錄下建立主目錄
-g指定組名稱

相關(guān)說(shuō)明:

  • Linux每個(gè)用戶都要有一個(gè)主目錄,主目錄就是第一次登陸系統(tǒng),用戶的默認(rèn)當(dāng)前目錄(/home/用戶);
  • 每一個(gè)用戶必須有一個(gè)主目錄,所以用useradd創(chuàng)建用戶的時(shí)候,一定給用戶指定一個(gè)主目錄;
  • 如果創(chuàng)建用戶的時(shí)候,不指定組名,那么系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)和用戶名一樣的組名。

若創(chuàng)建用戶時(shí)未指定家目錄,后期可通過(guò)usermod -d /home/abc abc指定

命令含義
useradd -d /home/abc abc -m創(chuàng)建abc用戶,如果/home/abc目錄不存在,就自動(dòng)創(chuàng)建這個(gè)目錄,同時(shí)用戶屬于abc組
useradd -d /home/a a -g test -m創(chuàng)建一個(gè)用戶名字叫a,主目錄在/home/a,如果主目錄不存在,就自動(dòng)創(chuàng)建主目錄,同時(shí)用戶屬于test組
cat /etc/passwd查看系統(tǒng)當(dāng)前用戶名

修改用戶:usermod

常用的選項(xiàng)包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項(xiàng)的意義與useradd命令中的選項(xiàng)一樣,可以為用戶指定新的資源值 。

修改用戶所在組:usermod -g 用戶組 用戶名

usermod -g test abc

改abc用戶的家目錄位置:usermod -d 家目錄 用戶名

usermod -d /home/abc abc

選項(xiàng)-l 新用戶名指定一個(gè)新的賬號(hào),可修改用戶名:

[root@localhost ~]# tail /etc/passwd -n 1 aaa:x:1001:1001::/home/aaa: [root@localhost ~]# sudo usermod -l bbb -d /home/bbb aaa [root@localhost ~]# tail /etc/passwd -n 1 bbb:x:1001:1001::/home/bbb:

設(shè)置用戶密碼:passwd

超級(jí)用戶可以為自己和其他用戶指定口令,普通用戶只能用它修改自己的口令。命令的格式為:

passwd 選項(xiàng) 用戶名

可使用的選項(xiàng):

  • -l 鎖定口令,即禁用賬號(hào)。
  • -u 口令解鎖。
  • -d 使賬號(hào)無(wú)口令。
  • -f 強(qiáng)迫用戶下次登錄時(shí)修改口令。

假設(shè)當(dāng)前用戶是sam,則下面的命令修改該用戶自己的口令:

$ passwd Old password:****** New password:******* Re-enter new password:*******

如果是超級(jí)用戶,可以用下列形式指定任何用戶的口令:

# passwd sam New password:******* Re-enter new password:*******

普通用戶修改自己的口令時(shí),passwd命令會(huì)先詢問(wèn)原口令,驗(yàn)證后再要求用戶輸入兩遍新口令,如果兩次輸入的口令一致,則將這個(gè)口令指定給用戶;而超級(jí)用戶為用戶指定口令時(shí),就不需要知道原口令。

為用戶指定空口令時(shí),執(zhí)行下列形式的命令:

passwd -d sam

此命令將用戶的 sam 的口令刪除,這樣用戶 sam 下一次登錄的時(shí)候,系統(tǒng)就不在允許該用戶登錄。

passwd 命令還可以用 -l(lock)選項(xiàng)鎖定某一用戶,使其不能登錄,例如:

passwd -l sam

刪除用戶:userdel

命令含義
su切換到root用戶
su root切換到root用戶
su -切換到root用戶,同時(shí)切換目錄到/root
su - root切換到root用戶,同時(shí)切換目錄到/root
su 普通用戶切換到普通用戶
su - 普通用戶切換到普通用戶,同時(shí)切換普通用戶所在的目錄

注意,對(duì)于ubuntu平臺(tái),只能通過(guò)sudo su 進(jìn)入到root賬戶
sudo 允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個(gè)工具

以root身份執(zhí)行指令:sudo

sudo 命令可以臨時(shí)獲取root的權(quán)限
使用權(quán)限:在 /etc/sudoers 中有出現(xiàn)的使用者

顯示出自己(執(zhí)行 sudo 的使用者)的權(quán)限 sudo -l 以 root 權(quán)限執(zhí)行上一條命令 sudo !!

sudoers 文件配置語(yǔ)法

user MACHINE = COMMANDS 用戶 登錄的主機(jī)= (可以變換的身份)可以執(zhí)行的命令

例子:

允許root用戶執(zhí)行任意路徑下的任意命令 root ALL=(ALL) ALL 允許wheel用戶組中的用戶執(zhí)行所有命令 %wheel ALL=(ALL) ALL 允許wheel用戶組中的用戶在不輸入該用戶的密碼的情況下使用所有命令 %wheel ALL=(ALL) NOPASSWD: ALL 允許support用戶在EPG的機(jī)器上不輸入密碼的情況下使用SQUID中的命令 Cmnd_Alias SQUID = /opt/vtbin/squid_refresh, /sbin/service, /bin/rm Host_Alias EPG = 192.168.1.1, 192.168.1.2 support EPG=(ALL) NOPASSWD: SQUID

添加和刪除組賬戶:groupadd、groupdel

groupadd 新建組賬號(hào) groupdel 組賬號(hào) cat/etc/group 查看用戶組

[root@localhost ~]# sudo groupadd abc [root@localhost ~]# sudo groupdel abc [root@localhost ~]# sudo groupdel abc groupdel:“abc”組不存在

用戶組管理:groupmod

修改用戶組的屬性使用groupmod命令,其語(yǔ)法如下:

groupmod 選項(xiàng) 用戶組

常用的選項(xiàng)有:

  • -g GID為用戶組指定新的組織標(biāo)號(hào)
  • -o 和 -g選項(xiàng)同時(shí)使用,用戶組新的GID可以與系統(tǒng)已有的用戶組GID相同
  • -n 新用戶組將用戶組的名字改為新名字

將組group2的組標(biāo)識(shí)號(hào)修改為102:

groupmod -g 102 group2

將組group2的標(biāo)識(shí)號(hào)改為10000,組名修改為group3:

groupmod –g 10000 -n group3 group2

如果一個(gè)用戶同時(shí)屬于多個(gè)用戶組,那么用戶可以在用戶組之間切換,以便具有其它用戶組的權(quán)限,用戶在登錄后,使用命令newgrp切換到其它用戶組,這個(gè)命令的參數(shù)就是目的的用戶組,例如:

newgrp root

這條命令將當(dāng)前用戶切換到root用戶組,前提條件是root用戶組確實(shí)是該用戶的主組或附加組。類似于用戶賬號(hào)的管理,用戶組的管理也可以通過(guò)集成的系統(tǒng)管理工具來(lái)完成。

系統(tǒng)管理

查看當(dāng)前日歷:cal

cal命令用于查看當(dāng)前日歷,-y顯示整年日歷:

[root@localhost ~]# cal十月 2022 日 一 二 三 四 五 六12 3 4 5 6 7 89 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

顯示或設(shè)置時(shí)間:dete

設(shè)置時(shí)間格式(需要管理員權(quán)限):

date [MMDDhhmm[[CC]YY][.ss]] +format

MM為月,DD為天,hh為小時(shí),mm為分鐘;CC為年前兩位,YY為年的后兩位,ss為秒。

如: date 010203042016.55。

顯示時(shí)間格式(date ‘+%y,%m,%d,%H,%M,%S’):

format格式含義
%Y,%y
%m
%d
%H時(shí)
%M
%S

查看網(wǎng)絡(luò)狀態(tài):netstat

netstat命令用于顯示網(wǎng)絡(luò)狀態(tài)。

利用netstat指令可讓你得知整個(gè)Linux系統(tǒng)的網(wǎng)絡(luò)情況。

語(yǔ)法:

netstat [-acCeFghilMnNoprstuvVwx][-A<網(wǎng)絡(luò)類型>][--ip]

參數(shù)說(shuō)明:

  • -a或–all 顯示所有連線中的Socket。
  • -A<網(wǎng)絡(luò)類型>或–<網(wǎng)絡(luò)類型> 列出該網(wǎng)絡(luò)類型連線中的相關(guān)地址。
  • -c或–continuous 持續(xù)列出網(wǎng)絡(luò)狀態(tài)。
  • -C或–cache 顯示路由器配置的快取信息。
  • -e或–extend 顯示網(wǎng)絡(luò)其他相關(guān)信息。
  • -F或–fib 顯示FIB。
  • -g或–groups 顯示多重廣播功能群組組員名單。
  • -h或–help 在線幫助。
  • -i或–interfaces 顯示網(wǎng)絡(luò)界面信息表單。
  • -l或–listening 顯示監(jiān)控中的服務(wù)器的Socket。
  • -M或–masquerade 顯示偽裝的網(wǎng)絡(luò)連線。
  • -n或–numeric 直接使用IP地址,而不通過(guò)域名服務(wù)器。
  • -N或–netlink或–symbolic 顯示網(wǎng)絡(luò)硬件外圍設(shè)備的符號(hào)連接名稱。
  • -o或–timers 顯示計(jì)時(shí)器。
  • -p或–programs 顯示正在使用Socket的程序識(shí)別碼和程序名稱。
  • -r或–route 顯示Routing Table。
  • -s或–statistice 顯示網(wǎng)絡(luò)工作信息統(tǒng)計(jì)表。
  • -t或–tcp 顯示TCP傳輸協(xié)議的連線狀況。
  • -u或–udp 顯示UDP傳輸協(xié)議的連線狀況。
  • -v或–verbose 顯示指令執(zhí)行過(guò)程。
  • -V或–version 顯示版本信息。
  • -w或–raw 顯示RAW傳輸協(xié)議的連線狀況。
  • -x或–unix 此參數(shù)的效果和指定"-A unix"參數(shù)相同。
  • -ip或–inet 此參數(shù)的效果和指定"-A inet"參數(shù)相同。

常用如下:

[root@localhost yum.repos.d]# netstat -nltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1219/sshd tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 1512/python tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1460/master tcp6 0 0 :::22 :::* LISTEN 1219/sshd tcp6 0 0 ::1:25 :::* LISTEN 1460/master

查看進(jìn)程信息:ps

進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序,它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元。

ps命令選項(xiàng):

  • ps a 顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶的程序。
  • ps -A 顯示所有程序。
  • ps c 列出程序時(shí),顯示每個(gè)程序真正的指令名稱,而不包含路 徑,參數(shù)或常駐服務(wù)的標(biāo)示。
  • ps -e 此參數(shù)的效果和指定"A"參數(shù)相同。
  • ps e 列出程序時(shí),顯示每個(gè)程序所使用的環(huán)境變量。
  • ps f 用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系。
  • ps -H 顯示樹狀結(jié)構(gòu),表示程序間的相互關(guān)系。
  • ps -N 顯示所有的程序,除了執(zhí)行ps指令終端機(jī)下的程序之外。
  • ps s 采用程序信號(hào)的格式顯示程序狀況。
  • ps u 以用戶為主的格式來(lái)顯示程序狀況。
  • ps x 顯示所有程序,不以終端機(jī)來(lái)區(qū)分。
選項(xiàng)含義
-a顯示終端上的所有進(jìn)程,包括其他用戶的進(jìn)程
-u顯示進(jìn)程的詳細(xì)狀態(tài)
-x顯示沒(méi)有控制終端的進(jìn)程
-w顯示加寬,以便顯示更多的信息
-r只顯示正在運(yùn)行的進(jìn)程

常見(jiàn)用法:

  • ps -e 查看所有進(jìn)程信息(瞬時(shí)的)
  • ps -u root -N 查看所有不是root運(yùn)行的進(jìn)程
  • ps ax 顯示所有進(jìn)程狀態(tài)狀態(tài)
  • ps -ef |grep xxx 顯示含有xxx的進(jìn)程

實(shí)例:

# ps -A 顯示進(jìn)程信息 PID TTY TIME CMD1 ? 00:00:02 init2 ? 00:00:00 kthreadd ……省略部分結(jié)果 30749 pts/0 00:00:15 gedit 30886 ? 00:01:10 qtcreator.bin 30894 ? 00:00:00 qtcreator.bin

顯示指定用戶信息:

# ps -u root //顯示root進(jìn)程用戶信息PID TTY TIME CMD1 ? 00:00:02 init2 ? 00:00:00 kthreadd3 ? 00:00:00 migration/0 ……省略部分結(jié)果 30487 ? 00:00:06 gnome-terminal 30488 ? 00:00:00 gnome-pty-helpe 30489 pts/0 00:00:00 bash

顯示所有進(jìn)程信息,連同命令行

# ps -ef //顯示所有命令,連帶命令行 UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:22 ? 00:00:02 /sbin/init root 2 0 0 10:22 ? 00:00:00 [kthreadd] root 3 2 0 10:22 ? 00:00:00 [migration/0] root 4 2 0 10:22 ? 00:00:00 [ksoftirqd/0] root 5 2 0 10:22 ? 00:00:00 [watchdog/0] root 6 2 0 10:22 ? /usr/lib/NetworkManager ……省略部分結(jié)果 root 31302 2095 0 17:42 ? 00:00:00 sshd: root@pts/2 root 31374 31302 0 17:42 pts/2 00:00:00 -bash root 31400 1 0 17:46 ? 00:00:00 /usr/bin/python /usr/sbin/aptd root 31407 31374 0 17:48 pts/2 00:00:00 ps -ef

以樹狀圖顯示進(jìn)程關(guān)系:pstree

顯示進(jìn)程的關(guān)系

pstree init-+-amd |-apmd |-atd |-httpd---10*[httpd] %pstree -p init(1)-+-amd(447) |-apmd(105) |-atd(339) %pstree -c init-+-amd |-apmd |-atd |-httpd-+-httpd | |-httpd | |-httpd | |-httpd ....

特別表明在運(yùn)行的進(jìn)程:

# pstree -apnh //顯示進(jìn)程間的關(guān)系

同時(shí)顯示用戶名稱:

# pstree -u //顯示用戶名稱

動(dòng)態(tài)顯示進(jìn)程:top

top命令用來(lái)動(dòng)態(tài)顯示運(yùn)行中的進(jìn)程。top命令能夠在運(yùn)行后,在指定的時(shí)間間隔更新顯示信息。-d參數(shù)可以指定顯示信息更新的時(shí)間間隔。

在top命令執(zhí)行后,可以按下按鍵得到對(duì)顯示的結(jié)果進(jìn)行排序:

按鍵含義
M根據(jù)內(nèi)存使用量來(lái)排序
P根據(jù)CPU占有率來(lái)排序
T根據(jù)進(jìn)程運(yùn)行時(shí)間的長(zhǎng)短來(lái)排序
U可以根據(jù)后面輸入的用戶名來(lái)篩選進(jìn)程
K可以根據(jù)后面輸入的PID來(lái)殺死進(jìn)程。
q退出
h獲得幫助

圖示:

更高級(jí)的命令是htop,但需要安裝:

終止進(jìn)程:kill

kill命令指定進(jìn)程號(hào)的進(jìn)程,需要配合 ps 使用。

使用格式:

kill [-signal] pid

信號(hào)值從0到15,其中9為絕對(duì)終止,可以處理一般信號(hào)無(wú)法終止的進(jìn)程。

關(guān)機(jī)重啟:reboot、shutdown、init

命令含義
reboot重新啟動(dòng)操作系統(tǒng)
shutdown –r now重新啟動(dòng)操作系統(tǒng),shutdown會(huì)給別的用戶提示
shutdown -h now立刻關(guān)機(jī),其中now相當(dāng)于時(shí)間為0的狀態(tài)
shutdown -h 20:25系統(tǒng)在今天的20:25 會(huì)關(guān)機(jī)
shutdown -h +10系統(tǒng)再過(guò)十分鐘后自動(dòng)關(guān)機(jī)
init 0關(guān)機(jī)
init 6重啟

檢查磁盤空間:df

df命令用于檢測(cè)文件系統(tǒng)的磁盤空間占用和空余情況,可以顯示所有文件系統(tǒng)對(duì)節(jié)點(diǎn)和磁盤塊的使用情況。

選項(xiàng)含義
-a顯示所有文件系統(tǒng)的磁盤使用情況
-m以1024字節(jié)為單位顯示
-t顯示各指定文件系統(tǒng)的磁盤空間使用情況
-T顯示文件系統(tǒng)
[root@localhost /]# df -h 文件系統(tǒng) 容量 已用 可用 已用% 掛載點(diǎn) /dev/mapper/centos-root 13G 1.5G 12G 12% / devtmpfs 485M 0 485M 0% /dev tmpfs 494M 96K 494M 1% /dev/shm tmpfs 494M 50M 444M 11% /run tmpfs 494M 0 494M 0% /sys/fs/cgroup /dev/sda1 497M 119M 379M 24% /boot tmpfs 99M 0 99M 0% /run/user/0

檢測(cè)目錄所占磁盤空間:du

du命令用于統(tǒng)計(jì)目錄或文件所占磁盤空間的大小,該命令的執(zhí)行結(jié)果與df類似,du更側(cè)重于磁盤的使用狀況。

du命令的使用格式如下: du [選項(xiàng)] 目錄或文件名

選項(xiàng)含義
-a遞歸顯示指定目錄中各文件和子目錄中文件占用的數(shù)據(jù)塊
-s顯示指定文件或目錄占用的數(shù)據(jù)塊
-b以字節(jié)為單位顯示磁盤占用情況
-l計(jì)算所有文件大小,對(duì)硬鏈接文件計(jì)算多次
[root@localhost /]# du -sh /home/ 12K /home/

查看或配置網(wǎng)卡信息:ifconfig

ifconfig顯示所有網(wǎng)卡的信息:

[root@localhost /]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 1**.6*.1**.1** netmask 255.255.240.0 broadcast 1**.6*.2**.255inet6 fe80::***:****:****:**** prefixlen 64 scopeid 0x20<link>ether 00:**:5d:**:**:** txqueuelen 1000 (Ethernet)RX packets 110480231 bytes 9437413113 (8.7 GiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 796651 bytes 134723358 (128.4 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 0 (Local Loopback)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

修改ip:

sudo ifconfig ens0 192.168.40.10

測(cè)試遠(yuǎn)程主機(jī)連通性:ping

[root@localhost /]# ping www.baidu.com PING www.a.shifen.com (110.242.68.3) 56(84) bytes of data. 64 bytes from 110.242.68.3: icmp_seq=1 ttl=51 time=11.9 ms 64 bytes from 110.242.68.3: icmp_seq=2 ttl=51 time=11.1 ms 64 bytes from 110.242.68.3: icmp_seq=3 ttl=51 time=11.4 ms

Linux 磁盤管理

Linux磁盤管理常用三個(gè)命令為df、du和fdisk。

  • df:列出文件系統(tǒng)的整體磁盤使用量
  • du:檢查磁盤空間使用量
  • fdisk:用于磁盤分區(qū)

df

獲取硬盤被占用了多少空間,目前還剩下多少空間等信息。

語(yǔ)法:

df [-ahikHTm] [目錄或文件名]

選項(xiàng)與參數(shù):

  • -a :列出所有的文件系統(tǒng),包括系統(tǒng)特有的 /proc 等文件系統(tǒng);
  • -k :以 KBytes 的容量顯示各文件系統(tǒng);
  • -m :以 MBytes 的容量顯示各文件系統(tǒng);
  • -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
  • -H :以 M=1000K 取代 M=1024K 的進(jìn)位方式;
  • -T :顯示文件系統(tǒng)類型, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;
  • -i :不用硬盤容量,而以 inode 的數(shù)量來(lái)顯示
[root@localhost /]# df -hT 文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點(diǎn) /dev/mapper/centos-root xfs 13G 1.5G 12G 12% / devtmpfs devtmpfs 485M 0 485M 0% /dev tmpfs tmpfs 494M 96K 494M 1% /dev/shm tmpfs tmpfs 494M 50M 444M 11% /run tmpfs tmpfs 494M 0 494M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 119M 379M 24% /boot tmpfs tmpfs 99M 0 99M 0% /run/user/0

將系統(tǒng)內(nèi)的所有特殊文件格式及名稱都列出來(lái)

[root@localhost /]# df -aT 文件系統(tǒng) 類型 1K-塊 已用 可用 已用% 掛載點(diǎn) rootfs rootfs 13588480 1522984 12065496 12% / proc proc 0 0 0 - /proc sysfs sysfs 0 0 0 - /sys devtmpfs devtmpfs 495768 0 495768 0% /dev securityfs securityfs 0 0 0 - /sys/kernel/security tmpfs tmpfs 505200 96 505104 1% /dev/shm devpts devpts 0 0 0 - /dev/pts tmpfs tmpfs 505200 50840 454360 11% /run tmpfs tmpfs 505200 0 505200 0% /sys/fs/cgroup cgroup cgroup 0 0 0 - /sys/fs/cgroup/systemd pstore pstore 0 0 0 - /sys/fs/pstore cgroup cgroup 0 0 0 - /sys/fs/cgroup/cpuset cgroup cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct cgroup cgroup 0 0 0 - /sys/fs/cgroup/memory cgroup cgroup 0 0 0 - /sys/fs/cgroup/devices cgroup cgroup 0 0 0 - /sys/fs/cgroup/freezer cgroup cgroup 0 0 0 - /sys/fs/cgroup/net_cls cgroup cgroup 0 0 0 - /sys/fs/cgroup/blkio cgroup cgroup 0 0 0 - /sys/fs/cgroup/perf_event cgroup cgroup 0 0 0 - /sys/fs/cgroup/hugetlb configfs configfs 0 0 0 - /sys/kernel/config /dev/mapper/centos-root xfs 13588480 1522984 12065496 12% / systemd-1 autofs 0 0 0 - /proc/sys/fs/binfmt_misc mqueue mqueue 0 0 0 - /dev/mqueue hugetlbfs hugetlbfs 0 0 0 - /dev/hugepages debugfs debugfs 0 0 0 - /sys/kernel/debug /dev/sda1 xfs 508588 121240 387348 24% /boot binfmt_misc binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc tmpfs tmpfs 101040 0 101040 0% /run/user/0

du

du命令是對(duì)文件和目錄磁盤使用的空間的查看.

語(yǔ)法:

du [-ahskm] 文件或目錄名稱

選項(xiàng)與參數(shù):

  • -a :列出所有的文件與目錄容量,因?yàn)槟J(rèn)僅統(tǒng)計(jì)目錄底下的文件量而已。
  • -h :以人們較易讀的容量格式 (G/M) 顯示;
  • -s :列出總量而已,而不列出每個(gè)各別的目錄占用容量;
  • -S :不包括子目錄下的總計(jì),與 -s 有點(diǎn)差別。
  • -k :以 KBytes 列出容量顯示;
  • -m :以 MBytes 列出容量顯示;

du沒(méi)有加任何選項(xiàng)時(shí),只列出當(dāng)前目錄下的所有文件夾容量(包括隱藏文件夾):

[root@localhost ~]# du 8 ./test4 <==每個(gè)目錄都會(huì)列出來(lái) 8 ./test2 ....中間省略.... 12 ./.gconfd <==包括隱藏文件的目錄 220 . <==這個(gè)目錄(.)所占用的總量

直接輸入 du 沒(méi)有加任何選項(xiàng)時(shí),則 du 會(huì)分析當(dāng)前所在目錄的文件與目錄所占用的硬盤空間。

加-a選項(xiàng)才顯示文件的容量:

[root@localhost ~]# du -a 12 ./install.log.syslog <==有文件的列表了 8 ./.bash_logout 8 ./test4 8 ./test2 ....中間省略.... 12 ./.gconfd 220 .

檢查根目錄底下每個(gè)目錄所占用的容量

[root@localhost ~]# du -sh /* 0 /bin 108M /boot 4.0K /data .....中間省略.... 0 /proc .....中間省略.... 40K /tmp 2.4G /usr 2.4G /var

fdisk

fdisk 是 Linux 的磁盤分區(qū)表操作工具。

語(yǔ)法:

fdisk [-l] 裝置名稱

選項(xiàng)與參數(shù):

  • -l :輸出后面接的裝置所有的分區(qū)內(nèi)容。若僅有 fdisk -l 時(shí), 則系統(tǒng)將會(huì)把整個(gè)系統(tǒng)內(nèi)能夠搜尋到的裝置的分區(qū)均列出來(lái)。

列出所有分區(qū)信息:

[root@localhost /]# fdisk -l磁盤 /dev/sda:16.1 GB, 16106127360 字節(jié),31457280 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié) 磁盤標(biāo)簽類型:dos 磁盤標(biāo)識(shí)符:0x00099802設(shè)備 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 31457279 15215616 8e Linux LVM磁盤 /dev/sdb:10.7 GB, 10737418240 字節(jié),20971520 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)磁盤 /dev/mapper/centos-root:13.9 GB, 13925089280 字節(jié),27197440 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)磁盤 /dev/mapper/centos-swap:1610 MB, 1610612736 字節(jié),3145728 個(gè)扇區(qū) Units = 扇區(qū) of 1 * 512 = 512 bytes 扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié) I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)

查看根目錄所在磁盤,并查閱該硬盤內(nèi)的相關(guān)信息:

[root@localhost /]# df / <==注意:重點(diǎn)在找出磁盤文件名而已 Filesystem 1K-blocks Used Available Use% Mounted on /dev/hdc2 9920624 3823168 5585388 41% /[root@localhost /]# fdisk /dev/hdc <==不要加上數(shù)字! The number of cylinders for this disk is set to 5005. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs(e.g., DOS FDISK, OS/2 FDISK)Command (m for help): <==等待你的輸入!

輸入 m 后,就會(huì)看到底下這些命令介紹

Command (m for help): m <== 輸入 m 后,就會(huì)看到底下這些命令介紹 Command actiona toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partition <==刪除一個(gè)partitionl list known partition typesm print this menun add a new partition <==新增一個(gè)partitiono create a new empty DOS partition tablep print the partition table <==在屏幕上顯示分割表q quit without saving changes <==不儲(chǔ)存離開(kāi)fdisk程序s create a new empty Sun disklabelt change a partition's system idu change display/entry unitsv verify the partition tablew write table to disk and exit <==將剛剛的動(dòng)作寫入分割表x extra functionality (experts only)

離開(kāi) fdisk 時(shí)按下 q,那么所有的動(dòng)作都不會(huì)生效!相反的, 按下w就是動(dòng)作生效的意思。

Command (m for help): p <== 這里可以輸出目前磁盤的狀態(tài)Disk /dev/hdc: 41.1 GB, 41174138880 bytes <==這個(gè)磁盤的文件名與容量 255 heads, 63 sectors/track, 5005 cylinders <==磁頭、扇區(qū)與磁柱大小 Units = cylinders of 16065 * 512 = 8225280 bytes <==每個(gè)磁柱的大小Device Boot Start End Blocks Id System /dev/hdc1 * 1 13 104391 83 Linux /dev/hdc2 14 1288 10241437+ 83 Linux /dev/hdc3 1289 1925 5116702+ 83 Linux /dev/hdc4 1926 5005 24740100 5 Extended /dev/hdc5 1926 2052 1020096 82 Linux swap / Solaris # 裝置文件名 啟動(dòng)區(qū)否 開(kāi)始磁柱 結(jié)束磁柱 1K大小容量 磁盤分區(qū)槽內(nèi)的系統(tǒng)Command (m for help): q

使用 p 可以列出目前這顆磁盤的分割表信息,這個(gè)信息的上半部在顯示整體磁盤的狀態(tài)。

磁盤格式化

磁盤分割完畢后自然就是要進(jìn)行文件系統(tǒng)的格式化,格式化的命令非常的簡(jiǎn)單,使用 mkfs(make filesystem) 命令。

語(yǔ)法:

mkfs [-t 文件系統(tǒng)格式] 裝置文件名

選項(xiàng)與參數(shù):

  • -t :可以接文件系統(tǒng)格式,例如 ext3, ext2, vfat 等(系統(tǒng)有支持才會(huì)生效)
    查看 mkfs 支持的文件格式:
[root@localhost /]# mkfs[tab] mkfs mkfs.cramfs mkfs.ext3 mkfs.minix mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.xfs

按下兩個(gè)[tab],會(huì)發(fā)現(xiàn) mkfs 支持的文件格式如上所示。

將分區(qū) /dev/hdc6(可指定其他分區(qū)) 格式化為ext3文件系統(tǒng):

[root@localhost /]# mkfs -t ext3 /dev/hdc6 mke2fs 1.39 (29-May-2006) Filesystem label= <==這里指的是分割槽的名稱(label) OS type: Linux Block size=4096 (log=2) <==block 的大小配置為 4K Fragment size=4096 (log=2) 251392 inodes, 502023 blocks <==由此配置決定的inode/block數(shù)量 25101 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=515899392 16 block groups 32768 blocks per group, 32768 fragments per group 15712 inodes per group Superblock backups stored on blocks:32768, 98304, 163840, 229376, 294912Writing inode tables: done Creating journal (8192 blocks): done <==有日志記錄 Writing superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 34 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. # 這樣就創(chuàng)建起來(lái)我們所需要的 Ext3 文件系統(tǒng)了!簡(jiǎn)單明了!

磁盤檢驗(yàn)

fsck(file system check)用來(lái)檢查和維護(hù)不一致的文件系統(tǒng)。

若系統(tǒng)掉電或磁盤發(fā)生問(wèn)題,可利用fsck命令對(duì)文件系統(tǒng)進(jìn)行檢查。

語(yǔ)法:

fsck [-t 文件系統(tǒng)] [-ACay] 裝置名稱

選項(xiàng)與參數(shù):

  • -t : 給定檔案系統(tǒng)的型式,若在 /etc/fstab 中已有定義或 kernel 本身已支援的則不需加上此參數(shù)
  • -s : 依序一個(gè)一個(gè)地執(zhí)行 fsck 的指令來(lái)檢查
  • -A : 對(duì)/etc/fstab 中所有列出來(lái)的 分區(qū)(partition)做檢查
  • -C : 顯示完整的檢查進(jìn)度
  • -d : 打印出 e2fsck 的 debug 結(jié)果
  • -p : 同時(shí)有 -A 條件時(shí),同時(shí)有多個(gè) fsck 的檢查一起執(zhí)行
  • -R : 同時(shí)有 -A 條件時(shí),省略 / 不檢查
  • -V : 詳細(xì)顯示模式
  • -a : 如果檢查有錯(cuò)則自動(dòng)修復(fù)
  • -r : 如果檢查有錯(cuò)則由使用者回答是否修復(fù)
  • -y : 選項(xiàng)指定檢測(cè)每個(gè)文件是自動(dòng)輸入yes,在不確定那些是不正常的時(shí)候,可以執(zhí)行 # fsck -y 全部檢查修復(fù)。

查看系統(tǒng)有多少文件系統(tǒng)支持的 fsck 命令:

[root@localhost /]# fsck[tab][tab] fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.msdos fsck.vfat

強(qiáng)制檢測(cè) /dev/hdc6 分區(qū):

[root@localhost /]# fsck -C -f -t ext3 /dev/hdc6 fsck 1.39 (29-May-2006) e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks

如果沒(méi)有加上 -f 的選項(xiàng),則由于這個(gè)文件系統(tǒng)不曾出現(xiàn)問(wèn)題,檢查的經(jīng)過(guò)非常快速!若加上 -f 強(qiáng)制檢查,才會(huì)一項(xiàng)一項(xiàng)的顯示過(guò)程。

磁盤掛載與卸除

Linux 的磁盤掛載使用mount命令,卸載使用umount命令。

磁盤掛載語(yǔ)法:

mount [-t 文件系統(tǒng)] [-L Label名] [-o 額外選項(xiàng)] [-n] 裝置文件名 掛載點(diǎn)

用默認(rèn)的方式,將剛剛創(chuàng)建的 /dev/hdc6 掛載到 /mnt/hdc6 上面!

[root@localhost /]# mkdir /mnt/hdc6 [root@localhost /]# mount /dev/hdc6 /mnt/hdc6 [root@localhost /]# df Filesystem 1K-blocks Used Available Use% Mounted on .....中間省略..... /dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6

磁盤卸載命令umount語(yǔ)法:

umount [-fn] 裝置文件名或掛載點(diǎn)

選項(xiàng)與參數(shù):

  • -f :強(qiáng)制卸除!可用在類似網(wǎng)絡(luò)文件系統(tǒng) (NFS) 無(wú)法讀取到的情況下;
  • -n :不升級(jí) /etc/mtab 情況下卸除。

卸載/dev/hdc6

[root@localhost /]# umount /dev/hdc6

Linux管道命令

Linux的管道命令是’|’,通過(guò)它可以對(duì)數(shù)據(jù)進(jìn)行連續(xù)處理,其示意圖如下:

注意:

1)管道命令僅處理標(biāo)準(zhǔn)輸出,對(duì)于標(biāo)準(zhǔn)錯(cuò)誤輸出,將忽略

2)管道命令右邊命令,必須能夠接收標(biāo)準(zhǔn)輸入流命令才行,否則傳遞過(guò)程中數(shù)據(jù)會(huì)拋棄。

常用來(lái)作為接收數(shù)據(jù)管道命令有: less,more,head,tail,而ls, cp, mv就不行。

WC - 統(tǒng)計(jì)字?jǐn)?shù)

可以計(jì)算文件的Byte數(shù)、字?jǐn)?shù)、或是列數(shù),若不指定文件名稱、或是所給予的文件名為"-",則wc指令會(huì)從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)。

wc [-lwm] [filename] -l: 統(tǒng)計(jì)行數(shù) -w:統(tǒng)計(jì)英文單詞 -m:統(tǒng)計(jì)字符數(shù) [root@localhost /]# wc -l /etc/passwd 49 /etc/passwd [root@localhost /]# wc -w /etc/passwd 81 /etc/passwd [root@localhost /]# wc -m /etc/passwd 2696 /etc/passwd

在默認(rèn)的情況下,wc將計(jì)算指定文件的行數(shù)、字?jǐn)?shù),以及字節(jié)數(shù)。使用的命令為:

$ wc testfile # testfile文件的統(tǒng)計(jì)信息 3 92 598 testfile # testfile文件的行數(shù)為3、單詞數(shù)92、字節(jié)數(shù)598

其中,3 個(gè)數(shù)字分別表示testfile文件的行數(shù)、單詞數(shù),以及該文件的字節(jié)數(shù)。

如果想同時(shí)統(tǒng)計(jì)多個(gè)文件的信息,例如同時(shí)統(tǒng)計(jì)testfile、testfile_1、testfile_2,可使用如下命令:

$ wc testfile testfile_1 testfile_2 #統(tǒng)計(jì)三個(gè)文件的信息 3 92 598 testfile #第一個(gè)文件行數(shù)為3、單詞數(shù)92、字節(jié)數(shù)598 9 18 78 testfile_1 #第二個(gè)文件的行數(shù)為9、單詞數(shù)18、字節(jié)數(shù)78 3 6 32 testfile_2 #第三個(gè)文件的行數(shù)為3、單詞數(shù)6、字節(jié)數(shù)32 15 116 708 總用量 #三個(gè)文件總共的行數(shù)為15、單詞數(shù)116、字節(jié)數(shù)708

cut - 列選取命令

選項(xiàng)與參數(shù): -d :后面接分隔字符。與 -f 一起使用; -f :依據(jù) -d 的分隔字符將一段信息分割成為數(shù)段,用 -f 取出第幾段的意思; -c :以字符 (characters) 的單位取出固定字符區(qū)間;

cut以行為單位,根據(jù)分隔符把行分成若干列,這樣就可以指定選取哪些列了。

cut -d '分隔字符' -f 選取的列數(shù) echo $PATH|cut -d ':' -f 2 --選取第2列 echo $PATH|cut -d ':' -f 3,5 --選取第3列和第5列 echo $PATH|cut -d ':' -f 3-5 --選取第3列到第5列 echo $PATH|cut -d ':' -f 3- --選取第3列到最后1列 echo $PATH|cut -d ':' -f 1-3,5 --選取第1到第3列還有第5列

只顯示/etc/passwd的用戶和shell:

#cat /etc/passwd | cut -d ':' -f 1,7 root:/bin/bash daemon:/bin/sh bin:/bin/sh

grep - 行選取命令

grep一般格式為:

grep [-cinv] '查找的字符串' filename

在grep命令中輸入字符串參數(shù)時(shí),最好引號(hào)或雙引號(hào)括起來(lái)。例如:grep 'a' 1.txt

常用選項(xiàng)說(shuō)明:

選項(xiàng)含義
-v顯示不包含匹配文本的所有行(相當(dāng)于求反)
-n顯示匹配行及行號(hào)
-i忽略大小寫
-c計(jì)算找到的行數(shù)

grep搜索內(nèi)容串可以是正則表達(dá)式,常用正則表達(dá)式:

參數(shù)含義
^a行首,搜尋以 m 開(kāi)頭的行;grep -n ‘^a’ 1.txt
ke$行尾,搜尋以 ke 結(jié)束的行;grep -n ‘ke$’ 1.txt
[Ss]igna[Ll]匹配 [] 里中一系列字符中的一個(gè);搜尋匹配單詞signal、signaL、Signal、SignaL的行;grep -n ‘[Ss]igna[Ll]’ 1.txt
.匹配一個(gè)非換行符的字符;grep -n ‘e.e’ 1.txt可以匹配 eee,eae,eve,但是不匹配 ee,eaae;
  • |匹配零個(gè)或多個(gè)先前字符
    [^] |匹配一個(gè)不在指定范圍內(nèi)的字符
    (…) |標(biāo)記匹配字符
    \ |錨定單詞的開(kāi)始
    < |錨定單詞的開(kāi)頭
    > |錨定單詞的結(jié)束
    x{m} |重復(fù)字符x,m次
    x{m,} |重復(fù)字符x,至少m次
    x{m,n} |重復(fù)字符x,至少m次,不多于n次
    \w |匹配文字和數(shù)字字符,也就是[A-Za-z0-9]
    \b |單詞鎖定符

實(shí)例:
顯示所有以“h”結(jié)尾的行

grep h$

匹配所有以“a”開(kāi)頭且以“e”結(jié)尾的,中間包含2個(gè)字符的單詞

grep ‘<a…e>’

顯示所有包含一個(gè)”y”或”h”字符的行

grep [yh]

顯示不包含字母a~k 且后緊跟“pple”的單詞

grep [^a-k]pple

從系統(tǒng)詞典中選擇所有以“c”開(kāi)頭且以“o”結(jié)尾的單詞

grep '\<c.*o\>'

找出一個(gè)文件中或者輸出中找到包含*的行

grep '\*'

顯示所有包含每個(gè)字符串至少有20個(gè)連續(xù)字母的單詞的行

grep [a-Z]\{20,\}

sort - 排序

語(yǔ)法:

sort [-fbMnrtuk] [file or stdin]

參數(shù)說(shuō)明:

  • -f :忽略大小寫的差異,例如 A 與 a 視為編碼相同;
  • -b :忽略最前面的空格符部分;
  • -M :以月份的名字來(lái)排序,例如 JAN, DEC 等等的排序方法;
  • -n :使用『純數(shù)字』進(jìn)行排序(默認(rèn)是以文字型態(tài)來(lái)排序的);
  • -r :反向排序;
  • -u :就是 uniq ,相同的數(shù)據(jù)中,僅出現(xiàn)一行代表;
  • -t :分隔符,默認(rèn)是用 [tab] 鍵來(lái)分隔;
  • -k :以哪個(gè)區(qū)間 (field) 來(lái)進(jìn)行排序

默認(rèn)是以第一個(gè)字符升序排序:

# cat /etc/passwd | sort adm:x:3:4:adm:/var/adm:/sbin/nologin avahi-autoipd:x:100:156:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin avahi:x:70:70:Avahi daemon:/:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin ......

以第3列排序:

[root@localhost /]# cat /etc/passwd | sort -t ':' -k 3 root:x:0:0:root:/root:/bin/bash uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin

使用數(shù)字排序:

cat /etc/passwd | sort -t ':' -k 3n root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh

倒序排序:

cat /etc/passwd | sort -t ':' -k 3nr nobody:x:65534:65534:nobody:/nonexistent:/bin/sh ntp:x:106:113::/home/ntp:/bin/false messagebus:x:105:109::/var/run/dbus:/bin/false sshd:x:104:65534::/var/run/sshd:/usr/sbin/nologin 或者 cat /etc/passwd | sort -t ':' -k 3 -nr

先以第六個(gè)域的第2個(gè)字符到第4個(gè)字符進(jìn)行正向排序,再基于第一個(gè)域進(jìn)行反向排序:

cat /etc/passwd | sort -t ':' -k 6.2,6.4 -k 1r sync:x:4:65534:sync:/bin:/bin/sync proxy:x:13:13:proxy:/bin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh

查看/etc/passwd有多少個(gè)shell:

方法對(duì)/etc/passwd的第七個(gè)域排序并去重,然后統(tǒng)計(jì)行數(shù):

[root@localhost /]# cat /etc/passwd | sort -t':' -k 7 -u root:x:0:0:root:/root:/bin/bash syslog:x:996:994::/home/syslog:/bin/false sync:x:5:0:sync:/sbin:/bin/sync halt:x:7:0:halt:/sbin:/sbin/halt bin:x:1:1:bin:/bin:/sbin/nologin shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown [root@localhost /]# cat /etc/passwd | sort -t':' -k 7 -u|wc -l

uniq - 去重

選項(xiàng)與參數(shù): -i :忽略大小寫字符的不同; -c :進(jìn)行計(jì)數(shù) -u :只顯示唯一的行

該命令用于排完序之后,對(duì)排序結(jié)果進(jìn)行去重

[root@localhost /]# last | cut -d ' ' -f 1 | sort | uniqhaha python reboot wtmp [root@localhost /]# last | cut -d ' ' -f 1 | sort | uniq -c1 2 haha22 python7 reboot1 wtmp

排序文件,默認(rèn)是去重:

#cat words | sort |uniq friend hello world

排序之后刪除了重復(fù)行,同時(shí)在行首位置輸出該行重復(fù)的次數(shù):

#sort testfile | uniq -c 1 friend 3 hello 2 world

僅顯示存在重復(fù)的行,并在行首顯示該行重復(fù)的次數(shù):

#sort testfile | uniq -dc 3 hello 2 world

僅顯示不重復(fù)的行:

sort testfile | uniq -u friend

tee - 同時(shí)輸出多個(gè)文件

從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù),將其內(nèi)容輸出到標(biāo)準(zhǔn)輸出設(shè)備,同時(shí)保存成文件。

一般情況下用重定向?qū)崿F(xiàn),需要同時(shí)輸出多個(gè)文件時(shí)可以使用該命令。

參數(shù):

  • -a或–append  附加到既有文件的后面,而非覆蓋它.

將輸出同時(shí)保存到多個(gè)文件中,同時(shí)將輸出內(nèi)容顯示到控制臺(tái):

[root@localhost /]# echo "hello world"|tee f1 f2 hello world [root@localhost /]# cat f1 hello world [root@localhost /]# echo "hello world"|tee f1 f2 -a hello world [root@localhost /]# cat f1 hello world hello world

split - 文件切割

split命令用于將一個(gè)文件分割成數(shù)個(gè)。

該指令將大文件分割成較小的文件,在默認(rèn)情況下將按照每1000行切割成一個(gè)小文件。

語(yǔ)法:

split [-bl] file prefix -b: 以大小切割 -l:以行數(shù)切割 prefix:切割后文件的前綴

參數(shù)說(shuō)明:

  • -<行數(shù)> : 指定每多少行切成一個(gè)小文件
  • -b<字節(jié)> : 指定每多少字節(jié)切成一個(gè)小文件
  • -C<字節(jié)> : 與參數(shù)"-b"相似,但是在切 割時(shí)將盡量維持每行的完整性
  • [輸出文件名] : 設(shè)置切割后文件的前置文件名, split會(huì)自動(dòng)在前置文件名后再加上編號(hào)

使用指令"split"將文件"README"每6行切割成一個(gè)文件,輸入如下命令:

$ split -6 README #將README文件每六行分割成一個(gè)文件 $ ls #執(zhí)行l(wèi)s指令 #獲得當(dāng)前目錄結(jié)構(gòu) README xaa xad xag xab xae xah xac xaf xai

以上命令執(zhí)行后,指令"split"會(huì)將原來(lái)的大文件"README"切割成多個(gè)以"x"開(kāi)頭的小文件。而在這些小文件中,每個(gè)文件都只有6行內(nèi)容。

以大小切割:

$ ls -lh disease.dmp -rwxr-xr-x 1 root root 122M Jul 4 2013 disease.dmp $ split -b 50m disease.dmp disease.dmp $ ls -lh disease.dmp* -rwxr-xr-x 1 root root 122M Jul 4 2013 disease.dmp -rw-r--r-- 1 root root 50M Jan 9 16:10 disease.dmpaa -rw-r--r-- 1 root root 50M Jan 9 16:10 disease.dmpab -rw-r--r-- 1 root root 22M Jan 9 16:10 disease.dmpac

總結(jié)

以上是生活随笔為你收集整理的0基础学Linux-从小白到大牛(3)Linux命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。