可能剛接觸的時候看到命令並不理解它的含義,但當我知道英文全稱時就明白了。php
(1)cd ~ 和 cd:返回用戶目錄css
[root@izwz94jtz9hbdq165vpxpxz app1]# cd ~
[root@izwz94jtz9hbdq165vpxpxz ~]#
[root@izwz94jtz9hbdq165vpxpxz app1]# cd
[root@izwz94jtz9hbdq165vpxpxz ~]#
(2)cd .:停留在當前目錄redis
[root@izwz94jtz9hbdq165vpxpxz app1]# cd .
[root@izwz94jtz9hbdq165vpxpxz app1]#
(3)cd ..:返回上一級目錄ruby
[root@izwz94jtz9hbdq165vpxpxz app1]# cd a
[root@izwz94jtz9hbdq165vpxpxz a]# cd ..
[root@izwz94jtz9hbdq165vpxpxz app1]#
(4)cd ../..:返回上兩級目錄bash
[root@izwz94jtz9hbdq165vpxpxz app1]# cd www
[root@izwz94jtz9hbdq165vpxpxz www]# cd carina
[root@izwz94jtz9hbdq165vpxpxz carina]# cd ../..
[root@izwz94jtz9hbdq165vpxpxz app1]#
(5)cd ../目錄A:先返回進入此目錄以前所在的目錄,而後再進入指定的目錄A服務器
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app1/www
[root@izwz94jtz9hbdq165vpxpxz www]# ls
123.jgp 123.txt a2 carina requests-2.18.1.tar.gz root
[root@izwz94jtz9hbdq165vpxpxz www]# cd carina
[root@izwz94jtz9hbdq165vpxpxz carina]#cd ../a2
[root@izwz94jtz9hbdq165vpxpxz a2]#
(6)cd -:返回進入此目錄以前所在的目錄app
[root@izwz94jtz9hbdq165vpxpxz app1]# cd www
[root@izwz94jtz9hbdq165vpxpxz www]# cd -
/app1
(7)cd 路徑:進入指定目錄學習
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app1/www
[root@izwz94jtz9hbdq165vpxpxz www]#
(8)cd /:返回到根目錄ui
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /
[root@izwz94jtz9hbdq165vpxpxz /]#
[root@izwz94jtz9hbdq165vpxpxz carina]# cd /
[root@izwz94jtz9hbdq165vpxpxz /]
ls:列出指定路徑下的全部文件名、時間及讀寫權限(文件詳細信息)spa
(1)ls -a:顯示全部文件列表(含隱藏文件「.」和「..」)
[root@izwz94jtz9hbdq165vpxpxz www]# ls -a
. .. carina carina.tar.gz redis-3.0.7.tar.gz root text1.txt text.tx
(2)ls -A:顯示除隱藏文件「.」和「..」之外的全部文件列表
[root@izwz94jtz9hbdq165vpxpxz www]# ls -A
carina carina.tar.gz redis-3.0.7.tar.gz root text1.txt text.txt
(3)ls -l:以列表形式顯示文件及文件夾的詳細信息
(從左至右:文件類型、權限、數量、屬主、屬組、大小、修改/訪問時間、文件名)
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l
total 1368
drwxr-xr-x 5 root root 4096 Jun 22 13:23 carina
-rw-r--r-- 1 root root 256 Jun 19 00:27 carina.tar.gz
-rw-r--r-- 1 root root 1375200 Jul 10 09:35 redis-3.0.7.tar.gz
drwxr-xr-x 3 root root 4096 Jun 19 00:40 root
-rw-r--r-- 1 root root 6 Jul 6 18:14 text1.txt
-rw-r--r-- 1 root root 6 Jul 6 18:13 text.txt
ll:ls -l的簡寫
[root@izwz94jtz9hbdq165vpxpxz app1]# ll
total 36
drwxr-xr-x 2 root root 4096 Jul 14 16:55 a
drwxr-xr-x 2 root root 4096 Jul 16 13:43 aa
drwxr-xr-x 2 root root 4096 Jul 16 13:47 b
drwxrwxrwx 4 root root 4096 Jul 10 13:29 bak
drwxr-xr-x 2 root root 4096 Jul 16 13:47 c
drwxr-xr-x 2 root root 4096 Jul 16 13:47 d
drwxr-xr-x 4 root root 4096 Jul 4 22:56 test
drwxr-xr-x 4 root root 4096 Jul 10 09:35 www
drwxr-xr-x 2 root root 4096 Jul 10 13:02 zyp
(語法:mv 源文件 目標文件)
(1)目標文件不是目錄,即重命名 ,以下是將app1文件夾內的a文件夾重命名爲a1
(mv 原文件名 新文件名)
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app1
[root@izwz94jtz9hbdq165vpxpxz app1]# ls
a aa b bak c d test www zyp
[root@izwz94jtz9hbdq165vpxpxz app1]# mv a a1
[root@izwz94jtz9hbdq165vpxpxz app1]# ls
a1 aa b bak c d test www zyp
(2)目標文件是目錄
[root@izwz94jtz9hbdq165vpxpxz ~]# mv /app1/www/text1.txt /app2/app21
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app2/app21
[root@izwz94jtz9hbdq165vpxpxz app21]# ls
text1.txt
[root@izwz94jtz9hbdq165vpxpxz www]# mv carina/ carina.tar.gz text1.txt text.txt -t /app2/app21
[root@izwz94jtz9hbdq165vpxpxz www]# cd /app2/app21
[root@izwz94jtz9hbdq165vpxpxz app21]# ls
carina carina.tar.gz text1.txt text.txt
**將文件text.tx、text1.txt、redis-3.0.7.tar.gz、a3文件夾移動到app2文件夾下的app21文件夾**
(文件夾後的/省去效果同樣)
[root@izwz94jtz9hbdq165vpxpxz www]# mv -t /app2/app21 text.txt text1.txt redis-3.0.7.tar.gz a3/
(3)將上級目錄的文件 拷貝到當前目錄 (mv ../文件名 ./)
提示:./ 和../ 都是相對地址,./ 是當前目錄,../是上一級目錄
[root@izwz94jtz9hbdq165vpxpxz app1]# ls
file2.txt file3.txt file4.txt file.txt
[root@izwz94jtz9hbdq165vpxpxz app1]# cd www
[root@izwz94jtz9hbdq165vpxpxz www]# ls
test text1.txt text3.txt text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# mv ../file.txt ./
[root@izwz94jtz9hbdq165vpxpxz www]# ls
file.txt test text1.txt text3.txt text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# cd ..
[root@izwz94jtz9hbdq165vpxpxz app1]# ls
file2.txt file3.txt file4.txt
(需注意相對路徑和絕對路徑)
(1)在目錄名前沒有加任何路徑名,則在當前目錄下建立
[root@izwz94jtz9hbdq165vpxpxz ~]# mkdir a
(2)在目錄名前有一個已經存在的路徑,將會在該目錄下建立
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app1
[root@izwz94jtz9hbdq165vpxpxz app1]# mkdir aa
(3)建立多級目錄及多文件夾,使用 -p(文件夾之間用空格隔開)
(若上層目錄沒找到,則會一併建立)
絕對路徑:
[root@izwz94jtz9hbdq165vpxpxz app2]# mkdir -p /app2/a1 b1 c1 d1
[root@izwz94jtz9hbdq165vpxpxz app2]# ls
a1 b1 c1 d1
相對路徑:
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app1/www
[root@izwz94jtz9hbdq165vpxpxz www]# mkdir -p carina/a1 carina/a2 carina/a3
[root@izwz94jtz9hbdq165vpxpxz www]# cd carina
[root@izwz94jtz9hbdq165vpxpxz carina]# ls
a1 a2 a3
若不使用 -p,文件夾建立會失敗
[root@izwz94jtz9hbdq165vpxpxz ~]# mkdir test/test1 test2 test3
mkdir: cannot create directory ‘test/test1’: No such file or directory
(4)建立多目錄下的單個文件,也可使用 --parents
[root@izwz94jtz9hbdq165vpxpxz ~]# mkdir --parents /a2/a
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /a2
[root@izwz94jtz9hbdq165vpxpxz a2]# ls
a
(5)建立帶權限的文件夾,使用 -m
[root@izwz94jtz9hbdq165vpxpxz ~]# mkdir -m 700 /a2/a/aa
(文件屬主擁有讀、寫和執行權限,其餘人無權訪問)
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /a2
[root@izwz94jtz9hbdq165vpxpxz a2]# mkdir -m 700 /a3/a/aa
mkdir: cannot create directory ‘/a3/a/aa’: No such file or directory
此時須要使用 -p-m
[root@izwz94jtz9hbdq165vpxpxz ~]# mkdir -p -m 700 /a3/a/aa
注意事項:
在建立目錄時,應保證新建的目錄與它所在目錄下的文件沒有重名
[root@izwz94jtz9hbdq165vpxpxz app1]# mkdir a
mkdir: cannot create directory ‘a’: File exists (已有文件夾存在)
(1)輸出多個文件內容
[root@izwz94jtz9hbdq165vpxpxz www]# cat text1.txt text.txt
hello world /*text1.txt內容*/
dgdfgfhfdgh /*text.txt內容*/
(2)將2個文件合併新文件
[root@izwz94jtz9hbdq165vpxpxz www]# cat text1.txt text.txt > text2.txt
[root@izwz94jtz9hbdq165vpxpxz www]# ls
text1.txt text2.txt text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# cat text2.txt
hello world
dgdfgfhfdgh
注:若新文件有內容,則原數據會被清空,所以須要當心操做
[root@izwz94jtz9hbdq165vpxpxz www]# cat text2.txt
testtesttedgdkljsdhfkld
[root@izwz94jtz9hbdq165vpxpxz www]# cat text1.txt text3.txt > text2.txt
[root@izwz94jtz9hbdq165vpxpxz www]# cat text2.txt
hello world
hihihihihihi
(3)將file1.txt追加到file2.txt的末尾(>> 表示將文本流追加到另外一個文件的末位)
cat file1.txt >> file2.txt
[root@izwz94jtz9hbdq165vpxpxz www]# cat text2.txt
gdgdg
[root@izwz94jtz9hbdq165vpxpxz www]# cat text1.txt >> text2.txt
[root@izwz94jtz9hbdq165vpxpxz www]# cat text2.txt
gdgdg
hello world
(4)文件夾不能合併
[root@izwz94jtz9hbdq165vpxpxz app1]# ls
a1 a2
[root@izwz94jtz9hbdq165vpxpxz app1]# cat a1 a2 a3
cat: a1: Is a directory
cat: a2: Is a directory
cat: a3: No such file or directory
find 目錄 參數
(1)單文件匹配
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1/www -name "*.txt"
/app1/www/root/carina/a/test.txt
/app1/www/text3.txt
/app1/www/text1.txt
/app1/www/text.txt
(2)多文件匹配(目錄下以.txt結尾的文件、含字母a的文件) : 使用 -o
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1/www -name "*.txt" -o -name "*a*"
/app1/www/a2
/app1/www/root/carina
/app1/www/root/carina/a
/app1/www/root/carina/a/test.txt
/app1/www/text3.txt
/app1/www/text1.txt
/app1/www/text.txt
/app1/www/carina
/app1/www/carina/aa
/app1/www/carina/carina
/app1/www/carina/carina/a2
/app1/www/carina/carina/a1
/app1/www/carina/carina/a3
(3)查找除XX外的: **使用 "!" or "-not" **
如查找app1文件夾下www文件夾,文件名不含a
find /app1/www ! -name "*a*"
查找當前目錄下 文件不含a的信息
[root@izwz94jtz9hbdq165vpxpxz ~]#find /app1/www -maxdepth 1 -not -name "*a*"
(4)查找文件,忽略大小寫 :使用 -i
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1 -iname "*test*"
/app1/www/a2/test
/app1/www/test
/app1/TEST /*大寫文件夾*/
(5)只查找某層目錄下含XX的文件(夾):使用 mindepth 和 maxdepth
「-maxdepth 1」 :限制只查找1層目錄深度,當前目錄即爲1層
查找當前目錄下,含test的文件及文件夾
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1 -maxdepth 1 -name "*test*"
/app1/test1.txt
/app1/zyptest
/app1/test
以下 「 /app1/www/ 」 即爲1層目錄深度
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1/www -maxdepth 1 -name "*test*"
/app1/www/test
查找當前目錄 及其 1層深的子目錄中,含test的文件及文件夾,即 maxdepth 2
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1 -maxdepth 2 -name "*test*"
/app1/www/test
/app1/test1.txt
/app1/zyptest
/app1/test
在第1層子目錄和第2層子目錄之間查找文件(第一層子目錄就是2層目錄)
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1 -mindepth 2 -maxdepth 3 -name "*test*"
/app1/www/a2/test
/app1/www/test
(6)查找空文件(-empty)
只列出當前目錄下的非隱藏空文件
[root@izwz94jtz9hbdq165vpxpxz ~]#find . -maxdepth 1 -empty -not -name ".*"
(7)查找指定文件類型的文件 (-type)
查找指定目錄下的全部目錄 -type d
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1/www -type d
/app1/www
/app1/www/a2
/app1/www/a2/test
/app1/www/root
/app1/www/root/carina
/app1/www/root/carina/b
/app1/www/root/carina/a
/app1/www/carina
/app1/www/carina/aa
查找指定目錄下的全部文件 -type f
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1/www -type f
/app1/www/root/carina/config.xml
/app1/www/requests-2.18.1.tar.gz
/app1/www/text.txt
/app1/www/123.jgp
Print working directory
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app1/www
[root@izwz94jtz9hbdq165vpxpxz www]# pwd
/app1/www
使用rm命令要格外當心。由於一旦刪除了一個文件,就沒法再恢復。
建議用-i選項,刪除時會有提示
相對路徑:
[root@izwz94jtz9hbdq165vpxpxz www]# rm -i text2.txt
rm: remove regular file ‘text2.txt’? /*回車鍵不刪除,效果同輸入n*/
[root@izwz94jtz9hbdq165vpxpxz www]# ls
text2.txt text3.txt text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# rm -i text2.txt
rm: remove regular file ‘text2.txt’? y /*文件刪除成功*/
[root@izwz94jtz9hbdq165vpxpxz www]# ls
text3.txt text.txt
絕對路徑:
[root@izwz94jtz9hbdq165vpxpxz www]# rm /app1/c/text1.txt
rm: remove regular file ‘/app1/c/text1.txt’? y
[root@izwz94jtz9hbdq165vpxpxz www]#
注:rm不能刪除文件夾
[root@izwz94jtz9hbdq165vpxpxz /]# rm app3
rm: cannot remove ‘app3’: Is a directory
rm -r(或rm -R):刪除當前目錄下除隱含文件外的全部文件和子目錄
[root@izwz94jtz9hbdq165vpxpxz app21]# ls -a
. .. a3 redis-3.0.7.tar.gz text1.txt
[root@izwz94jtz9hbdq165vpxpxz app21]# cd ..
[root@izwz94jtz9hbdq165vpxpxz app2]# rm -r app21
rm: descend into directory ‘app21’? y /*輸入y刪除*/
rm: remove regular empty file ‘app21/text1.txt’? y
rm: descend into directory ‘app21/a3’? y
rm: remove regular empty file ‘app21/a3/a3.png’? y
rm: remove regular empty file ‘app21/a3/a3.txt’? y
rm: remove directory ‘app21/a3’? y
rm: remove regular empty file ‘app21/redis-3.0.7.tar.gz’? y
rm: remove directory ‘app21’? y
[root@izwz94jtz9hbdq165vpxpxz app2]# ls -a
. ..
rm -(r)f:強制刪除,f 可理解爲force
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app1/aa
[root@izwz94jtz9hbdq165vpxpxz aa]# ls
aa1
[root@izwz94jtz9hbdq165vpxpxz aa]# cd ..
[root@izwz94jtz9hbdq165vpxpxz app1]# rm -rf aa
[root@izwz94jtz9hbdq165vpxpxz app1]#
刪除某個目錄下全部帶有test的文件夾及文件
find 目錄 -name "*file*" -exec rm -rf {} \;
語法解析
-exec 找到後執行命令
rm -rf {} 就是刪除文件
\; 命令 屬於格式要求的,沒有具體含義
舉例
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1/ -name "*test*"
/app1/www/test1.txt
/app1/www/test
/app1/test.txt
/app1/zyptest
/app1/test
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1/ -name "*test*" -exec rm -rf {} \;
find: ‘/app1/www/test’: No such file or directory /*文件已被刪除因此會提示找不到*/
find: ‘/app1/zyptest’: No such file or directory
find: ‘/app1/test’: No such file or directory
[root@izwz94jtz9hbdq165vpxpxz ~]# find /app1/ -name "*test*"
[root@izwz94jtz9hbdq165vpxpxz ~]#
(用ls-l查看文件大小爲0)
[root@izwz94jtz9hbdq165vpxpxz www]# touch text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jul 16 17:02 text.txt
批量建立文件
[root@izwz94jtz9hbdq165vpxpxz a1]# touch a{1..10}.text
[root@izwz94jtz9hbdq165vpxpxz a1]# ls
a10.text a1.text a2.text a3.text a4.text a5.text a6.text a7.text a8.text a9.text
(1)默認狀況下,cp命令不能複製目錄
[root@izwz94jtz9hbdq165vpxpxz app1]# cp a1 /app2
cp: omitting directory ‘a1’
若是要複製目錄,則必須使用-R選項
[root@izwz94jtz9hbdq165vpxpxz app1]# cp -R a1 /app2
[root@izwz94jtz9hbdq165vpxpxz app1]# find / -name "a1"
/app1/a1
/app2/a1
目標目錄不存在,先自動建立目標目錄再複製源目錄
[root@izwz94jtz9hbdq165vpxpxz app1]# ls
test www zyp
[root@izwz94jtz9hbdq165vpxpxz app1]# cd www
[root@izwz94jtz9hbdq165vpxpxz www]# ls
123.jgp a2 carina root text1.txt text3.txt text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# cp -R carina /app1/zyptest /*拷貝到不存在的目錄*/
[root@izwz94jtz9hbdq165vpxpxz www]# cd ..
[root@izwz94jtz9hbdq165vpxpxz app1]# ls
test www zyp zyptest /*目錄建立成功*/
(2)複製文件
[root@izwz94jtz9hbdq165vpxpxz www]# cp text1.txt /app1/c
[root@izwz94jtz9hbdq165vpxpxz www]# find / -name "text1.txt"
/app1/www/text1.txt
/app1/c/text1.txt
絕對路徑:
[root@izwz94jtz9hbdq165vpxpxz ~]# cp /app1/www/text1.txt /app1/c
(3)複製文件並重命名文件
以下將www文件夾下的text1.txt 複製到目錄 /app1,並更名爲text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# cp text1.txt /app1/text.txt
(4)複製特定類型的文件
[root@izwz94jtz9hbdq165vpxpxz www]# ls
123.txt carina text1.txt text3.txt text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# cp t*.txt /app1/bak
[root@izwz94jtz9hbdq165vpxpxz www]# cd /app1/bak
[root@izwz94jtz9hbdq165vpxpxz bak]# ls
text1.txt text3.txt text.txt
複製前可能已經有文件存在了,那麼不想進行每一個選項都輸入 y 確認的話,須要在 cp 前加 \,沒有空格
[root@izwz94jtz9hbdq165vpxpxz www]# cp t*.txt /app1/bak
cp: overwrite ‘/app1/bak/text1.txt’? y
cp: overwrite ‘/app1/bak/text3.txt’? y
cp: overwrite ‘/app1/bak/text.txt’? y
[root@izwz94jtz9hbdq165vpxpxz www]# \cp t*.txt /app1/bak /*沒有提示按y*/
[root@izwz94jtz9hbdq165vpxpxz www]#
先按鍵盤字母I,編輯內容後,保存(按esc鍵後輸入:wq)
[root@izwz94jtz9hbdq165vpxpxz www]# vi text.txt
dgdfgfhfdgh
(1)使用>指令
若文件不存在則建立文件
[root@izwz94jtz9hbdq165vpxpxz a1]# echo 'hello world' > hw.text
[root@izwz94jtz9hbdq165vpxpxz a1]# ls
hw.text
[root@izwz94jtz9hbdq165vpxpxz a1]# cat hw.text
hello world
(2)若文件存在,覆蓋文件原內容並從新輸入內容
[root@izwz94jtz9hbdq165vpxpxz a1]# cat hh.text
hello hello
[root@izwz94jtz9hbdq165vpxpxz a1]# echo 'hi hi' > hh.text
[root@izwz94jtz9hbdq165vpxpxz a1]# cat hh.text
hi hi
(2)使用 >>,向文件追加內容,原內容不變
[root@izwz94jtz9hbdq165vpxpxz a1]# cat hw.text
hello world
[root@izwz94jtz9hbdq165vpxpxz a1]# echo 'yeah yeah' >> hw.text
[root@izwz94jtz9hbdq165vpxpxz a1]# cat hw.text
hello world
yeah yeah
(1)文件打包:tar -zcvf 打包名 文件
[root@izwz94jtz9hbdq165vpxpxz www]# ls
123.txt a2 carina requests-2.18.1.tar.gz text1.txt text3.txt text.txt
[root@izwz94jtz9hbdq165vpxpxz www]# tar -zcvf text.tar.gz 123.txt a2 text1.txt
123.txt
a2/
text1.txt
[root@izwz94jtz9hbdq165vpxpxz www]# ls
123.txt a2 carina requests-2.18.1.tar.gz text1.txt text3.txt text.tar.gz text.txt
(2)文件解壓:tar -zxvf 文件名
[root@izwz94jtz9hbdq165vpxpxz app1]# tar -zxvf text.tar.gz
(1)將本地的文件上傳到遠程服務器上
相對路徑下,scp 文件名 用戶名@ip:服務器絕對路徑目錄 (分號後面無空格)
scp redis-3.0.7.tar.gz root@29.118.65.136:/app1/www
絕對路徑:
scp /app/software/www/text.txt root@29.118.65.136:/app1/bak
如果上傳目錄,須要使用 -r
scp -r /app/software/www root@29.118.65.136:/app1/bak
(2)將遠程服務器上的文件/目錄拷貝到本地
scp -r 用戶名@ip:服務器絕對路徑目錄 絕對路徑本地目錄
scp -r root@29.118.65.136:/app1/www /app/software
scp root@29.118.65.136:/app1/www/text.txt /app/software/www
注意點: