1. 程式人生 > >環境變量PATH cp命令 mv命令 文檔查看cat/more/less/head/tail

環境變量PATH cp命令 mv命令 文檔查看cat/more/less/head/tail

PATH cp mv

一、環境變量PATH
echo $PATH
例如:把ls2命令加入到PATH環境變量中(ls2命令拷貝ls命令)
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which ls
alias ls=‘ls --color=auto‘
/usr/bin/ls
[root@localhost ~]# cp /usr/bin/ls /tmp/ls2
[root@localhost ~]# /tmp/ls2
anaconda-ks.cfg
[root@localhost ~]# PATH=$PATH:/tmp
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@localhost ~]# ls2
anaconda-ks.cfg
[root@localhost ~]# which ls2
/tmp/ls2

讓ls2命令永久生效:
[root@localhost ~]# vi /etc/profile
在文件最後一行添加:PATH=$PATH:/tmp/
再打開一個終端可以看到/tmp/已經加入環境變量,ls2命令也生效
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/root/bin

[root@localhost ~]# ls2
anaconda-ks.cfg

刪除PATH中剛剛加入的/tmp/
[root@localhost ~]# vi /etc/profile
刪除最後一行PATH=$PATH:/tmp/ 保存退出。
再新打開一個終端,可以看到/tmp/已經不在PATH中
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# ls2
-bash: ls2: command not found

二、cp命令
cp(copy):拷貝命令
cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。

例1:拷貝/etc/passwd 文件到/tmp/1.txt
[root@localhost ~]# cp /etc/passwd /tmp/1.txt
例2:拷貝/tmp/hll/ 目錄到/tmp/111(拷貝目錄,目錄後面需要帶/)
[root@localhost ~]# cp -r /tmp/hll/ /tmp/111
例3:拷貝/tmp/hll/目錄到 /tmp/222/
[root@localhost ~]# cp -r /tmp/hll/ /tmp/222/
[root@localhost ~]# tree !$ (!$表示上一條命令的最後一個參數)
tree /tmp/222/
/tmp/222/
├── 1
│ └── 2
└── 2
└── 2.txt

3 directories, 1 file
查看cp命令的位置,cp命令其實是一個別名,真實命令為:cp -i(-i選項其實是一個安全選項,如果拷貝目標文件是已存在的文件,則會提示是否覆蓋)
[root@localhost ~]# which cp
alias cp=‘cp -i‘
/usr/bin/cp
[root@localhost ~]# cp /etc/passwd /tmp/1.txt
cp: overwrite ‘/tmp/1.txt’? ^C
如果拷貝過程不需要提示,直接寫cp命令的絕對路徑
[root@localhost ~]# /usr/bin/cp /etc/passwd /tmp/1.txt
當目標目錄已經存在的時候,會把源目錄直接放到目標目錄下;當目標目錄不存在的時候,會把源目錄拷貝到目標目錄並重命名
[root@localhost ~]# tree /tmp/hll1/
/tmp/hll1/
├── 1
│ └── 2
├── 2
│ └── 2.txt
└── hll
├── 1
│ └── 2
└── 2
└── 2.txt

7 directories, 2 files
[root@localhost ~]# cp -r /tmp/hll/ /tmp/hll1/
cp: overwrite ‘/tmp/hll1/hll/2/2.txt’? n

選項:
-a:此參數的效果和同時指定"-dpR"參數相同;
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一並處理;
-s:對源文件建立符號連接,而非復制文件;
-u:使用這項參數後只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件並不存在時,才復制文件;
-S:在備份文件時,用指定的後綴“SUFFIX”代替文件的默認後綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。
參數:
● 源文件:制定源文件列表。默認情況下,cp命令不能復制目錄,如果要復制目錄,則必須使用-R選項;
● 目標文件:指定目標文件。當“源文件”為多個文件時,要求“目標文件”為指定的目錄。

三、mv命令
mv命令用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。source表示源文件或目錄,target表示目標文件或目錄。如果將一個文件移到一個已經存在的目標文件中,則目標文件的內容將被覆蓋。
mv命令可以用來將源文件移至一個目標文件中,或將一組文件移至一個目標目錄中。源文件被移至目標文件有兩種不同的結果:
1、如果目標文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變。
2、如果目標文件不是目錄文件,則源文件名(只能有一個)會變為此目標文件名,並覆蓋己存在的同名文件。如果源文件和目標文件在同一個目錄下,mv的作用就是改文件名。當目標文件是目錄文件時,源文件或目錄參數可以有多個,則所有的源文件都會被移至目標文件中。所有移到該目錄下的文件都將保留以前的文件名。
註意事項:mv與cp的結果不同,mv好像文件“搬家”,文件個數並未增加。而cp對文件進行復制,文件個數增加了。
mv 源目錄 目標目錄
如果目標目錄不存在,則將源目錄改名;如果目標目錄存在,則將源目錄移動到目標目錄
選項:
--backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
--strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<後綴>:為備份文件指定後綴,而不使用默認的後綴;
--target-directory=<目錄>:指定源文件要移動到目標目錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。
參數:
● 源文件:源文件列表。
● 目標文件:如果“目標文件”是文件名則在移動文件的同時,將其改名為“目標文件”;如果“目標文件”是目錄名則將源文件移動到“目標文件”下。
例1:
將anaconda-ks.cfg 改名為anaconda-ks.cfg.1
[root@localhost ~]# mv anaconda-ks.cfg anaconda-ks.cfg.1
[root@localhost ~]# ls
anaconda-ks.cfg.1
例2 :
將/hll/目錄下的1.txt移動到/root/下並改名為2.txt
[root@localhost hll]# mv 1.txt /root/2.txt
[root@localhost hll]# ls /root/
2.txt anaconda-ks.cfg.1
mv命令同樣有-i選項,有提示,若不需要提示,直接使用mv命令的絕對路徑/usr/bin/mv
[root@localhost hll]# which mv
alias mv=‘mv -i‘
/usr/bin/mv
四、文檔查看cat_more_less_head_tail
cat命令:
cat命令是linux下的一個文本輸出命令
tac命令:可以倒序查看cat出來的內容
參數:
-A:顯示所有字符
-n :由 1 開始對所有輸出的行數編號
[root@localhost /]# cat -n /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15 dbus:x:81:81:System message bus:/:/sbin/nologin
16 polkitd:x:999:997:User for polkitd:/:/sbin/nologin
17 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
18 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
-b : 和 -n 相似,只不過對於空白行不編號
-s : 當遇到有連續兩行以上的空白行,就代換為一行的空白行
-v 或 –show-nonprinting
cat aa >> bb 將aa文件追加到bb文件
[root@localhost ~]# cat /etc/passwd >> anaconda-ks.cfg.1

more命令:
more命令是一個基於vi編輯器文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容,支持vi中的關鍵字定位操作。more名單中內置了若幹快捷鍵,常用的有H(獲得幫助信息),Enter(向下翻滾一行),空格(向下滾動一屏),Q(退出命令)。
該命令一次顯示一屏文本,滿屏後停下來,並且在屏幕的底部出現一個提示信息,給出至今己顯示的該文件的百分比:--More--(XX%)可以用下列不同的方法對提示做出回答:
● 按Space鍵:顯示文本的下一屏內容。
● 按Enier鍵:只顯示文本的下一行內容。
● 按斜線符|:接著輸入一個模式,可以在文本中尋找下一個相匹配的模式。
● 按H鍵:顯示幫助屏,該屏上有相關的幫助信息。
● 按B鍵:顯示上一屏內容。
● 按Q鍵:退出rnore命令。
選項:
-<數字>:指定每屏顯示的行數;
-d:顯示“[press space to continue,‘q‘ to quit.]”和“[Press ‘h‘ for instructions]”;
-c:不進行滾屏操作。每次刷新這個屏幕;
-s:將多個空行壓縮成一行顯示;
-u:禁止下劃線;
+<數字>:從指定數字的行開始顯示。
擴展:wc命令----可以查看一個文件的行數
[root@localhost ~]# wc -l anaconda-ks.cfg.1
51 anaconda-ks.cfg.1

less命令:和more命令相似,但它支持方向鍵往上、往下看,Ctrl+B往上看,Ctrl+F往下看,空格往下看,需要按q鍵退出
如果需要看cdrom,敲/root,root則會高亮顯示,如需看下一個root,按n鍵;如需看前一個root,按shift+n; 如果需要從後往前看,敲?root,則會從後往前顯示; 顯示到最後一行快捷鍵:shift+g,顯示到第一行快捷鍵:g

head命令:查看一個文件的頭10行
tail命令:查看一個文件的最後10行
-n 數字 :查看幾行
tail -f :動態顯示一個文件的最後10行(適用於查看日誌)

環境變量PATH cp命令 mv命令 文檔查看cat/more/less/head/tail