centos 管道符取第一行_CentOS 7 文件操作命令
[TOCM]
在 CentOS 7 系統中對文件操作的一些命令。
1. 創建一個文件
使用touch命令創建文件。例如,在/data目錄下創建一個test.txt文件。
創建test.txt文件:
touch/data/test.txt
查看/data目錄下剛剛創建的文件:
ls-l/data/
2. 編輯文件
使用vi命令編輯/data/test.txt文件。vi 是一種編輯器。
vi/data/test.txt
按下i鍵,進入編輯模式。內容編寫完畢后,按下Esc鍵,退出編輯模式。然后,退出并保存,請依次按下:wq三個鍵,并回車。
關于退出編輯文件,有 4 個命令:
:q 退出。用于未修改文件內容,直接退出。
:wq 退出并保存。
:q! 強制退出不保存。用于已修改文件內容,而不希望被保存。
:wq! 強制退出并保存。
其中w為英文 write ;q 為英文 quit 。
3. 查看文件內容
使用cat命令來查看文件中的內容。
cat/data/test.txt
4. 寫入文件
使用echo命令與>>追加重定向符號,將內容寫入某個文件內的最后一行。
echoHellosophia>>/data/test.txt
如果想一次性寫入多行到文件,使用如下方法。
cat>>/data/test.txt<
Hello
World
!
EOF
5. 復制文件或目錄
使用cp命令,英文全稱為 copy 。
把test.txt文件,復制到/tmp/目錄。
[root@centos7~]#cp/data/test.txt/tmp/
[root@centos7~]#ls-l/tmp/
total16
-rw-r--r--.1root root127Apr1720:13test.txt
-rw-------.1root root0Apr1020:12yum.log
[root@centos7~]#
把test.txt文件,復制到當前所在目錄,使用特殊符號.代表當前目錄。
# 查看當前所在目錄
[root@centos7~]#pwd
/root
# 復制 test.txt 文件到當前所在目錄
[root@centos7~]#cp/root/data/test.txt.
# 查看當前所在目錄文件列表
[root@centos7~]#ls-l
total12
-rw-------.1root root1707Apr1020:32anaconda-ks.cfg
drwxr-xr-x.2root root4096Apr1720:23data
-rw-r--r--.1root root127Apr1811:18test.txt
[root@centos7~]#
使用cp命令,備份文件。將test.txt文件備份為test.txt.bak。
[root@centos7~]#cp/data/test.txt/data/test.txt.bak
[root@centos7~]#ls-l/data
total12
-rw-r--r--.1root root127Apr1718:52test.txt
-rw-r--r--.1root root127Apr1720:23test.txt.bak
[root@centos7~]#
使用cp -r命令,復制目錄。
參數 -r 為遞歸復制。復制目錄及目錄里面的內容。
參數 -p 復制時保持文件屬性不變。
參數 -a 為復制所有。與參數 -pdr 等價。
將/data/目錄復制到/tmp/目錄。
[root@centos7~]#cp-r/data/ /tmp/
[root@centos7~]#ls-l/tmp/
total20
drwxr-xr-x.2root root4096Apr1720:31data
-rw-r--r--.1root root127Apr1720:13test.txt
-rw-------.1root root0Apr1020:12yum.log
[root@centos7~]#
6. 移動文件或目錄
使用mv命令,英文全稱為 move 。
把/data/目錄移動到/root/目錄。
[root@centos7~]#mv/data/ /root/
[root@centos7~]#ls-l/root/
total8
-rw-------.1root root1707Apr1020:32anaconda-ks.cfg
drwxr-xr-x.2root root4096Apr1720:23data
[root@centos7~]#
把/data/目錄,移動到當前所在目錄,使用特殊符號.代表當前目錄。
# 查看當前所在目錄
[root@centos7~]#pwd
/root
# 把 /data/ 目錄,移動到當前所在目錄。
[root@centos7~]#mv/data/.
[root@centos7~]#ls-l
total12
-rw-------.1root root1707Apr1020:32anaconda-ks.cfg
drwxr-xr-x.2root root4096Apr1811:33data
-rw-r--r--.1root root127Apr1811:18test.txt
[root@centos7~]#
把/root/test.txt文件,移動到/root/data目錄下。使用特殊符號.代表當前目錄。
[root@centos7 data]#pwd
/root/data
[root@centos7 data]#mv/root/test.txt.
[root@centos7 data]#ls-l
total4
-rw-r--r--.1root root127Apr1811:18test.txt
[root@centos7 data]#
7. 刪除文件或目錄
使用rm命令刪除文件或目錄,默認無法刪除目錄,它的英文全稱為 remove 。
參數
描述
-r
遞歸刪除
-f
強制刪除
刪除/tmp/目錄下的test.txt文件。
[root@centos7~]#rm/tmp/test.txt
rm:remove regular file‘/tmp/test.txt’?y
輸入y確定刪除。如果不想被詢問是否刪除,則加參數-f刪除文件。
[root@centos7~]#rm-f/tmp/test.txt
使用rm -rf命令,刪除/tmp/目錄下的/data/目錄。
[root@centos7~]#rm-rf/tmp/data/
8. 查找文件或目錄
使用find命令,查找文件或目錄。
參數
描述
-type
查找類型。f 為文件 file,d 為目錄 directory 。
-name
查找名稱??梢允褂?* 作為通配符,匹配名稱。
在/root/data/目錄中,查找test.txt文件。如果找到了,則輸出文件位置。沒找到則無輸出。
[root@centos7~]#find/root/data/-type f-name"test.txt"
/root/data/test.txt
[root@centos7~]#
在/root/目錄中,查找名字為data的目錄。如果找到了,則輸出目錄位置。沒找到則無輸出。
[root@centos7~]#find/root/-type d-name"data"
/root/data
[root@centos7~]#
使用*作為通配符,匹配名稱。
[root@centos7~]#find/root/-type d-name"dat*"
/root/data
[root@centos7~]#
find命令與管道|配合使用。管道的意思是,|前面的命令執行成功后,交給后面的命令再執行。
# 查找 *.txt 文件名,并顯示詳細列表。
[root@centos7~]#find/root/data/-type f-name"*.txt"|xargs ls-l
-rw-r--r--.1root root10Apr1719:44/root/data/num.txt
-rw-r--r--.1root root127Apr1718:52/root/data/test.txt
# 查看兩個文件內容
[root@centos7~]#find/root/data/-type f-name"*.txt"|xargs cat
Hellosophia!
Helloabc!
Helloabc!
12345
[root@centos7~]#
9. 在文件內容中篩選出指定內容
方法 1,使用grep命令,篩選文件指定內容。
參數
描述
-v
排除指定內容。
在test.txt文件內容中,找到包含he的內容。
[root@centos7~]#cat/root/data/test.txt
test
hello
world
[root@centos7~]#grep"he"/root/data/test.txt
hello
[root@centos7~]#
在test.txt文件內容中,查找不包含he字符的內容。
[root@centos7~]#cat/root/data/test.txt
test
hello
world
[root@centos7~]#grep-v"he"/root/data/test.txt
test
world
[root@centos7~]#
方法 2,使用awk命令,篩選文件指定內容。
在test.txt文件內容中,找到包含he的內容。
[root@centos7~]#awk'/he/'/root/data/test.txt
hello
[root@centos7~]#
注意,使用一對單引號'和斜杠/。
在test.txt文件內容中,查找不包含he字符的內容。
[root@centos7~]#awk'!/he/'/root/data/test.txt
test
world
[root@centos7~]#
注意,使用嘆號!表示取反。
方法 3,使用sed命令,篩選文件指定內容。
使用sed命令,獲取test.txt文件內容,刪除包含he字符的行。
[root@centos7~]#sed'/he/d'/root/data/test.txt
test
world
[root@centos7~]#
其中參數'/he/d'表示刪除包含he的選項行。最后結果是,不包含he的行。
10. 獲取文件內容的前幾行
使用head命令,取出文件的前幾行,默認取出前 10 行。
參數
描述
-n數字
表示取出前幾行。例如 -n2 表示取出前 2 行。
-數字
表示取出前幾行。例如 -2 表示取出前 2 行。
使用head -n2命令,取出test.txt文件的前 2 行。
[root@centos7~]#head-n2/root/data/test.txt
test
hello
[root@centos7~]#
11. 獲取文件內容的最后幾行
使用tail命令,取出文件最后幾行,默認取出最后 10 行。
參數
描述
-n數字
表示取出最后幾行。例如 -n2 表示取出最后 2 行。
-數字
表示取出最后幾行。例如 -2 表示取出最后 2 行。
[root@centos7~]#tail-n2/root/data/test.txt
8
9
[root@centos7~]#
12. 獲取文件某一行,或連續幾行
題目:有一個test.txt文件,共有 100 行,要求顯示出文件中的第 50 行至第 60 行內容。
使用seq命令,給test.txt文件寫入 100 行內容。
[root@centos7~]#seq100>/data/test.txt
方法 1,使用sed命令
獲取文件第 50 行內容。
[root@centos7~]#sed-n'50p'/data/test.txt
50
sed命令默認輸出文件全部內容。使用參數-n取消默認輸出,'50p'表示只輸出第 50 行內容。
獲取文件第 50 到 60 行內容。
[root@centos7~]#sed-n'50,60p'/data/test.txt
50
51
52
53
54
55
56
57
58
59
60
[root@centos7~]#
把參數改成'50,60p'即可。
方法 2,使用head和tail命令
首先,使用tail命令獲取倒數 50 行。
[root@centos7~]#tail-50/data/test.txt
然后,使用|管道加head命令,獲取第 50 到 60 行內容。
[root@centos7~]#tail-50/data/test.txt|head-10
51
52
53
54
55
56
57
58
59
60
方法 3,使用awk命令
獲取文件第 50 行內容。
[root@centos7~]#awk'NR==50'/data/test.txt
50
參數中NR表示行號,==表示等于。
獲取文件第 50 到 60 行內容。
[root@centos7~]#awk'NR==50,NR==60'/data/test.txt
50
51
52
53
54
55
56
57
58
59
60
參數中添加NR==60,限定行號范圍,從第 50 行到第 60 行的內容。
13. 修改文件名
例如:把abc.txt文件重命名為abc123.txt。
注意,這是文件重命名,不是移動文件
可以使用mv命令,必須保證abc123.txt文件是不存在的,正是因為文件不存在,所以在使用mv命令時,直接重命名了該文件。
# 創建一個文件
[root@node01]#touch abc.txt
[root@node01]#ll
-rw-r--r--.1root root0Jan2916:19abc.txt
# 修改文件名
[root@node01]#mv/abc.txt/abc123.txt
[root@node01]#ll
-rw-r--r--.1root root0Jan2916:19abc123.txt
另外,重命名目錄名稱,也是可以使用mv命令的。鏈接:修改目錄名
(完)
總結
以上是生活随笔為你收集整理的centos 管道符取第一行_CentOS 7 文件操作命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 济南万达帝景苑的房子三楼以下的都是公寓,
- 下一篇: 阜阳荣信绿景公馆是哪个开发商?