環境變量PATH、cp命令、mv命令、cat命令、tac命令、more、less、head、tail

第二章 文件、目錄管理

2.10 環境變量PATH

>PATH說簡單點就是一個字符串變量(該字符串內容是一個命令的絕對路徑),當輸入命令的時候LINUX會去查找PATH裏面記錄的路徑。centos

PATH這個變量包含了一系列由冒號分隔開的目錄,系統就從這些目錄裏尋找可執行文件。若是你輸入的可執行文件(例如ls、rm)不在這些目錄中,系統就沒法執行它(除非你輸入這個命令的完整路徑,如/bin/ls)。安全

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin    默認

當一個命令在PATH中存在的時候,無需使用其絕對路徑,eg:rm、ls、cd等等。bash

  • 更改環境變量
    eg1: 添加一個環境變量tmp
# PATH=$PATH:/tmp/
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/

注: 以上只是臨時增長一個變量。若是想要永久添加變量還須要執行如下命令:less

# vi /etc/profile  編輯配置文件,在該文件內容最後一行添加PATH=$PATH:/tmp/

eg2: 刪除環境變量
方法1:ssh

# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin   讓PATH等於其默認值便可!
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin    默認

方法2:post

# vi /etc/profile 編輯該配置文件,在內容中刪除「PATH=$PATH:/tmp/」便可!

2.11 cp命令

cp=copy
語法: cp [選項] [源文件] [目標文件]
選項:
-r 拷貝目錄
-i 安全選項,相似於rm命令,若是遇到一個存在的文件,會詢問是否覆蓋。centos系統默認cp=cp -i。
注: 當目標目錄已存在的時候,cp命令會把源目錄放到目標目錄下面;當目標目錄不存在的時候,cp命令會把源目錄重命名後放到目標目錄的位置!spa

例如我想把 test1 拷貝成 test2,這樣便可cp test1 test2;code

例如我想把 test1 拷到 test2,但test2存在,這樣test22會被放到test21下面;文檔

!$ 表示上一個命令的最後一個參數;字符串

在對目錄文件進行編輯的時候,命令末尾加"/";對非目錄文件進行編輯的時候沒必要加!

2.12 mv命令

  • mv=move
  • 語法: mv [選項] [源文件] [目標文件]
  • 選項: -i 和cp的-i同樣,當目標文件存在是會問用戶是否要覆蓋(在Redhat/centos系統中,咱們用的mv就是mv -i的別名),使用絕對路徑/usr/bin/mv時再也不出現此詢問。
  • 該命令有幾種狀況:
    1)目標文件是目錄,並且目標文件不存在(=重命名--把源文件命名爲目標文件的名字)
# mkdir dira dirb  建立目錄dira和dirb
# ls 
anaconda-ks.cfg dira dirb install.log install.log.syslog
# mv dira dirc 移動目錄dira到dirc目錄(該目錄不存在)下
# ls anaconda-ks.cfg dirb dirc install.log install.log.syslog  目標文件dirc爲目錄,而且目標目錄不存在,至關於把dira重命名爲dirc

2)目標文件是目錄,並且目標文件存在(=移動)

# mv dirc dirb  移動目錄dirc到目錄dirb(兩個目錄均存在)
# ls
anaconda-ks.cfg dirb install.log install.log.syslog
# ls dirb
dirc    目標文件dirc爲目錄,且目標目錄存在,則會把dirc移動到dira目錄裏

3)目標文件不是目錄不存在 (=重命名--把源文件命名爲目標文件的名字)

# touch filed  建立文件filed
# ls
anaconda-ks.cfg dirb filed install.log install.log.syslog
# mv filed filee 把源文件filed移動到filee
# ls
anaconda-ks.cfg dirb filee install.log install.log.syslog  目標文件filee不是目錄且不存在,至關於把filed文件重命名爲filee

4)目標文件不是目錄存在
①移動至某目錄下(=移動)

# mv filee dirb  移動文件filee到dirb下
# ls
anaconda-ks.cfg dirb install.log install.log.syslog
# ls dirb
dirc filee   目標文件不是目錄,且存在則會把源文件移動

②移動至另外一個非目錄目標文件 (=刪除源文件)

[root@3 dir1]# ls
dir2  file1  file2
[root@3 dir1]# mv file2 file1  移動非目錄文件file2到非目錄文件file2
mv:是否覆蓋"file1"? y
[root@3 dir1]# ls
dir2  file1    移動非目錄文件file2到非目錄文件file1,至關於刪除文件file2(源文件)

簡略:

mv bash mvtest/1 將文件bash移動到目錄mvtest下並改名爲1

mv test/   test1/ 將目錄test改名爲test1

PS :(與cp命令相同,若是目標目錄存在,則會把原目錄放到目標目錄下,若是目標目錄不存在,則把原目錄改名爲目標目錄名字)

mv mvtest.txt mvtest2.txt 將文件mvtest改名爲mvtest2

2.13 文檔查看

  • cat命令
    查看一個文件的內容並顯示在屏幕上,後面能夠不加任何選項,直接加文件名。
    兩個經常使用選項:
    1)-n 查看文件時顯示行號
    eg:
# echo 'aaaaa'>dirb/filee  將「aaaaa」寫入filee文件
# echo 'ccccc'>>dirb/filee 將「ccccc」寫入filee文件
# cat dirb/dilee
aaaaa
ccccc
# cat -n dirb/dilee
1 aaaaa
2 ccccc

注: 「>>」和「>」都是從新定向的做用,即把前面輸出的東西輸入到後面的文件中,只不過「>>」是追加的意思,而使用「>」時,若是文件中有內容會把內容刪除,「>>」則不會。
2)-A 顯示全部東西出來,包括特殊字符
eg:

# cat -A dirb/filee
aaaaa$
ccccc$    在此"$"是結束符號
  • tac命令
    同cat命令,用來顯示文件內容,相對cat,該命令是倒序顯示文件裏的內容。
    eg:
# tac dirb/filee
ccccc
aaaaa
  • more命令
    也是用來查看文件內容的命令,格式是‘cat filename’,當文件內容太多,一屏幕放不下,而使用‘cat’是看不到前面的內容的,使用‘more’能夠解決此問題。當看完一屏後按space鍵繼續查看下一屏。當看完全部內容後就會退出,若是想提早退出,按q鍵。
  • less命令
    做用和more同樣,格式‘less filename’,但比more好在能夠上翻、下翻。space鍵一樣能夠翻頁,j鍵能夠逐行向下移動,k鍵能夠逐行向上移動,Ctrl+b和Ctrl+f可分別實現上翻頁和下翻頁。在使用more和less命令查看文件時,能夠鍵入‘/’,而後輸入字符串,Enter,查找該字符串,若是存在多個該字符串,按n(next)可顯示下一個,一樣可使用‘?’實現一樣的功能,區別是:‘/’是在當前行向下查找,‘?’是從當前行向上查找。
    按G鍵能夠快速到文本最末端,按g能夠快速回到文件首部。q鍵可中途退出。
  • head命令
    查看文件前n行內容。
    語法: head [選項] [filename]
    選項:
    -n n後面跟數字,表示顯示n行(不加參數時默認顯示前十行)
    eg:
# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
# head -n3 !$
head -n3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
  • tail命令
    同head命令,倒序顯示文件後n行內容。
    eg:
# tail /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
# tail -n3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
相關文章
相關標籤/搜索