linux常用命令總結

Linux基礎課第三章常用基本的一些命令

文件處理命令

命令語法:命令  [-參數選項]  [文件或路徑]

 

註解:1個別命令使用不遵循此格式

      2檔有多個項目時,可以寫在一起

      3簡化選項與完整選項

      4[]代表可選

      5參數選項表示同一個命令的不同功能

 

目錄處理命令:ls  選項[-ald]  [文件或目錄]

顯示目錄文件 ls lh /etc   l詳細  a所有  d屬性 hkm等顯示,R遞歸顯示

 

[root@localhost ~]# ls -ld /tmp/japan/duobo

drwxr-xr-x 2 root root 4096 3月   8 15:46 /tmp/japan/duobo

 

-rw-r--r--

文件類型  -文件d目錄,l軟連接文件

 

rw- r-- r--

u   g   o

u所有者   g所屬組  o其他人

r讀  w寫  x執行

 

 

創建目錄命令:mkdir  -p遞歸創建  [目錄名]

實例:mkdir -p /tmp/japan/duobo

      mkdir /tmp/japan/longze /tmp/japan/cangjing

 

Windows下的路徑樣式爲c:\data ,而linux底下路徑樣式爲/data,windows\,linux底下是/ .WINDOWS底下有dc盤等盤符概念,而linux底下沒有隻有文件路徑

 

 

切換目錄命令:cd [目錄路徑]

 

記住一個概念;相對路徑,絕對路徑

絕對路徑: Windows而言 :從頭(盤符)開始的路徑   linux而言:從/開始的路徑

實例:H:\linux運維架構學習筆記\linux基礎與系統管理總結   

[root@localhost /]# cat  /etc/sysconfig/network-scripts/ifcfg-eth0

相對路徑:不從/開始的路徑,不頭開始的路徑

實例:[root@localhost sysconfig]# cd network-scripts

 

實例:cd /tmp/japan/boduo 到指定目錄

 

[root@localhost ~]# cd /tmp/japan/duobo

[root@localhost duobo]#

 

      cd ..上一級目錄

[root@localhost ~]# cd /tmp/japan/duobo

[root@localhost duobo]#

 

      cd 當前主目錄下

[root@localhost japan]# cd

[root@localhost ~]#

 

 

顯示當前目錄:pwd  打印工作目錄

實例:  pwd

 

[root@localhost ~]# pwd

/root

 

刪除空目錄:rmdir  [目錄]

實例:rmdir /tmp/janpan/boduo

 

[root@localhost duobo]# rmdir /tmp/japan/duobo

[root@localhost duobo]# ls

[root@localhost duobo]# cd ..

[root@localhost japan]# ls

[root@localhost japan]# cd

[root@localhost ~]# cd /tmp

[root@localhost tmp]# ls

can  japan  test1  test2  test3

 

創建空文件:touch  [文件名]  如果文件不存在,就建立新文件,如果存在,就改變文件的訪問時間atime等時間戳信息

實例:touch japan.txt

創建有規則的多個文件

 touch beidaqinniao{1..10}

 

 

[root@localhost tmp]# ls

can  japan  test1  test2  test3

[root@localhost tmp]# touch japan.txt

[root@localhost tmp]# ls

can  japan  japan.txt  test1  test2  test3

 

 

創建有規則的多個文件

[root@localhost tmp]# touch beidaqinniao{1..10}

[root@localhost tmp]# ls

beidaqinniao1   beidaqinniao3  beidaqinniao6  beidaqinniao9  japan.txt  test3

beidaqinniao10  beidaqinniao4  beidaqinniao7  can            test1

beidaqinniao2   beidaqinniao5  beidaqinniao8  japan  

 

Echo輸出命令

語法echo [選項] [輸出內容]
選項 -e:  支持反斜線控制的字符轉換

 

實例:


[root@localhost ~]# echo -e "ab\bc"

Ac

 

[root@localhost ~]# echo -e "a\tb\tc\nd\te\tf"

a       b       c

d       e       f

 

[root@localhost ~]#  echo -e "\e[1;33m luliechu is good boy \e[0m"     

輸出顏色的命令

 

\e[1;代表開啓顏色輸出

\e[0m代表關鍵顏色輸出

 


 echo -e "\e[1;33m a\t \e[1;31m b\n \e[1;32mc\t \e[1;34m d \e[0m "


 

 

標準輸入輸出

標準輸入  0  鍵盤

標準輸出  1   顯示器

標準錯誤輸出 2  顯示器

 

輸出重定向   >覆蓋   >>追加

標準輸出重定向  命令>文件    命令>>文件

標準錯誤輸出重定向  錯誤命令 2>文件    錯誤命令2>>文件

 

正確輸出和錯誤輸出同時保存 命令 >> 文件 2>&1  以追加的方式,把正確的輸出和錯誤的輸出都保存到同一文件當中

                           命令&>>文件 以追加的方式,把正確的輸出和錯誤的輸出都保存到同一文件當中

 

                           命令>>文件1 2>>文件2 把正確的輸出到文件1中,錯誤的輸出到文件2

 

 

輸入重定向:命令<文件


沒有輸出重定向有用,知道就行了,演示案例  wc命令

 

Wc   選項  文件名

選項  -c  統計字節數

      -w  統計單詞數

      -l   統計行數

 

鏈接多個命令順序執行符號

;    命令1;命令2   多個命令順序執行,命令之間沒有任何邏輯聯繫  ,只是簡化操作,實際用於文件對拷命令  dd

實例:


Dd  if=輸入文件  of=輸出文件  bs=字節數  count=個數

選項  if=輸入文件  指定源文件或源設備

of=輸出文件   指定目標文件或目標設備

bs=字節數  把這些字節看做一個數據塊

count=個數  指定輸入/輸出多少個數據塊

 

實例:創建一個100m的文件大概需要多少時間


 

&&  命令1&&命令2  邏輯與 命令1正確纔會執行命令2


||   命令1||命令2    邏輯或  命令1不正確纔會執行命令2,命令1正確,就不會執行命令2

 

腳本長用&& ||結合用法,來判斷條件成立與否


 

 

管道符|  將命令1的正確輸出作爲命令2的操作對象

命令1 |命令2

實例:監聽正常連接


Grep [選項]  搜索內容  文件名

選項:

-i   忽略大小寫

-n  輸出行號

-v 方向查找

--color=auto 搜索出的關鍵字用顏色顯示

 

 

 

 

複製目錄或文件:cp -rp [源文件或目錄] [目標目錄]

                   -r遞歸複製整個目錄樹

                 -p保持源文件屬性不變

                 -f強制覆蓋目標同名文件或目錄

                 -i需要覆蓋時提醒

實例cp -r /tmp/japan/cangjing /root  將目錄/tmp/japan/cangjing複製到目錄/root

    cp -rp /tmp/japan/duobo /tmp/japan/longze /root   將目錄/tmp/japan目錄下的duobolongze複製到目錄/root下,保持目錄屬性

 

 

 

文件移動,剪切,改名:mv  [源文件或目錄][目標目錄]

實例:mv test.txt  /home 將文件test.txt移動到/home

 

刪除文件:rm -fr [文件或目錄]

             -r遞歸刪除整個目錄樹

             -f強制刪除文件或文件

             -i刪除時提醒

實例:rm /tmp /yum.log  刪除文件/tmp/yum.log

      rm -rf /tmp/japan/longze 刪除目錄/tmp/japan/longze

 

 

一次性顯示文件內容:cat -n [文件名]

                -n顯示行號

實例:cat /etc/issue

      cat -n /etc/services

 

 

反向顯示文件內容:tac [文件名]

實例:tac /etc/issue

 

分頁顯示文件內容:more [文件名]

空格或f     翻頁

                enter      換行

                qQ       退出

實例:more /etc/passwd

 

 

分頁顯示文件內容:less [文件名]  必須按q退出

實例:less /etc/passwd

 

 

顯示文件前面幾行 head -n [文件名]   不加行數默認是10

                -n 指定行數

實例:head -20 /etc/passwd

[root@localhost public]# head -n 2 test.txt   

test

liyao

 

顯示文件後面幾行  tail -n [文件名]   不加行數默認是10

                 -n 指定行數

                 -f 動態顯示文件末尾內容

實例:tail -2 /etc/passwd

 

 

已知/tmp目錄下已經存在text.txt文件,如果執行命令才能把/mnt/test.txt拷貝到/tmp下覆蓋掉/tmp/test.txt

答案:\cp /mnt/test.txt /tmp  //覆蓋文件不提示

 

 

生成軟鏈接:ln -s [源文件] [目標文件]

               -s創建軟鏈接

實例:ln s /etc/sysconfig/network-scripts  /a   創建軟鏈接

      ln /etc/issue /tmp/issue.hard 創建硬鏈接

軟鏈接類似:windows快捷方式

軟鏈接文件權限都爲777

文件大小隻是符號鏈接

箭頭指向原文件  /tmp/issue.soft ->/etc/issue

 

硬鏈接特徵:

拷貝cp -p +同步更新

echo "this is a test">>/etc/motd

可通過I節點識別

不能跨分區

不能針對目錄使用

 

 

改變文件或目錄權限chmod [{ugoa}{=+-}{rwx}] [文件或目錄]

                        [mode=421] [文件或目錄]

                         -R 遞歸修改

權限的數字表示r=4 w=2 x=1  rwxrw-r--  等於764

實例:chmod g+w testfile  賦予文件testfile所屬組寫權限

 

      chmod -R 777 testdir修改目錄testfile及其目錄下文件爲所有用戶具有全部權限

文件目錄權限總結

代表字符權限對文件的含義對目錄的含義

  r        讀可以查看文件內容可以列出目錄中的內容

  w        寫可以修改文件內容可以在目錄中創建,刪除文件

  x        執行可以執行文件可以進入目錄

 

 

改變文件或目錄的所有者:chown [用戶][文件或目錄]

實例:chown shenchao fengjie  改變文件fengjie的所有者爲shenchao

 

改變文件或目錄的所屬組:chgrp [用戶組][文件或目錄]

實例:chgrp lam fengjie  改變文件fengjie的所屬組爲lam

 

顯示,設置文件的缺省權限:umask [-S]

            -srwx形式顯示新建文件缺省權限

實例:umask -S

 

 

文件搜索:find [搜索範圍] [匹配條件]  五星級別命令

              -name按名稱找

              -size按大小找使用+ -設置超過還是小於指定大小,單位kM,G

              -user  屬於目標用戶查找

              - type文件類型查找 f普通文件 d目錄文件 b設備文件  c字符設備文件

實例:find  /etc -name  passwd 在目錄/etc中查找文件passwd

      find  /etc -size  +2M  在目錄/etc中查找大於2M的文件

      find /home -user test 搜索/home目錄下由test創建的文件及目錄列表

      find /etc -cmin -5  /etc下查找5分鐘內被修改過的屬性的文件和目錄

               -amin  設置時間  access

               -cmin  文件屬性  change

               -mmin  文件內容  modify         

      find /etc -size +80M -a size -100M  /etc下查找大於80M小於100M的文件

               -a兩個條件同時滿足

               -0兩個條件滿足任意一個即可

      find /etc -name inittab -exec ls -l {}\ /etc下查找inittab文件並顯示其詳細信息

               -exec/-ok 命令 {}\;對搜索結果執行操作

 

面試題:刪除一個目錄下的所有文件,但保留一個指定文件

 

解答:

假設這個目錄是/xx/,裏面有file1,file2,file3..file10  十個文件

[root@oldboy xx]# touch file{1..10}

[root@oldboy xx]# ls

file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

 

方法一:find

[root@oldboy xx]# ls

file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

[root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f 

[root@oldboy xx]# ls

file10

 

[root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;     

[root@oldboy xx]# ls

file10

 

這兩種一個通過xargs傳參,一個通過find-exec執行命令參數來完成,都算作find

 

 find /tmp -type f  -name "*.txt" -exec          rm {} \;

     路徑  類型   名字   find的結果傳參  動作

 

 

Find /log -type f -name *.log -mtime +15 |xargs rm -f  //查找log目錄,刪15天以前修改過得文件

Find /log -type f -name *.luliechu -mtime +30 |xargs rm -fr //查找log目錄,刪30天以前修改過得的並且以luliechu名稱結果的目錄

 

[root@localhost /]# mv `find /tmp -type f -name "*.txt"` /tmp/public

[root@localhost /]# cd /tmp/public

[root@localhost public]# ls

1.txt  4.txt           luliechu1.txt  luliechu4.txt  luliechu7.txt

2.txt  5.txt           luliechu2.txt  luliechu5.txt  luliechu8.txt

3.txt  luliechu10.txt  luliechu3.txt  luliechu6.txt  luliechu9.txt

 

 

 

 

 

 

 

 

 

在文件資料庫中查找文件:locate 文件名

實例:locate inittab

 

搜索命令所在目錄及別名信息:which 命令

實例:which ls

 

 

搜索命令所在目錄及幫助文檔路徑:whereis 命令名稱

實例:whereis ls

 

 

在文件中搜索字符串匹配的行並輸出:grep -iv [指定字串] [文件]  五星命令三劍客之一

              -i不區分大小寫

              -v排除指定字串

實例:grep mysql /root/install.log

      grep root /etc/passwd

 

假設一個文本中包含luliechu,現在要求打印此文本中去除luliechu

模擬創建文本

[root@localhost public]# cat >>test.txt<<eof  //創建多行文本

> test

> liyao

> luliechu

> eof

[root@localhost public]# cat test.txt

test

liyao

luliechu

 

 

答案:

[root@localhost public]# grep -v luliechu test.txt   grep篩選過濾  -v排除

test

Liyao

 

[root@localhost public]# grep  luliechu test.txt   不加-v就是包含查找這東西

Luliechu

 

Alias查看和設置別名

[root@localhost public]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

 

永久生效別名

[root@localhost tmp]# vi /root/.bashrc

  1 # .bashrc

  2

  3 # User specific aliases and functions

  4

  5 alias rm='rm -i'

  6 alias cp='cp -i'

  7 alias mv='mv -i'

  8 alias vi='vim'

  9 # Source global definitions

 10 if [ -f /etc/bashrc ]; then

 11         . /etc/bashrc

 12 fi

 

刪除別名 unalias 別名

 

uniq去重命令  -c  計算有多少次重複的

 

實例:

創建測試數據:

[root@localhost ~]# echo 123 >test

[root@localhost ~]# echo 123 >>test

[root@localhost ~]# echo 123 >>test

[root@localhost ~]# echo 123 >>test

[root@localhost ~]# cat test

123

123

123

123

[root@localhost ~]# uniq test

123

[root@localhost ~]# uniq -c test

      4 123

 

sort對文本行進行排序

 

[root@localhost ~]# cat test

121

122

123

123

124

125

126

 

[root@localhost ~]# sort test

 

121

122

123

123

124

125

126

 

  -n數字排序   -r倒序

[root@localhost ~]# sort -rn test

126

125

124

123

123

122

121

 

  -t分隔符  -k指定第幾個字段

-k3,3從第三個字段開始排序,到第三個字段結束

-k4.1,4.3 從第四個字段第1個字符開始排序,到第四個字段第3個字符結束

[root@localhost ~]# sort -t " "  -k 2 test

 

121 a

123 b

122 c

123 d

124 e

125 f

126 g

 

 

[root@localhost ~]# sort -n -t "." -k3,3 -k4,4.2 test

192.168.0.1

192.168.0.2

192.168.0.15

192.168.1.2

192.168.1.3

192.168.1.11

192.168.1.12

192.168.2.1

192.168.2.10

192.168.2.11

192.168.3.1

192.168.3.2

192.168.3.3

192.168.10.1

192.168.10.2

 

面試題:處理以下內容,並將域名取出並根據域名進行計數排序處理

 

對應:分析網絡連接裏,正在連接的所有ip地址,計數

      分析http服務,日誌ip的訪問次數,計數

 

創建測試數據

[root@localhost tmp]# cat >>test <<eof

> http://www.baidu.com/index.html

> http://www.kuparts.com/index.html

> http://post.etian.org/index.html

> http://www.baidu.com/index.html

> http://www.baidu.com/index.html

> http://www.jingdong.com/index.html

> http://kuparts.com/index.html

> eof

[root@localhost tmp]# cat test

http://www.baidu.com/index.html

http://www.kuparts.com/index.html

http://post.etian.org/index.html

http://www.baidu.com/index.html

http://www.baidu.com/index.html

http://www.jingdong.com/index.html

http://kuparts.com/index.html

 

[root@localhost tmp]# cat test |awk -F "/" '{print $3}'|uniq -c |sort -rn -k1

      2 www.baidu.com

      1 www.kuparts.com

      1 www.jingdong.com

      1 www.baidu.com

      1 post.etian.org

      1 kuparts.com

 

 

 

 

只查看ett.txt文件(100)內第2030行的內容

Seq打印序列號命令

[root@localhost public]# seq 5

1

2

3

4

5

[root@localhost public]# seq 1 3 10

1

4

7

10

 

答案:seq 100 >ett.txt   //模擬創建文件

第一種方法:head -30 ett.txt|tail -11

第二種方法:sed -n '20,30'p ett.txt

第三種方法:awk NR>19&&NR<31 ett.txt

 

 

Sed 流編輯器,用來將數據進行選取,替換,刪除,新增的命令

 

root@localhost ~]# sed [選項] [動作]’ 文件名   五星命令

選項:

-n: 一般sed命令會把所有數據都輸出到屏幕 , 如果加入此選擇,則只會把經過sed命令處 理的行輸出到屏幕。

-e: 允許對輸入數據應用多條sed命令編輯

-i: 用sed的修改結果直接修改讀取數據的文件, 而不是由屏幕輸出

 

動作:

a \: 追加,在當前行後添加一行或多行。添加多行時,除最後 一行 外,每行末尾需要用“\”代表數據未完結。

c \: 行替換,用c後面的字符串替換原數據行,替換多行時,除最 後一行外,每行末尾需用“\”代表數據未完結。

i \: 插入,在當期行前插入一行或多行。插入多行時,除最後 一行 外,每行末尾需要用“\”代表數據未完結。

d: 刪除,刪除指定的行。

p: 打印,輸出指定的行。

s: 字串替換,用一個字符串替換另外一個字符串。格式爲“行範 圍s/舊字串/新字串/g”(和vim中的替換格式類似)。

 

sed -i 's###g'  //sed替換

#是定意符,‘’□能用正則表達式  △不能用

 sed -i 's#wenxue#huangxiaoche#g' test2  

 

Find /public -type f -name *.sh|xagrs sed -i 's#wenxue#huangxiaoche#g' test2  

 

行數據操作

[root@localhost ~]# sed '2p' student.txt

#查看文件的第二行

[root@localhost ~]# sed -n '2p' student.txt

 

[root@localhost ~]# sed '2,4d' student.txt #刪除第二行到第四行的數據,但不修改文件本身

 

[root@localhost ~]# sed '2a hello' student.txt #在第二行後追加hello [root@localhost ~]# sed '2i hello \ world' student.txt #在第二行前插入兩行數據

 

# sed '2c No such personstudent.txt

#數據替換

 

字符串替換

# sed s/舊字串/新字串/g’ 文件名

# sed '3s/74/99/g' student.txt

#在第三行中,把74換成99

#sed -i '3s/74/99/g' student.txt

#sed操作的數據直接寫入文件

# sed -e 's/Li//g ; s/lin//g' student.txt

#同時把“Li”和“lin”替換爲空

 

 

 

 

 

 

幫助命令:man [命令或配置文件]

實例:man ls  查看命令ls的幫助信息

      man services 查看配置文件services的幫助信息

 

 

獲得sheel內置命令的幫助信息:help 命令

實例:help umask 查看umask命令的幫助信息

 

添加新用戶:useradd 用戶名

實例:useradd luliechu

 

設置用戶密碼:passwd 用戶名

實例:passwd luliechu

 

查看登錄用戶信息:who

查看登錄用戶詳細信息:w

 

壓縮命令: gzip [文件]

Gzip壓縮擴展名爲.gz的文件

實例: gzip  test.txt

 

 

解壓縮.gz的壓縮文件:gunzip [壓縮文件]

實例:gunzip boduo.gz

 

 

歸檔打包命令:tar 選項[-czf] [壓縮後文件名] [目錄]

          -c創建一個新包文件

          -x解開.tar格式的包文件

          -f使用文件歸檔

          -z調用gzip壓縮或解壓

          -j調用bzip2壓縮或解壓

實例:常用組合:tar  xzf       tar  xjf

Tar czvf  創建一個壓縮包格式的包文件,顯示執行的詳細信息

Tar czf etc.tar.gz /etc  將目錄/etc打包並壓縮爲.tar.gz文件

Tar xzvf  解開一個壓縮格式的包文件,顯示執行詳細信息

Tar xzf etc.tar.gz –C /home

Tar tzvf  臨時解開一個壓縮格式的包文件,查看內部的列表

 

 

壓縮文件或目錄:zip 選項[-r][壓縮後文件名][文件或目錄]

            -r 壓縮目錄

實例:Zip test.zip  test.txt  Zip生成zip格式的壓縮文件

zip -r japan.zip japan 壓縮目錄

 

 

解壓縮zip格式的壓縮文件:unzip [壓縮文件]

Unzip test.zip –d /home

 

Bzip  壓縮擴展名爲.bz2    bzip  test.txt

Gzip d 解壓擴展名爲.gz的文件  gzip d text.txt.gz

Bzip2  -d解壓擴展名爲.bz2的文件   bzip2 d text.txt.gzfa

 

 

給用戶發信息:write <用戶名>ctrl+d保存結束

實例:write luliechu

 

發送廣播信息:wall [message]

實例:wall hello,word!

 

 

測試網絡連通性:ping 選項 ip地址

        -c指定發送次數

實例: ping 192.168.1.1

 

 

查看網卡信息和ip地址:ifconfig 網卡名稱  ip地址

實例:ifconfig eth0 192.168.1.2 設置ip地址爲192.168.1.2

 

 

查看發送電子郵件:mail [用戶名]

實例:mail root

 

列出目前與過去登入系統的用戶信息:last

 

 

檢查某特定用戶上次登錄時間:lastlog

實例:lastlog -u 502

 

顯示數據包到主機間的路勁:traceroute

實例:traceroute www.baidu.com

 

查看網絡相關信息:netstat  [選項]

    -t  :tcp協議

    -u  udp協議

    -l  :監聽

    -r  :路由

    -n  :顯示ip地址和端口號

實例:netstat -tlun查看本機監聽的端口

      netstat -an  查看本機所有的網絡連接

      netstat -rn  查看路由表

 

 

配置網絡:setup

 

掛載命令:mount [-t文件系統] 設置文件名掛載點

實例:mount -t iso9660 /dev/cdrom /mnt/cdrom

 

關機命令:shutdown [選項] 時間

             -c 取消前一個關機命令

             -h  關機

             -r  重啓

實例:shutdown -h now

 

其他關機命令:halt init 0poweroff

其他重啓命令:reboot,innit6

 

 

Linux七種運行級別

0:關機

1:單用戶模式相當於windos中安全模式

2:字符界面的多用戶模式(不支持網絡)

3:字符界面的多用戶完整模式

4:未分配使用

5:圖形界面多用戶模式

6:重啓

查看linux系統當前運行級別  runlevel

要修改默認的運行級別可改文件  /etc/inittabid:5:initdefault這一行的數字

 

退出登錄命令:logout

 

 

 

命令於文件補全  tab


 

 

 


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