Linux學習(一):高頻使用的命令

版權聲明:本文爲CSDN博主「freesOcean」的原創文章。
原文鏈接:https://blog.csdn.net/gexiaoyizhimei/article/details/100122368

1. 新建操作

mkdir abc 		#新建一個文件夾
touch abc.sh 	#新建一個文件
echo "abc" > test.txt #新建一個文件,並將abc寫入。這裏用到了重定向符

2. 查看操作

2.1 查看目錄

ll 				#顯示目錄文件詳細信息
du -h 文件/目錄  #查看大小
pwd 			#顯示路徑

2.2 查看文件內容

2.2.1 cat | head | tail 命令

cat abc.txt 		#查看abc的內容
head -5 abc.txt 	#查看abc前5行內容。默認是10行

tail [選項] 文件名
各選項的含義如下:
+num:從第num行以後開始顯示
-num:從距文件尾num行處開始顯示。如果省略num參數,系統默認值爲10.
-f: 循環讀取,例如查看服務器日誌時,可以實時觀察
#filename 文件裏的最尾部的內容顯示在屏幕上,並且不斷刷新。
tail -f filename 

2.2.2 more 命令

more命令一次顯示一屏信息,若信息未顯示完屏幕底部將出現“-More-(xx%)”。
此時按Space鍵,可顯示下一屏內容;
按“回車”鍵,顯示下一行內容;
按B鍵,顯示上一屏;
按Q鍵,可退出more命令。

2.2.3 less 命令

more命令類似,但是比more命令更強大。在很多時候,必須使用less命令,比如管道。例如:

ll /etc | less

2.3 查看狀態或文件類型

2.3.1 stat 命令

查看文件的詳細信息,比如創建修改時間,大小等

[root@localhost zx]		# stat index.html 
  文件:"index.html"
  大小:29006     	塊:64         IO 塊:4096   普通文件
設備:fd00h/64768d	Inode:17589607    硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:home_root_t:s0
最近訪問:2019-09-02 21:47:41.824053666 +0800
最近更改:2019-09-02 21:44:33.588587500 +0800
最近改動:2019-09-02 21:44:33.588587500 +0800
創建時間:-

2.3.2 file 命令

Linux中後綴並沒有實際約束意義。

file test.txt #查看test.txt的文件類型

2.3.3 du 命令

選項:

 -h 以合適的單位顯示(會根據文件的大小自動選擇kb或M等單位)

舉例:

[root@localhost zx]# du -h index.html 
32K	index.html

3. 刪除操作

rm -f  aa.txt 	#強制刪除aa.txt
rm -rf fileDir 	#強制刪除fileDir文件夾和裏邊的所有文件

4. 複製操作

4.1 同一機器的複製(cp 命令)

cp命令:複製文件或目錄。

語法:
cp [options] source dest

選項:
-a:此選項通常在複製目錄時使用,它保留鏈接、文件屬性,並複製目錄下的所有內容。其作用等於dpR參數組合。
-d:複製時保留鏈接。這裏所說的鏈接相當於Windows系統中的快捷方式。
-f:覆蓋已經存在的目標文件而不給出提示。
-i:與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。
-p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。
-r:若給出的源文件是一個目錄文件,此時將複製該目錄下所有的子目錄和文件。
-l:不復制文件,只是生成鏈接文件。

舉例:
#將../html/index.html 複製到當前目錄
cp ../html/index.html .    
#將../html/ 目錄下的文件及子目錄複製到當前的tt目錄下,如果tt不存在,會自動創建
cp -r ../html/  tt/       
#將文件file複製到目錄/usr/men/tmp下,並改名爲file1
cp file /usr/men/tmp/file1  
    
#如果dir2目錄已存在,則需要使用
cp -r dir1/. dir2
#如果這時使用cp -r dir1 dir2,則也會將dir1目錄複製到dir2中,明顯不符合要求。
ps:dir1、dir2改成對應的目錄路徑即可。

4.2 遠程複製

#將當前目錄下的test.txt複製到遠程111.12機器的/zx目錄下
scp test.txt root@192.168.111.12:/zx

#將test.txt複製到遠程用戶的根目錄,並命名爲textA.txt
scp test.txt root@192.168.111.12:testA.txt

#也可以不指定用戶,在後續提示中再輸入,如下:
scp test.txt 192.168.111.12:/zx

#從遠程複製到本地: -r用於遞歸整個目錄
scp -r remote_user@remote_ip:remote_folder local_path

5. 移動操作

移動操作可以理解成複製文件後,刪除原文件。

eg1:

mv /zx/soft/* . #複製/zx/soft目錄中的所有文件到當前目錄
mv a.txt ./test/a.txt  #複製當前目錄a.txt到當前的test目錄下。
mv /zx/soft/  /tmp/soft  #複製文件夾到/tmp/下,必須保證tmp是存在的文件夾

6. 重命名操作

重命名還是用的移動操作命令,比如:

#將目錄(文件)A重命名爲B
mv A B
#將/a目錄(文件)移動到/b下,並重命名爲c。要保證b目錄存在。
mv /a /b/c
#將當前test1目錄移動到當前的test目錄並命名爲b
mv ./test1 ./test/b 

7. 解壓壓縮操作

tar
-c: 建立壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。

-z:有gzip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標準輸出

下面的參數-f是必須的
-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。

舉例說明:
tar -cf all.tar *.jpg
這條命令是將所有.jpg的文件打成一個名爲all.tar的包。-c是表示產生新的包,-f指定包的文件名。
tar -tf all.tar
這條命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -xf all.tar
這條命令是解出all.tar包中所有文件,-x是解開的意思
壓縮
tar –cvf jpg.tar *.jpg //將目錄裏所有jpg文件打包成jpg.tar
eg2:
    tar -xzf nginx-1.14.0.tar.gz //解壓到當前目錄
    tar -zxf nginx-1.14.0.tar.gz -C /usr/local/nginx  #解壓到對應目錄
 eg3:
 	tar -zxvf nginx...tar.gz #解壓並顯示過程
 	
注意:有些壓縮程序提示命令找不到,需要進行安裝,例如:
yum install unzip
或在ubuntu上:
apt-get install unzip

總結
1*.tar 用 tar –xvf 解壓
2*.gz 用 gzip -d或者gunzip 解壓
3*.tar.gz和*.tgz 用 tar –xzf 解壓
4*.bz2 用 bzip2 -d或者用bunzip2 解壓
5*.tar.bz2用tar –xjf 解壓
6*.Z 用 uncompress 解壓
7*.tar.Z 用tar –xZf 解壓
8*.rar 用 unrar e解壓
9*.zip 用 unzip 解壓  

解壓的時候,有時候不想覆蓋已經存在的文件,那麼可以加上-n參數
unzip -n test.zip
unzip -n -d /temp test.zip
只看一下zip壓縮包中包含哪些文件,不進行解壓縮
unzip -l test.zip
查看顯示的文件列表還包含壓縮比率
unzip -v test.zip
檢查zip文件是否損壞
unzip -t test.zip
如果已有相同的文件存在,要求unzip命令覆蓋原先的文件
unzip -o test.zip -d /tmp/
示例:
 eg1:  unzip mydata.zip -d mydatabak #解壓到mydatabak目錄
 
10. xz
	這是兩層壓縮,外面是xz壓縮方式,裏層是tar壓縮,所以可以分兩步實現解壓
	$ xz -d node-v6.10.1-linux-x64.tar.xz
    $ tar -xvf node-v6.10.1-linux-x64.tar

8. 上傳文件工具

從本地windows上傳一些文件到遠程Linux服務器可以通過xshell的xftp也可以通過下面這個小工具lrzsz,使用更加方便。

yum install lrzsz #安裝工具

常用命令:
sz dist.zip #下載文件dist.zip到本地
rz #會打開窗口,上傳文件到遠程服務器

9. ln,file和touch 命令

9.1 ln 命令

用於創建鏈接文件,包括硬鏈接(Hard Link)和符號鏈接(Symbolic Link) 。我們常用的是符號鏈接,也稱軟連接。軟連接就類似windows裏的快捷方式。
示例:

#在當前目錄創建一個軟連接,指向/etc/fastab,名稱也是fastab
ln -s /etc/fastab

#在當前目錄創建一個指向/boot/grub的軟連接,命名爲gb
ln -s /boot/grub gb

注意:刪除軟連接 正確方式是:

rm -rf ./gb

錯誤方式:

rm -rf ./gb/

這樣會刪除了原有grub下的內容。特別是針對系統文件的軟連接,刪除一定要慎重。

9.2 file 命令

用於識別文件的類型。

Linux中文件後綴只是方便使用者識別,沒有實質的約束作用。file命令可以查看文件的實質類型:

語法:
file [-bcLz] 文件|目錄

選項:
文件|目錄:需要識別的文件或目錄
-b: 顯示識別結果時,不顯示文件名
-c: 顯示執行過程
-L: 直接顯示符號鏈接文件指向的文件類型
-z: 嘗試去解讀壓縮文件的內容

示例: 可以看出,index.mp4本質是一個HTML而非一個mp4文件
[root@VM_0_13_centos soft]# file index.mp4 
index.mp4: HTML document, UTF-8 Unicode text, with very long lines

9.3 touch 命令

用於改變文件或目錄的訪問時間和修改時間。

語法:
touch [-am] [-t<日期時間>] [目錄|文件]

如果指定目錄文件不存在,則會直接創建一個空文件,所以touch也常用來創建一個空白文件。

語法:
#創建一個新文件aa.txt
touch aa.txt
選項:
-a: 只修改訪問時間
-m : 只修改 修改時間
-t : 使用指定日期時間,而非系統時間 。例如要修改爲20191020163813秒。參數就是:‘20191020163813’

示例:
修改之前可以先查看文件的時間戳: 用stat 命令查看
[root@VM_0_13_centos soft]# stat index.html 
  File: ‘index.html’
  Size: 17215     	Blocks: 40         IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 529352      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-10-23 15:15:37.280616254 +0800
Modify: 2019-10-23 15:15:37.280616254 +0800
Change: 2019-10-23 15:15:37.290616257 +0800
 Birth: -

開始修改:將index.html文件的訪問和修改時間修改成當前系統的時間。
touch index.html

10. 查找操作

對於要用到的文件,目錄等,經常有忘記的時候,所以查找命令就顯得極爲必要。

10.1 find 命令(常用)

查找文件或目錄。

語法:
find [目錄…]	
[-amin <分鐘>][-atime <24小時數>][-cmin <分鐘>][-ctime<24小時數>]
[-empty][-exec<執行命令>][-fls<列表文件>][-follow][-fstype <系統文件類型>] 
[-gid <組編號>][-group <組名稱>][-nogroup][-mmin <分鐘>][-mtime<24小時數>]
[-name <查找內容>][-nogroup][-nouser][-perm <權限數值>] [-size <文件大小>]
[-uid<用戶編號>][-user <用戶名稱>][-nouser]

幾個常用選項說明:
-size <文件大小>:查找符合指定大小的文件。文件大小單位可以是“c”表示Byte;“k”表示KB。
				如配置爲“100k”,find命令會查找文件大小正好100KB的文件;
				配置爲“+100k”,find命令會查找文件大小大於100KB的文件;
				配置爲“-100k”,find命令會查找文件大小小於100KB的文件。
-user <用戶名稱>:查找所有者是指定用戶的文件或目錄,也能以用戶編號指定
-name <查找內容>:查找指定的內容,在查找內容中使用“*”  表示任意個字符;使用“?”表示任何一個字符
-mtime <24小時數>:查找在指定時間曾更改過內容的文件或目錄,單位以24小時計算。
				如配置爲2,find命令會查找剛好在48小時之前更改過內容的文件;
				配置爲+2,find命令會查找超過在48小時之前更改過內容的文件;
				配置爲-2,find命令會查找在48小時之內更改過內容的文件。
-mmin <分鐘>:查找在指定時間曾被更改過內容的文件或目錄,單位以分鐘計算。
-cmin <分鐘>:查找在指定時間曾被更改過權限屬性的文件或目錄,單位以分鐘計算。-ctime對應小時。
-amin <分鐘>:查找的是指定時間訪問過的文件或目錄。-atim對應小時。
-perm <權限數值>:查找符合指定權限數值(有關權限數值見第6章)的文件或目錄。
				如配置爲“0700”,find命令會查找權限數值正好是“0700”的文件或目錄;
				配置爲“+0700”,find命令會查找權限數值大於 “0700”的文件或目錄;
				配置爲“-0700”,find命令會查找權限數值小於 “0700”的文件或目錄;

選項大概有以下幾類:
1.按時間範圍查找
2.按文件大小查找
3.按文件名稱查找
4.按其他:比如權限、用戶組、類型等

示例:
#從根目開始,查找名稱以nginx開頭的目錄和文件
find / -name nginx*  
#查找文件大小超過100M的文件
find / -size +100M
#查找/home/zx目錄下,10分鐘內被修改過的文件和目錄
find /home/zx/  -mmin -10

10.2 locate 命令(不常用)

查找文件或目錄。

語法:
locate 查找內容

例如:locate nginx 會將所有包含nginx的目錄和文件都列出來。可以用* 或?等匹配符。
locate的查找速度非常快,因爲該命令查找的是數據庫,所以有些剛修改的文件和目錄,可能無法找到。可以採用:updatedb 命令更新數據庫。

10.3 which 命令(不常用)

查找文件。

語法:
which [文件]

which命令只會在PATH環境變量定義的路徑及命令別名中查找,所以範圍有限。

10.4 whereis 命令(不常用)

語法:
whichis [-bu] [-B<目錄>] [-M<目錄>] [-S<目錄>] [文件]

常用選項:
文件:要查找的命令
-b: 只查找二進制文件
-u: 查找不包含指定類型的文件
-B<目錄>: 只在指定目錄下查找二進制文件
-M<目錄>:只在指定目錄查找幫助文件
-S<目錄>:只在指定目錄查找源碼目錄

例如: 默認只會在指定目錄查找(/bin ,/etc  ,/usr)
[root@VM_0_13_centos soft]# whereis nginx
nginx: /usr/local/nginx /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章