Linux學習日誌之Linux常用命令總結

Linux常用命令:

練習3遍以上,命令有點多,建議慢慢查看


一、命令基本格式

1.命令格式:

[root(管理員)@localhost(主機名)~]#(超級用戶提示符,普通用戶提示符是$) adminis

/root一級目錄用pwd print working directory(打印工作目錄)查看

/home/user1/二級目錄

[root@localhost ~]# cd /usr/local/src/ 切換當前目錄

[root@localhost src]#


命令[選項] [參數]  中括號表示可選

注意:個別命令使用時不遵循此歌詩,當有多個選項時,可以寫在一起簡化選項和完整選項

-a 等於--all

2.查詢目錄中內容:ls  [選項] [文件或目錄]

選項:

      -a  all,顯示所有文件,包括隱藏文件,隱藏文件以點"."開頭,.bashrc,隱藏是防止誤操作

      -l  顯示詳細信息 longlist長顯示

      -d  查看目錄屬性direct

      -h  人性化顯示文件大小human

      -i  顯示inode 即i節點

權限:默認10位 - rw- r-- r--

               -文件類型(最主要的三種:-文件 d目錄 |軟鏈接文件)

另外四種文件類型:塊設備文件,字符設備文件,套接字文件和管道pipe文件

               rw-         r--       r--

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

-rw-r--r--. l     root   root   1207 1月  14 18:18  anaconda-ks.cfg

解釋:

-rw-r--r--:權限分佈 

.:點.可能代表ACL權限  

l:引用次數 ,被調用計數

1207:字符大小,一般是字節 # ls -lh:顯示字符後單位,方便閱讀h,human人性化

第一個root:所有組,主人 

第二個root:所屬組,用戶組

1月14 18:18:最後一次修改的時間


      記憶:r讀read,w寫write,x執行execute


二、文件處理命令

1.目錄處理命令

目錄同樣是文件,目錄用於保存文件

(1).建立目錄:mkdir  make directories

    mkdir  -p [目錄名]

    -p  遞歸創建,先創建上級目錄,再創建第二級目錄


[root@localhost ~]# mkdir -p japan/cangls

[root@localhost ~]# ls

anaconda-ks.cfg bols install.log  install.log.syslog  japan

[root@localhost ~]# cd japan/

[root@localhost japan]# ls

cangls

(2).切換所在目錄:cd  change directory切換目錄

   簡化操作:

    cd ~  進入當前用戶的家目錄

    cd    進入當前用戶的家目錄  /Ctrl+L xshell清除屏幕

    cd -進入上次目錄

    cd .. 進入上一級目錄

    cd .  進入當前目錄

[root@localhost japan]# cd /root/

[root@localhost ~]# ls    

[root@localhost cangle]# pwd

/root/japan/cangls

[root@localhost cangls]# cd~

[root@localhost ~]# cd japan/cangls

[root@localhost cangls]# cd

[root@localhost ~]# cd -

/root/japan/cangls

[root@localhost cangls]# cd -

root

[root@localhost ~]# cd ..

[root@localhost /]#  root目錄


.相對路徑:參照當前所在目錄,進行查找

如:[root@imooc ~]# cd ../usr/local/src/

[root@localhost /]# cd

[root@localhost ~]# pwd

/root

[root@localhost ~]#cd ../usr/local/src/ 相對路徑發生改變

[root@localhost src]# pwd

/usr/local/src

[root@localhost src]# cd ../usr/local/src/ 路徑已經改變,,所以提示錯誤無法確認到src中的usr目錄

-bash : cd: ../usr/local/src/:沒有那個文件或目錄

[root@localhost src]#


.絕對路徑:從根目錄開始指定,一級一級遞歸查找。在任何目錄下,都能進入指定位置,更加可靠

如:[root@localhost src]# cd /etc/

[root@localhost src]# cd /etc/

[root@localhost etc]# cd /etc/

[root@localhost etc]# cd /etc/

[root@localhost etc]# cd /etc/

[root@localhost etc]# 

命令在任何目錄下都可以運行,畢竟是從根目錄開始的

如果不記得的目標目錄,


[root@localhost src]# cd /(按兩下tab)使用tab可以補全命令或者目錄


(3).查詢所在目錄位置:pwd

     .pwd :print working directory打印工作目錄,顯示當前目錄


(4).刪除空目錄:rmdir

    .rmdir [目錄名]:remove empty directories 刪除空目錄

[root@localhost ~]# ls

anaconda-ks.cfg bols install.log  install.log.syslog  japan

[root@localhost ~]#  rmdir bols/

[root@localhost ~]# ls

anaconda-ks.cfg install.log install.log.syslog  japan

[root@localhost ~]# rmdir japan/

rmdir:刪除 "japan/"失敗:目錄非空

因爲japan裏面有文件夾cangls,所以非空無法刪除


(5).刪除文件或目錄:rm

     .rm -rf [文件或目錄]

     命令英文願意:remove

選項:

     -r  刪除目錄,刪除目錄時不可缺少

     -f  強制

[root@localhost ~]# rm -rf / 刪除根目錄99%的文件,幾乎等於格式化,自殺式命令


(6).複製命令:cp

     cp [選項] [原文件或目錄] [目標目錄]

     命令英文願意:copy

選項:

     -r 複製目錄

     -p 連帶文件屬性複製

     -d 若源文件是鏈接文件,則複製鏈接屬性

     -a 相當於-pdr

[root@localhost ~]# cpanaconda-ks.cfg /tmp/ana(添加這個名字說明覆制過去會更改文件名,不填寫則複製過去仍是源文件名)

[root@localhost ~]# ls

anaconda-ks.cfg install.log  install.log.syslog japan

[root@localhost ~]# cp japan/ /tmp/ 注意空格一下隔開japan/和/tmp/

cp:略過目錄"japan/"  需要添加-r

[root@localhost ~]# cp -r japan/ /tmp/

[root@localhost ~]# ls /tmp/

ana japan yum.log

可以使用ll查看我文件屬性和權限分佈

[root@localhost ~]# ll 或者寫成ls -l

總用量 48

- rw-------. 1 root root 1207  1月  14 20:38 ana

普通複製出來的文件時間新舊文件時間不一致

[root@localhost ~]# cp -pdr

複製出來的文件和源文件屬性等全部一致


(7)剪切或改名命令:mv 

    mv [原文件或目錄][目標目錄]

    英文原意:move

剪切不區分文件和目錄,不加-r

[root@localhost ~]# mv japan/ /tmp/japan1  不在同一個目錄下是剪切

[root@localhost ~]# ls

anaconda-ks.cfg install.log  install.log.syslog 

[root@localhost ~]# cd /tmp/

[root@localhost tmp]# ls

ana anaconda-ks.cfg japan japan1 yum.log

改名:

[root@localhost tmp]# mv anaconda-ks.cfg longls 在同一個目錄下就變成改名了

[root@localhost tmp]# ls

ana japan japan1 longls yum.log


常用一級目錄的作用:

  /根目錄

  /bin 命令保存目錄(普通用戶就可以讀取的命令)

根目錄/下的bin和sbin,usr目錄下的bin和sbin四個目錄都是用來保存系統命令的,sbin只有root才能使用,普通用戶不行sbin,super bin

  /boot 啓動目錄,啓動相關文件

  /dev 設備配置文件保存目錄

  /etc 配置文件保存目錄

  /root 超級用戶的家目錄

  /home 普通用戶的家目錄

  /lib 系統庫保存目錄,常用函數庫

  /mnt 系統掛載文件,cd-rom掛載光盤,usb掛載U盤

  /media 掛載目錄

  /misc 空目錄,最後三個是用掛載目錄

使用規範,約定俗成的目錄名

  /proc/直接寫入內存

  /sys/

proc和sys目錄是不能直接操作的,用來保存內存的過載點

不能用來存放數據,首先內存不能永久保存,而且存放會使系統變慢

  /var 系統相關文檔的內容

  /tmp 存放臨時文件

總結:可以在家目錄root或home,以及tmp目錄下隨便放內容

      根目錄只存放必要的文件


(8).鏈接命令:ln

      ln -s [原文件][目標文件]

      命令英文原意:link

      功能描述:生成鏈接文件

      選項: -s 創建軟鏈接 soft

.硬鏈接特徵:

1、擁有相同的i節點和存儲block塊(一般4KB一個block),可以看做是同一個文件

相當於一個存儲文件的不同的獲取入口,鏡像一樣存儲double份

2、可以通過i節點識別

3、不能跨分區

4、不能針對目錄使用

[root@localhost ~]# ls

anacondalks.cfg cangls install.log  install.log.syslog

[root@localhost ~]# ln /root/anaconda-ks.cfg /tmp/ana.hard

[root@localhost ~]# ll

總用量 44

-w--------. 2 root root 1207  1月  14 18:18 anaconda-ks.cfg

...

[root@localhost ~]# ll /tmp/

總用量 12

-w--------. 2 root root 1207  1月  14 18:18 ana.hard,引用計數都加1

通過任意方式打開修改後,通過另外一個仍可以查看文件,權限一致,其實就是同一個文件

缺陷:不能跨分區,不能針對目錄


.軟鏈接特徵:

1、類似windows快捷方式,方便打開

2、軟鏈接擁有自己的i節點和block塊,但是數據塊中保存原文件的文件名和i節點號,並沒有實際的文件數據,是原文件的i節點和block塊

3、lrwxrwxrwx |軟鏈接

       軟鏈接文件權限都爲rwxrwxrwx,查看軟鏈接文件的權限,區別於原文件

4、修改任意文件,另一個都改變

5、刪除原文件,軟鏈接不能使用

限制少,而且靈活


[root@localhost ~]# ls

anacondalks.cfg cangls install.log  install.log.syslog

[root@localhost ~]# ln -s /root/anaconda-ks.cfg /tmp/cangls.soft

[root@localhost ~]# ln /root/cangls /tmp/cangls.hard

[root@localhost ~]# ll

總用量 40

-rw-r--r--. 2 root root 1207  1月  14 22:00 cangls

...


[root@localhost ~]# ll -i

262419 -rw-r--r--. 2 root root  0  1月  14 22:00 cangls

262147 -rw-r--r--. 1 root root 24772 1月 14 18:17 install.log

...

[root@localhost ~]# ll -i /tmp/

262418 -rw--------. 1 root root 1216 1月 14 22:36  ana.hard

932110 -rw-r--r---. 1 root root  0  1月  14 22:00 cangls

262419 -rw-r--r--. 2 root root  0  1月  14 22:00 cangls.hard

932061 lrwxrwxrwx. 1 root root  12  1月 14 22:46 cangls.soft -> /root/cangls

其中rwx是指訪問軟鏈接的權限,不是原文件的權限,主要分析inode,權限變化,引用計數

...

使用[root@localhost ~]#  cat /tmp/cangls.hard

    [root@localhost ~]#  cat /tmp/cangls.soft

查看文件

做軟鏈接需要使用絕對目標,否則會難以查找,或者在同一目錄下修改


三、文件搜索命令:


1.文件搜索命令locate

速度快,但只能按照文件名搜索

格式:locate 文件名,只能通過文件名來搜索

在後臺數據庫中按文件名搜索,搜索速度快

[root@localhost ~]# locate install,log

/root/install.log

/root/install.log.syslog

是否可以搜索新建文件?

[root@localhost ~]# touch cangls

[root@localhost ~]# locate cangls

[root@localhost ~]#    搜索不到,因爲數據庫未更新,每天更新一次


/var/lib/mlocate

#locate命令所搜索的後臺數據庫

[root@localhost ~]# updatedb

[root@localhost ~]# locate cangls

/root/cangls

updatedb

更新數據庫

但是,

[root@localhost ~]# touch /tmp/cangls

[root@localhost ~]# updatedb

[root@localhost ~]# locate cangls

/root/cangls

沒有出現/tmp/cangls

原因:locate搜索是按照/etc.updatedb.conf配置文件來進行搜索的

PRUNEPATHS = tmp,即tmp不再搜索路徑

詳情:

 PRUNE_BIND_MOUNTS="yes"

#開啓搜索限制,限制全部生效,當是“no”時不搜索

 PRUNEFS =

#搜索時,不搜索的文件系統

 PRUNENAMES =

#搜索時,不搜索的文件類型

 PRUNEPATHS =

#搜索時,不搜索的路徑


2.命令搜索命令whereis與which,用來搜索系統命令

 (1).whereis 命令名,只能查系統文件命令

 #搜索命令所在路徑及幫助文檔所在位置

選項:

   -b :只查找可執行文件

   -m :只查找幫助文件

[root@localhost ~]# whereis ls

ls:/bin/ls /usr/share/man/man1/ls.l.gz .usr/share/man/manlp/ls.lp.gz

後面的是幫助文檔的位置

[root@localhost ~]# whoami 查看我是誰

root

[root@localhost ~]# whatis ls 查詢這條命令的作用*


ls         (l) - list directory contents顯示目錄

ls          (lp)  - list directory contents

[root@localhost ~]#  whereis -b ls只看可執行文件位置

ls: /bin/ls

[root@localhost ~]# whereis -m ls只查看幫助文檔位置

ls: /usr/share/man/man1/ls.l.gz /usr/share/man/manlp/ls/lp/gz


 (2).which 命令名,除了查看位置,還能查看到別名

 #搜索命令所在路徑及別名

[root@localhost ~]# which ls

alias ls='ls --color=auto'顏色顯示

          /bin/ls

[root@localhost ~]# whereis cd  #cd屬於shell內置命令

cd: /usr/share/man/manl/cd.l.gz /usr/share/man/manlp/cd/lp/gz

[root@localhost ~]# which cd

/usr/bin/which:no cd in()

whereis和which的搜索路徑都依賴PATH所定義的路徑


補充:

要想直接執行執行腳本或者執行命令,就應該使用絕對路徑

 PATH環境變量

  PATH環境變量:定義的是系統搜索命令的路徑

[root@localhost ~]# echo $PATH

/usr/lib/qt-3.3/bin:

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

用冒號分割的不同命令,說明在這些目錄裏搜索需要的命令,搜索到後執行,如果搜索完之後都沒有找到,就會提示錯誤

執行個人腳本時,應當記住絕對路徑或者存放到PATH所要求的路徑之中


3.文件搜索命令find

耗費資源,全部遍歷

 find [搜索範圍][搜索條件]

   #搜索文件

 (1).find / -name install.log

   #避免大範圍搜索,這會耗費系統資源

   #find是在系統當中搜索符合條件的文件名,使用通配符匹配,通配符是完全匹配的

[root@localhost ~]# ls

abc abd install.log install.log.syslog

[root@localhost ~]# find / -name install.log

/root/install.log

你會發現沒有install.log.syslog,其實find默認是精確搜索,如果要模糊搜索需要使用到通配符


(2).Linux中的通配符:

 *   匹配任意內容

 ?  匹配任意一個字符

 []  匹配人一箇中括號內的字符,像python的range(),從裏面選通配符

[root@localhost ~]# ls

abc abd install.log install.log.syslog

[root@localhost ~]# find / -name "install.log*"

/root/install.log  

/root/install.log.syslog


[root@localhost ~]# ls

abc abd install.log install.log.syslog

[root@localhost ~]# find /root -name "ab[cd]"

abc

abd

如果沒有ab只是[cd]說明只是搜索c或者d的文件,可以使用*[cd]查找結尾包含c或d的所有文件


(3).另外:

 find /root -iname install.log

 #不區分大小寫


 find /root -user root

 #按照所有者搜索

[root@localhost ~]# find /root -user root

/root

...


 find /root -nouser

#查找沒有所有者的文件

[root@localhost ~]#  find /root -nouser

沒有所有者的文件是垃圾文件,但是有一些特殊文件:

1).系統內核自己產生的沒有所有者,如果是在sys,proc中產生

2).外來數據,光盤,u盤,移動數據

 

 a)find /var/log/ -mtime +10

 #查找10天前修改的文件

詳細分爲三種:

 find /var/log/ -mtime -10    10天內修改的文件

 find /var/log/ -mtime 10     10天當天修改的文件

 find /var/log/ -mtime +10    10天前修改的文件


  atime   文件訪問時間 access time訪問時間

  ctime   改變文件屬性 change time修改時間

  mtime   修改文件內容 modify time修改時間


 b)find   -size 25k

 #查找文件大小是25kB的文件

詳細情況也分爲三種:

  -25k    小於25kB的文件

  25K     等於25kB的文件

  +25K    大於25kB的文件

注意:k是小寫,M是大寫,不然報錯

find:無效的 -size 類型 "m","K"

不寫單位也不行,大小是以塊爲單位的,一般大小是4kB,如果沒單位如25是表示25個扇區(默認是512kB)的容量大小


 d)find   -inum  262421

 #查找i節點是262421的文件

[root@localhost ~]#  ls -i

262242 abc  262421  abd

[root@localhost ~]#  find -inum 262421

/root/abd


 e)find  /etc -size  +20k -a -size -50k

 #查找/etc/目錄下,大於20kB且小於50kB的文件

   -a  and 邏輯與,兩個條件都需要滿足

   -o  or  邏輯或,兩個條件只需要滿足一個即可


 find /etc -size +20k -a -size -50k -exec ls -lh{}\;

 #find命令執行結果通過-exec讓第二個命令ls -lh進行處理

 #查找/etc/目錄下,大於20kB並且小於50kB的文件,並顯示詳細信息

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


4.字符串搜索命令grep

  grep [選項]字符串 文件名

 #在文件當中匹配符合條件的字符串

選項:

  -i 忽略大小寫 ignore忽略

  -v 排除指定字符串 即搜索不包含字符串的

[root@localhost ~]# ls

anaconda-ks.cfg  install.log install.log.syslog

[root@localhost ~]# grep "size" anaconda-ks.cfg

#part /boot --fatype=ext4 --size=200

#part /boot --fatype=ext4 --size=2000

#part swap --size=512

#part / --fstype=ext4 --grow --size=200

可以用cat查看文件


5.find命令與grep命令的區別

find命令:在系統當中搜索符合條件的文件名,如果需要匹配,則使用通配符匹配,通配符是完全匹配,就是搜索的結果和條件一模一樣


grep命令:在文件當中搜索符合條件的字符串,如果需要匹配,使用正則表達式進行匹配,正則表達式是包含匹配,結果只需要包含搜索條件就可以


四、幫助命令

1.幫助命令man;manual,文檔的縮寫

  man 命令

  #獲取指定命令的幫助

  man ls

  #查看ls的幫助

LS(1(命令級別))     User Commands

NAME 命名

      ls -list directory contents

SYNOPSIS格式

      ls [OPTION]...[FILE]....

可以直接使用/-d查看ls -d的幫助內容,按n往下依次瀏覽,按Shift+n往上瀏覽

  man的級別:命令級別

  1: 查看命令的幫助

  2: 查看可悲內核調用的函數的幫助

  3: 查看函數和函數庫的幫助

  4: 查看特殊文件的幫助

  5: 查看配置文件的幫助

  6: 查看遊戲的幫助

  7: 查看其他雜項的幫助

  8: 查看系統管理員root可用命令的幫助

  9: 查看內核相關文件的幫助

[root@localhost ~]# man -f passwd

passwd             (1)   - update user's authentication token

passwd             (5)   - password file

passwd [sslpasswd] (lssl) -compute password hashes

[root@localhost ~]# whereis passwd

passwd: /usr/bin/passwd(命令位置) /etc/passwd(配置文件位置) /usr/share/man/manl/passwd.1.gz(1等級的幫助文件位置) /usr/share/man5/passwd.5.gz(5等級的幫助文件位置)

  

   man -f 命令

  #查看命令所擁有的那個級別的幫助信息

  相當於

   whatis 命令

舉例:

   man -5 passwd

   man -4 null

   man -8 ifconfig

[root@localhost ~]# whatis ls

                  (1) - list directory contents

                  (1p) - list directory contents

[root@localhost ~]#  man -f null

                  (4) - data sink

[root@localhost ~]# man 4 null

有多個等級號就要指定等級號,不然就會從等級號最小的幫助文檔開始打開


  man -k 命令

  #查看和命令相關的所有幫助文檔

  相當於

  apropos命令

  例如:

  apropos passwd


2.其他幫助命令

  (1).選項幫助命令:

  命令 --help  即man ,--help有部分翻譯成中文了

  #獲取命令選項的幫助

  例如:

  ls --help

  (2).shell內部命令幫助,shell殼,內核編譯器,用戶和系統交互的接口

   help shell內部命令

   #獲取shell內部命令的幫助

   例如:

   whereis cd

   #確定是否是shell內部命令,可以用whereis查看命令位置,如果只有幫助文檔,說明是系統內核自帶,如果顯示出了執行文件,那麼說明是後面添加的命令程序

   help cd

   #獲取內部命令幫助,man cd是無法獲取內部,然而help無法獲得外部命令幫助

  (3).詳細命令幫助info

    info 命令

     -回車: 進入子幫助界面(帶有*的標記纔可以回車)

     -u   : 進入上層界面,up

     -n   : 進入下一個幫助小節

     -p   : 進入上一個幫助小節

     -q   : 退出quit


五、壓縮命令

常用壓縮格式: .zip  .gz  .bz2  .tar.gz  .tar.bz2

.rar壓縮率高


(1).zip格式壓縮

     .zip壓縮文件名 源文件

     #壓縮文件

     .zip -r 壓縮文件名 源目錄

     #壓縮目錄

[root@localhost ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog  longzls

[root@localhost ~]# zip longzls.zip  longzls(空文件,所以壓縮0%)

  adding: longzls (stored 0%)

[root@localhost ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog  longzls  longzls.zip

[root@localhost ~]# 

注意:後綴不能缺少,不是因爲系統原因,畢竟linux不區分後綴名,但是爲了方便管理員管理不應該缺少

      壓縮文件是有個壓縮格式的存儲,如果源文件比較小,會發現壓縮後文件反而更大,但是當你的壓縮文件很大的時候,就會有比較好的效果

[root@localhost ~]# mkdir jp

[root@localhost ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog  jp  longzls  longzls.zip

[root@localhost ~]# touch jp/cangls

[root@localhost ~]# touch jp/longls

[root@localhost ~]# touch jp/bols

[root@localhost ~]# zip -r jp.zip jp

(2).zip格式解壓縮

     unzip壓縮文件

     #解壓縮.zip文件

[root@localhost ~]# unzip jp.zip

(3).gz格式壓縮

     1).gzip 源文件

     #壓縮爲.gz格式的壓縮文件,源文件會消失

[root@localhost ~]# ls 

anaconda-ks.cfg  install.log  install.log.syslog  jp  longzls

[root@localhost ~]# gzip longzls

[root@localhost ~]# ls

anaconda-ks.cfg  install.log  install.log.syslog  jp  longzls.gz

     2).gzip -c 源文件 > 壓縮文件

     #-c是將文件內容輸出,通過>指向輸出位置,實現壓縮,原文件也沒有消失,如果沒有目標,那麼將直接輸出到屏幕上

     #壓縮爲.gz格式,原文件保留

    例如:

     gzip -c cangls > cangls.gz

     3). gzip -r 目錄

     #壓縮目錄下所有的子文件,但是不能壓縮目錄

補充:.gz可以在windows中解壓縮,但是.rar在linux不可以解壓縮

[root@localhost ~]# gzip -r jp

[root@localhost ~]# ls

abc  abc.gz  anaconda-ks.cfg  install.log  install.long.syslog  jp  longzls.gz

[root@localhost ~]# cd jp/

[root@localhost jp]# ls

bols.gz  cangls.gz  longls.gz

壓縮了目錄下的子文件,但是沒有壓縮目錄

(4).gz格式解壓縮

      gzip -d 壓縮文件

      #解壓縮文件

      gunzip 壓縮文件

      #解壓縮文件

解壓縮後,壓縮文件會消失,源文件出現,而且解壓縮目錄時候同樣不能缺少-r,即

gunzip -r 壓縮文件

(5).bz2格式壓縮

      bzip2 源文件

      #壓縮爲.bz2格式,不保留源文件

      bzip2 -k 源文件 keep保留

      #壓縮之後保留源文件

注意:bzip2命令不能壓縮目錄

(6).bz2格式解壓縮

      bzip2 -d 壓縮文件

      #解壓縮,-k保留壓縮文件

      bunzip2 壓縮文件

      #解壓縮,-k保留壓縮文件

注意:bunzip2同樣不能解壓縮目錄

(7).tar.gz,tar.bz2壓縮格式

tar打包,先打包,再壓縮

      tar -cvf 打包文件名 源文件

      選項:

           -c:打包

           -v:顯示過程

           -f:指定打包後的文件名

           -t: test測試,不解壓只查看

例如:

      tar -cvf longzls.tar longzls

[root@localhost ~]# tar -cvf jp.tar jp

jp/

jp/bols

jp/longls

jp/cangls

[root@localhost ~]#  gzip jp.tar

[root@localhost ~]# ls

abc  abc.gz  anaconda-ks.cfg  install.log  install.long.syslog  jp jp.tar.gz

通過tar和gzip實現目錄的壓縮

      tar.gz壓縮格式:

其實.tar.gz格式是先打包爲.tar格式,再壓縮爲.gz格式

      tar -zcvf 壓縮包名 .tar.gz 源文件

     選項:

         -z:壓縮爲.tar.gz格式

      tar -zxvf 壓縮包名 .tar.gz

     選項:

         -x: 解壓縮.tar.gz格式


     tar.bz2壓縮格式:

同樣.tar.bz2格式也是先打包爲.tar格式,再壓縮爲.bz2格式

      tar -jcvf 壓縮包名 .tar.bz2 源文件

     選項:

         -j:壓縮爲.tar.bz2格式

      tar -jxvf 壓縮包名 .tar.bz2

     選項:

         -x: 解壓縮.tar.bz2格式

注意前後壓縮解壓縮的格式一致性,不然會出錯

(8).tar.gz,tar.bz2解壓縮命令

      tar -xvf

選項:

      -x:解包

      -v:顯示過程

      -f:指定打包後的文件

      -t: test測試,不解壓只查看


六、關機重啓命令

1.shutdown命令

[root@localhost ~]# shutdown [選項]時間

選項:

-c:取消前一個關機命令 console取消

-h:關機 

-r:重啓 一般遠程重啓,很少會遠程關機,那麼開機要親自去開機


2.其他關機命令:

[root@localhost ~]# halt

[root@localhost ~]# poweroff

[root@localhost ~]# init 0

都不安全,不會保存當前情況

[root@localhost ~]# reboot 相對安全

[root@localhost ~]# init 6

init 0和init 6數字的意思:系統運行級別

 0  關機  不允許設置爲系統默認級別

 1  單用戶

 2  不完全多用戶,不含NFS服務,NFS文件共享符

 3  完全多用戶 支持NFS

 4  未分配

 5  圖形界面#需要提前安裝Xll,大寫X表示圖形界面

 6  重啓  不允許設置爲系統默認級別


[root@localhost ~]# cat /etc/inittab

#修改系統默認運行級別

id:3:initdefault:


[root@localhost ~]# runlevel

#查詢系統當前運行級別

N 3

N,Null,進入3級別之前是空級別,現在是3級別


[root@localhost ~]# logout

#推出登陸命令

允許同時登陸的用戶是有數量要求,所以關機時應該先退出登錄


七、掛載命令

掛載相當於windows分配盤符,而盤符在linux稱爲掛載點

U盤,光盤,移動硬盤重啓後都需要重新分配盤符,其他固定盤分配後都會自動掛載


1、查詢與自動掛載

[root@localhost ~ ]# mount

#查詢系統中已經掛載的設備

[root@localhost ~ ]# mount

/dev/sda5 on / type ext4 (rw)   #第一個分區

proc on /proc type proc (rw)

...

dev:所有特殊設備

sda5中的sd:SCSI硬盤接口200MB/s(服務器接口)、SATA硬盤接口SATA3<500MB/s(串口硬盤)

5:第5個分區


補充:

系統分區:

(1)磁盤分區:磁盤分區是使用分區編輯器(partition editor)分幾個邏輯部分。碟片一旦劃分成數個分區(partition),不同類的目錄和文件可以存儲近不同的分區(邏輯上)

分區規則:主分區:最多四個(硬盤結構,每個扇區512字節,446字節記錄存儲信息,64個字節用於分區表示,每16個字節表示一個分區)

          擴展分區:最多一個

                    主分區和擴展分區最多四個

                    不能寫入數據,只能包含邏輯分區

                    

          主分區加擴展分區只能有四個

          邏輯分區

(2)分區設備名與掛載:

給每個分區起一個分區名才能使用,以便於之後爲分區分配盤符,分區->格式化->起名->分配盤符

windows:分區->格式化->分配盤符

常見硬件設備文件名:

/:根目錄dev硬件文件/描述字符(硬件自行檢測)[接口編號]

IDE硬盤: /dev/hd[a-d]如/dev/hda1

SCSi/SATA/USB硬盤:/dev/sd[a-p]如/dev/sda1

光驅:/dev/cdrom或/dev/hdc

軟盤:/dev/fd[0-1]

打印機(25針):/dev/lp[0-2]

打印機(USB):/dev/usb/lp[0-15]

鼠標:/dev/mouse

/dev/hda1(IDE硬盤接口<133M/s)CPU32—64位,8*8b

/dev/sda1(SCSI硬盤接口200MB/s、SATA硬盤接口SATA3<500MB/s)

 a)分區表示:

注:1,2,3,4編號只能給主分區或者擴展分區使用,5開始才能給邏輯分區使用

 b)掛載(給分區分配盤符的過程(盤符連接分區的過程)):

拿目錄做盤符(盤符是windows概念,用CDEF表示,但是在linux用掛載點表示)

注:必須分區:

    /根分區

    swap分區(交換分區,內存兩倍,不超過2GB)同windows虛擬內存

真實機小於4G,SWAP分兩倍;SWAP大於4G時,分區使用相同內存就可以

    推薦分區:

    /boot(啓動分區,200M)

根目錄和子目錄依舊分開分區,相互不影響


ext4:文件系統

rw:權限是讀寫

proc:直接寫入內存

proc和sys目錄是不能直接操作的,用來保存內存的過載點,系統自動掛載


[root@localhost ~]# mount -a

#依據配置文件/etc/fstab的內容,自動掛載

[root@localhost ~]# vi /etc/fstab 

#自動掛載的分區,將相關的文件寫入了ext4,swap目錄下了

UUID ... /  ext4  defaults  1  1

UUID ... /boot  ext4  defaults  1  2

UUID ... /home  ext4  defaults  1  2

UUID ... swap ext4  defaults  0  0

注意:光盤,U盤,移動盤載入後設置成了自動掛載,如果取出了的話,系統無法掛載,系統就會出現錯誤


2、掛載命令格式

 [root@localhost ~]# mount [-t 文件系統][-o 特殊選項] 設備 文件名 掛載點

選項:

 -t 文件系統:假如文件系統類型來制定掛載的類型,可以是ext3,ext4,iso9660等文件系統

 -o 特殊選項:可以指定掛載的額外選項

特殊選項:



[root@localhost ~]# mount -o remount,noexec/home

#重新掛載/boot分區,並使用noexec權限

[root@localhost sh]# cd /home

[root@localhost boot]# vi hello.sh

[root@localhost boot]# chmod 755 hello.sh

[root@localhost boot]# ./hello.sh

[root@localhost boot]# mount -o remount,exec /home

#記得改回來,要不然會影響系統啓動的


[root@localhost ~]# cd home

[root@localhost home]# ls

lost+found  user1

[root@localhost home]# vi hello.sh  回車寫一段腳本文件

#!/bin/bash 必須帶有,表明之後的都是這段腳本,如果不寫標記,嵌套時會出現錯誤

echo."hello,linux!!!"


:wq

保存

[root@localhost home]# chmod 755 hello.sh

[root@localhost home]# ll

-rwxr-xr-x. 1 root  root  36  10月  9 22:31  hello.sh

[root@localhost home]# ./hello.sh  ./代表當前目錄下

hello,linux!!!

[root@localhost home]# /home/hello.sh

hello,linux!!!

[root@localhost home]# 


[root@localhost home]# mount -o remount,noexec /home/

[root@localhost home]# ./hello.sh

-bash: ./hello.sh: 權限不夠

[root@localhost home]# ll

-rwxr-xr-x. 1 root  root  36  10月  9 22:31  hello.sh

具有執行權限,而且我還是系統管理員,但是仍無法執行文件,原因是因爲remount重新掛載後特殊選項選了noexec,不允許執行

[root@localhost home]# whoami

root

[root@localhost home]# mount -o remount,exec /home/

[root@localhost home]# ./hello.sh

hello,linux!!!

[root@localhost home]# 

上面所掛載的home分區並沒有按照這個格式:

[root@localhost ~]# mount [-t 文件系統][-o 特殊選項] 設備 文件名 掛載點

進行掛載,是不是應該加上去呢,其實nome分區默認是掛載好了的,本系統默認掛載在sda2

/dev/sda1 on /boot type ext4 (rw)

/dev/sda2 on /home type ext4 (rw)

可以省略,但是掛載光盤之類的都一致要加上去


3、掛載光盤

[root@localhost ~]# mkdir /mnt/cdrom/

#建立掛載點,掛載點只要是空目錄就可以


[root@localhost ~]# mount -t iso9660 /dev/cdrom/mnt/cdrom/

#掛載光盤


[root@localhost ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom/

#執行掛載命令


[root@localhost ~]#  cd /home

[root@localhost home]# ls /

bin  cgroup  etc  lib  media  mnt  opt  root  selinux  sys  usr

boot  dev  home  lost+found  misc  net  proc  sbin  srv  tmp  var

[root@localhost home]# mkdir /mnt/cdrom

[root@localhost home]# ll /dev/cdrom

lrwxrwxrwx. 1 root root 3 10月  9  18:43 /dev/cdrom -> sr0

#發現其實/dev/cdrom和sr0是軟鏈接,軟鏈接有的需要完全啓動後纔有效

[root@localhost home]# mount -t(可省略-t) iso9660 /dev/sr0 /mnt/cdrom/

mount:block device /dev/sr0 is write-protected,mounting read-only

[root@localhost home]# cd /mnt/cdrom/

[root@localhost cdrom]# ls


windows可以直接彈出光盤,但是Linux不行,如果要彈出光盤,需要卸載

4、卸載命令


[root@localhost cdrom]# umount /mnt/cdrom/

umount: /mnt/cdrom: device is busy

[root@localhost cdrom]# ls

[root@localhost cdrom]#  pwd

/mnt/cdrom

#因爲你在光盤當前目錄下,所以你正在使用到cdrom,is busy

[root@localhost cdrom]#  cd

[root@localhost ~]# umount /mnt/cdrom/

[root@localhost ~]# cd /mnt/cdrom/

[root@localhost ~]# ls

[root@localhost ~]# 

#裏面的數據就空了

[root@localhost ~]# umount 設備文件名或掛載點

[root@localhost ~]# umount /mnt/cdrom

必須卸載後才能拿出


5、掛載U盤

[root@localhost ~]# cd cdrom

[root@localhost cdrom]# fdisk -l

Device Boot   Start  

...

[root@localhost ~]# fdisk -l

#查看U盤設備文件名

[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/

注意:Linux默認是不支持NTFS文件系統的,需要把NTFS驅動重新加載

我們可以安裝NTFS-3g,但是都是隻讀的

vfat:fat32,只能不支持4個G的存儲


八、用戶登錄查看命令

1、查看登錄用戶信息

 (1).w 用戶名

命令輸出:

 USER:登陸的用戶名;

 TTY:登陸終端;

 FROM:從哪個IP地址登錄;

 LOGIN@:登陸時間;

 IDLE:用戶閒置時間

 JCPU:指的是和該終端連接的所有進程佔用的時間。這個時間裏並不包括過去的後臺作業時間,但卻包括當前正在運行的後臺作業所佔用的時間

 PCPU:是指當前進程所佔用的時間

 WHAT:當前正在運行的命令

[root@localhost ~]# w

23:57:52 up 4:22, 2users, load average: 0.00, 0.00, 0.00

USER  TTY  FROM           LOGIN@  IDLE  JCPU  PCPU  WHAT

root  tty1 -              18:47   58:15 0.17s 0.17s -bash

root  pts/0 192.168.0.155 22:10   0,00s 0.13s 0.04s w

2users:兩個用戶

三個0.00:系統在1分鐘,5分鐘,15分鐘下系統平均負載,值越高,系統負載越大

tty1:本機終端

pts/0:第一個遠程終端

192.168.0.155:遠程終端的IP

IDLE,JCPU,PCPU越大說明耗費資源越多

[root@localhost ~]# 


(2).who 用戶名

 命令輸出:

  - 用戶名

  - 登陸終端

  - 登陸時間(登陸來源IP地址)

[root@localhost ~]# who

root pts/0  2015-07-27  22:10 (192.168.0.155)


(3).last

  last命令默認是讀取/var/log/wtmp文件數據

  命令輸出:

    - 用戶名

    - 登陸終端

    - 登錄IP

    - 登陸時間

    - 退出時間(在線時間)

可以看到用戶所有的登錄信息和重啓信息,判斷所有用戶的登錄信息,如果是使用vi命令打開/var/log/wtmp,只能看到亂碼,是爲了防止被修改。


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