基本命令
移動檔案
將/data目錄移動到/root下
涉及命令mv
[root@nfsnobody ~]# mv /data/ /root/ 移動
[root@nfsnobody ~]# ls /root/ 查看
anaconda-ks.cfg data install.log install.log.syslog
[root@nfsnobody ~]#
備份檔案
備份nfsnobody.txt
涉及命令cp
[root@nfsnobody ~]# cp /root/data/nfsnobody.txt /root/data/nfsnobody.txt.bak
########## 備份cp 將需要備份的檔案加上 .bak
[root@nfsnobody ~]# ls -l /root/data/ 檢查
total 0
-rw-r--r--. 1 root root 0 Jul 10 19:18 nfsnobody.txt
-rw-r--r--. 1 root root 0 Jul 10 19:19 nfsnobody.txt.bak
[root@nfsnobody ~]#
改名
將nfsnobody.txt 修改成oldgirl.txt
涉及命令mv
[root@nfsnobody ~]# mv /root/data/nfsnobody.txt /root/data/oldgirl.txt 改名
[root@nfsnobody ~]# ls -l /root/data/ 查看
total 0
-rw-r--r--. 1 root root 0 Jul 10 19:19 nfsnobody.txt.bak
-rw-r--r--. 1 root root 0 Jul 10 19:18 oldgirl.txt
[root@nfsnobody ~]#
洗掉檔案
洗掉oldgirl.txt
涉及命令 rm 引數 -f
[root@nfsnobody ~]# rm /root/data/oldgirl.txt 洗掉檔案
rm: remove regular empty file `/root/data/oldgirl.txt'? y 確認洗掉 y
[root@nfsnobody ~]#
強制洗掉不提示
[root@nfsnobody ~]# rm -f /root/data/oldgirl.txt 強制洗掉不提示
[root@nfsnobody ~]# ls -l /root/data/ 查看
total 0
-rw-r--r--. 1 root root 0 Jul 10 19:19 nfsnobody.txt.bak
[root@nfsnobody ~]#
####-f 強制洗掉不提示
洗掉目錄
洗掉/tmp下的/data
涉及命令 rm
-rf 強制洗掉不提示 (作業中需慎用)
-r 遞回 洗掉目錄及以下檔案
-f 強制洗掉不提示
[root@nfsnobody ~]# rm /tmp/data/
rm: cannot remove `/tmp/data/': Is a directory 這是一個目錄 不能直接洗掉目錄
[root@nfsnobody ~]# rm -r /tmp/data/ -r 遞回 洗掉目錄及以下檔案
rm: remove directory `/tmp/data'? y
[root@nfsnobody ~]#
[root@nfsnobody ~]# rm -rf /tmp/data/ -rf 強制洗掉不提示 (慎用!)
[root@nfsnobody ~]#
mkdir命令補充
創建多層目錄(批量創建目錄)
-p 創建多層目錄
-v 顯示創建程序
[root@nfsnobody ~]# mkdir -p /nfsnobody/test
[root@nfsnobody ~]#
[root@nfsnobody ~]# #-p 創建多層目錄
創建多層目錄并顯示內容
[root@nfsnobody ~]# mkdir -pv /1/2/3
mkdir: created directory `/1'
mkdir: created directory `/1/2'
mkdir: created directory `/1/2/3'
[root@nfsnobody ~]# # -v 顯示創建程序
cd命令補充
cd..
cd.. 進入到上一級目錄
[root@nfsnobody ~]# cd /root/data/
[root@nfsnobody data]# cd ..
[root@nfsnobody ~]# ##進入到上一級目錄
cd. 及cd.可能會使用的環境
cd. 進入到當前目錄
[root@nfsnobody data]# cd .
[root@nfsnobody data]# ##進入到當前目錄
[root@nfsnobody data]# ##用到cd . 的時候
[root@nfsnobody data]# ##移動xxxx檔案 到當前目錄
[root@nfsnobody data]# cp /root/data/nfsnobody.txt .
######可能使用到的地方 如當前在data目錄下 要把一個檔案復制到data 可以使用 . 代替要復制的路徑
管道的概念
管道的概念
簡單來說管道就是將前面命令處理的結果傳遞給后面的命令
管道與|xargs(管道xargs)的區別
find|xargs ls -ld##把前一個命令的結果,通過管道傳遞給后面的命令(ls -ld),傳遞的是檔案名
find| 命令 ##把前一個命令的結果,通過管道傳遞給后面的命令,傳遞的是普通的文本,文字,字串
find命令
創建環境
touch/root/nfsnobody.txt /root/alex.txt/root/lidao.txt
查找檔案
涉及命令 find
在/root目錄查找檔案nfsnobody.txt
find查找命令
[root@nfsnobody ~]# #find 在哪里找 -在哪找 f 找什么名字的 "nfsnobody.txt"
[root@nfsnobody ~]# find /root/ -type f -name "nfsnobody.txt"
/root/nfsnobody.txt
[root@nfsnobody ~]#
-type 找什么型別的 f file (檔案)
d directory(目錄)
在/root目錄查找以 .txt 結尾的檔案
- 所有字符(文字) 任何文字
[root@nfsnobody ~]# find /root/ -type f -name "*.txt"
/root/alex.txt
/root/lidao.txt
/root/nfsnobody.txt
[root@nfsnobody ~]# ### *所有字符 任意字符
[root@nfsnobody ~]#
實作查找并洗掉
基于find命令下實作
方法一
為防止誤洗掉 不直接用rm洗掉 先用 ls -l查看一下內容 確認一下 確認后再洗掉
[root@nfsnobody ~]# find /root/ -type f -name "*.txt"|xargs ls -l 查找并查看
-rw-r--r--. 1 root root 0 Jul 10 19:42 /root/alex.txt
-rw-r--r--. 1 root root 0 Jul 10 19:42 /root/lidao.txt
-rw-r--r--. 1 root root 0 Jul 10 19:46 /root/nfsnobody.txt
[root@nfsnobody ~]# find /root/ -type f -name "*.txt"|xargs rm 查找并洗掉
[root@nfsnobody ~]# ls -l /root/ 檢查是否洗掉
total 40
-rw-------. 1 root root 1161 Jul 10 18:26 anaconda-ks.cfg
-rw-r--r--. 1 root root 21736 Jul 10 18:26 install.log
-rw-r--r--. 1 root root 5890 Jul 10 18:25 install.log.syslog
方法二
因上面已洗掉 重新創建環境
touch/root/nfsnobody.txt /root/alex.txt/root/lidao.txt
首先為防止未洗掉 先查找并查看*.txt的檔案
$
[root@nfsnobody ~]# ls -l $(find /root/ -type f -name "*.txt")
-rw-r--r--. 1 root root 0 Jul 10 18:47 /root/alex.txt
-rw-r--r--. 1 root root 0 Jul 10 18:47 /root/lidao.txt
-rw-r--r--. 1 root root 0 Jul 10 18:47 /root/nfsnobody.txt
確認無誤 rm -f 洗掉
[root@nfsnobody ~]# rm -f $(find /root/ -type f-name "*.txt") rm -f 強制洗掉不提示
[root@nfsnobody ~]# ls /root/ 檢查是否洗掉
anaconda-ks.cfginstall.log install.log.syslog
[root@nfsnobody ~]#
方法三
同上先模擬創建環境
先查看搜索出的內容 然后再洗掉
[root@nfsnobody ~]# find /root/ -type f -name "*.txt" -exec ls -l {} \; 查看搜索的檔案
-rw-r--r--. 1 root root 0 Jul 10 18:51 /root/alex.txt
-rw-r--r--. 1 root root 0 Jul 10 18:51 /root/lidao.txt
-rw-r--r--. 1 root root 0 Jul 10 18:51 /root/nfsnobody.txt
[root@nfsnobody ~]# find /root/ -type f -name "*.txt" -exec rm {} \; 洗掉搜索的檔案
[root@nfsnobody ~]# ls /root/ 檢查
anaconda-ks.cfg install.log install.log.syslog
[root@nfsnobody ~]#
過濾資訊
問題資訊
已知檔案 test.txt 內容為:
test
liyao
nfsnobody nfsnobody
請給出輸出test.txt 檔案內容時,不包含 nfsnobody 字串的命令
首先模擬環境
[root@nfsnobody ~]# mkdir -p /data
[root@nfsnobody ~]# cat > /data/test.txt <<EOF
test
liyao
nfsnobody
EOF
方法一 grep
grep-v 清除搜索的內容 顯示其他的
[root@nfsnobody ~]# grep "nfsnobody"/data/test.txt
nfsnobody
[root@nfsnobody ~]# grep -v "nfsnobody"/data/test.txt
test
liyao
方法二head tail
head
head默認顯示檔案的前幾行內容 默認顯示前十行
[root@nfsnobody ~]# head -2 /data/test.txt -2 == -n2 在此處表示的引數是一樣的
test
liyao
[root@nfsnobody ~]# head -n2 /data/test.txt
test
liyao
[root@nfsnobody ~]#
tail(拓展)
tail默認顯示檔案的最后幾行內容 默認顯示最后十行
[root@nfsnobody ~]# tail -2 /data/test.txt -2 == -n2 顯示最后兩行
liyao
nfsnobody
[root@nfsnobody ~]# tail -n2 /data/test.txt
liyao
nfsnobody
[root@nfsnobody ~]#
awk
! 表示取反
[root@nfsnobody ~]# awk '!/nfsnobody/'/data/test.txt
test
liyao
[root@nfsnobody ~]# awk '/nfsnobody/'/data/test.txt
nfsnobody
[root@nfsnobody ~]#
sed
d 意思 delete
[root@nfsnobody ~]# sed '/nfsnobody/d'/data/test.txt
test
liyao
顯示檔案20到30行的內容
準備環境
[root@nfsnobody ~]# seq 40 >/data/ett.txt
方法一head | tail
先用head提取檔案前30行 然后用管道傳遞給 tail 取后11行
[root@nfsnobody ~]# head -30 /data/ett.txt |tail-11
20
21
22
23
24
25
26
27
28
29
30
方法二awk
NR 行號
NR==20取第三行 ;
[root@nfsnobody ~]# awk 'NR==20,NR==30'/data/ett.txt
####因行數太多 此處不寫 輸出內容同5.1
方法三 sed
-n 取消默認輸出(sed命令不會把檔案內容都顯示出來)
p (print顯示列印)
[root@nfsnobody ~]# sed -n '20,30p' /data/ett.txt
20
21
22
23
24
25
26
27
28
29
30
方法四 grep
-A
[root@nfsnobody ~]#grep -A "20"/data/ett.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/150217.html
標籤:Linux
上一篇:基本命令上部
下一篇:基礎命令下部
