天天看點

linux常用指令總結

檔案處理指令

指令文法:指令  [-參數選項]  [檔案或路徑]

注解:1個别指令使用不遵循此格式

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

      3簡化選項與完整選項

      4[]代表可選

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

目錄處理指令:ls  選項[-ald]  [檔案或目錄]

顯示目錄檔案 ls –lh /etc   l詳細  a所有  d屬性 h以k,m等顯示,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底下有d盤 c盤等盤符概念,而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 ..上一級目錄

      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 ~]# cd /tmp

[root@localhost tmp]# ls

can  japan  test1  test2  test3

建立空檔案:touch  [檔案名]  如果檔案不存在,就建立新檔案,如果存在,就改變檔案的通路時間atime等時間戳資訊

執行個體:touch japan.txt

建立有規則的多個檔案

 touch beidaqinniao{1..10}

[root@localhost tmp]# touch japan.txt

can  japan  japan.txt  test1  test2  test3

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

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目錄下的duobo和longze複制到目錄/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      換行

                q或Q       退出

執行個體: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]

            -s以rwx形式顯示建立檔案預設權限

執行個體:umask -S

檔案搜尋:find [搜尋範圍] [比對條件]  五星級别指令

              -name按名稱找

              -size按大小找使用+ -設定超過還是小于指定大小,機關k,M,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]# find /xx -type f ! -name "file10"|xargs rm -f 

file10

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

這兩種一個通過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

luliechu

答案:

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

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 ~]# cat test

123

[root@localhost ~]# uniq test

[root@localhost ~]# uniq -c test

      4 123

sort對文本行進行排序

121

122

124

125

126

[root@localhost ~]# sort test

  -n數字排序   -r倒序

[root@localhost ~]# sort -rn test

  -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.jingdong.com/index.html

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

[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.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行)内第20到30行的内容

Seq列印序列号指令

[root@localhost public]# seq 5

1

2

3

4

5

[root@localhost public]# seq 1 3 10

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 person‘ student.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 0,poweroff

其他重新開機指令:reboot,innit6

Linux七種運作級别

0:關機

1:單使用者模式相當于windos中安全模式

2:字元界面的多使用者模式(不支援網絡)

3:字元界面的多使用者完整模式

4:未配置設定使用

5:圖形界面多使用者模式

6:重新開機

檢視linux系統目前運作級别  runlevel

要修改預設的運作級别可改檔案  /etc/inittab的id:5:initdefault這一行的數字

登出指令:logout

指令于檔案補全  tab

本文轉自    探花無情   51CTO部落格,原文連結:http://blog.51cto.com/983865387/1917731

繼續閱讀