grep命令:
grep命令是非常重要的命令,可以對文本進行查找和搜索
常用參數如下:
常用實例:
1、在多個文件中查找:
grep "file" file_1 file_2 file_3
2、輸出除之外的所有行 -v 選項:
grep -v "file" file_name
3、標記匹配顏色 --color=auto 選項:
grep "file" file_name --color=auto
4、使用正則表達式 -E 選項:
grep -E "[1-9]+"
egrep "[1-9]+"
5、只輸出文件中匹配到的部分 -o 選項:
echo this is a test line. | grep -o -E "[a-z]+."
line.
echo this is a test line. | egrep -o "[a-z]+."
line.
6、統計文件或者文本中包含匹配字元串的行數-c 選項:
grep -c "text" file_name
2
7、輸出包含匹配字元串的行數 -n 選項:
grep "text" -n file_name
或
cat file_name | grep "text" -n
8、多個文件
grep "text" -n file_1 file_2
9、搜索多個文件並查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...
10、grep遞歸搜索文件
在多級目錄中對文本進行遞歸搜索:
grep "text" . -r -n
11、忽略匹配樣式中的字元大小寫:
echo "hello world" | grep -i "HELLO"
hello
12、選項 -e 指定多個匹配樣式:
echo this is a text line | grep -e "is" -e "line" -o
is
line
13、也可以使用 -f 選項來匹配多個樣式,在樣式文件中逐行寫出需要匹配的字元。
cat patfile
aaa
bbb
echo aaa bbb ccc ddd eee | grep -f patfile -o
14、在grep搜索結果中包括或者排除指定文件:
只在目錄中所有的.php和.html文件中遞歸搜索字元"main()"
grep "main()" . -r --include *.{php,html}
15、在搜索結果中排除所有README文件
grep "main()" . -r --exclude "README"
16、在搜索結果中排除filelist文件列表裡的文件
grep "main()" . -r --exclude-from filelist
touch abc.txt 創建一個名為abc.txt的文件
touch -r 指定文件時間與參考文件相同
touch -t 201608012234.55[yyyymmddhhmm.ss] abc.txt 更改文件為指定的時間
touch temp 創建一個名為temp的文件
vi編輯器有三種模式,命令行模式、編輯模式、底行模式。
vi 文件名進入命令行模式,Insert進入編輯模式,編輯完成Esc退出編輯模式,:wq進入底行模式並保存修改,:q直接退出保存。
tar命令用於打包壓縮文件,常用的壓縮命令還有bzip2,gzip
bunzip2 file1.bz2 解壓一個叫做 'file1.bz2'的文件
bzip2 file1 壓縮一個叫做 'file1' 的文件
gunzip file1.gz 解壓一個叫做 'file1.gz'的文件
gzip file1 壓縮一個叫做 'file1'的文件
gzip -9 file1 最大程度壓縮
rar a file1.rar test_file 創建一個叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar 解壓rar包
unrar x file1.rar 解壓rar包
tar -cvf archive.tar file1 創建一個非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1 創建一個包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar 顯示一個包中的內容
tar -xvf archive.tar 釋放一個包
tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1 創建一個bzip2格式的壓縮包
tar -xvfj archive.tar.bz2 解壓一個bzip2格式的壓縮包
tar -cvfz archive.tar.gz dir1 創建一個gzip格式的壓縮包
tar -xvfz archive.tar.gz 解壓一個gzip格式的壓縮包
zip file1.zip file1 創建一個zip格式的壓縮包
zip -r file1.zip file1 file2 dir1 將幾個文件和目錄同時壓縮成一個zip格式的壓縮包
unzip file1.zip 解壓一個zip格式壓縮包
which命令用於用戶查找命令所有路徑
命令格式
file命令用於獲取文件屬性
命令格式
file 文件名或目錄名
命令示例:
使用說明
命令格式:cat [-AbeEnstTuv] [--help] [--version] fileName
cat file1 從第一個位元組開始正向查看文件的內容
-n 或 --number:由 1 開始對所有輸出的行數編號。
-b 或 --number-nonblank:和 -n 相似,只不過對於空白行不編號。
-s 或 --squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符號,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行結束處顯示 $。
-T 或 --show-tabs: 將 TAB 字元顯示為 ^I。
-A, --show-all:等價於 -vET。
-e:等價於"-vE"選項;
-t:等價於"-vT"選項;
使用示例
把 textfile1 的文檔內容加上行號後輸入 textfile2 這個文檔里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文檔內容加上行號(空白行不加)之後將內容附加到 textfile3 文檔里
cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文檔內容
cat /dev/null > /etc/test.txt
tac [filename]
從最後一行開始反向查看一個文件的內容,ac與cat命令剛好相反,文件內容從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫。
nl [-bnw] 文件
選項與參數:
-b: 指定行號指定的方式,主要有兩種:
-b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(默認值);
-n :列出行號表示的方法,主要有三種:
-n ln :行號在熒幕的最左方顯示;
-n rn :行號在自己欄位的最右方顯示,且不加 0 ;
-n rz :行號在自己欄位的最右方顯示,且加 0 ;
-w :行號欄位的佔用的位數。
more file1 查看一個長文件的內容,支持一頁一頁翻動
運行的時候,支持以下幾個按鍵:
空白鍵 (space):代表向下翻一頁;
Enter :代表向下翻『一行』;
/字串 :代表在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;
:f :立刻顯示出檔名以及目前顯示的行數;
q :代表立刻離開 more ,不再顯示該文件內容。
b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用,對管線無用。
less file1 類似於 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
less運行時可以輸入的命令有:
空白鍵 :向下翻動一頁;
[pagedown]:向下翻動一頁;
[pageup] :向上翻動一頁;
/字串 :向下搜尋『字串』的功能;
?字串 :向上搜尋『字串』的功能;
n :重復前一個搜尋 (與 / 或 ? 有關!)
N :反向的重復前一個搜尋 (與 / 或 ? 有關!)
q :離開 less 這個程序;
head [-n number]
head -2 file1 查看一個文件的前兩行
tail [-n number]
tail -2 file1 查看一個文件的最後兩行
tail -f /var/log/messages 實時查看被添加到一個文件中的內容
文件許可權列中三位為一組,分別代表相關的用戶、組、其它用戶的許可權
許可權列中三位為一組,分別代表相關的用戶、組、其它用戶的許可權
所以修改許可權可以分別修改或一同修改,系統中許可權分為數字許可權與字元許可權
數字許可權:r=4,w=2,x=1
字元許可權:+ 增加 -去除 a取消所有加上給定的
修改許可權的命令chmod,命令格式:
chmod 許可權 文件名或目錄名 修改許可權格式
chmod -R 許可權 目錄名 遞歸將目錄及其下面所有內容許可權全部修改
chown 改變文件或目錄的屬主(所有者)
chown 用戶名 文件名或目錄名
chown 用戶名.組名 文件名或目錄名
修改所屬組也可用chgrp 命令來完成
當你用ls -l 查看到文件的屬主、屬組為數字時,就表明該文件的創建用戶已被刪除。
文件的特殊許可權
chattr +i(-i) 文件名 鎖定文件(取消鎖定)不可刪除與清空
chattr +a(-a) 文件名 添加內容(只可添加內容)
使用lsattr 文件名 查看文件的特殊許可權
由此可以看出
root用戶默認創建的目錄許可權是755,文件許可權是644
普通用戶默認創建的目錄許可權是775,文件許可權是664
這也是系統默認的比較安全的許可權分配,其實這些默認許可權全部都是由umask值來決定的
系統規定了
文件的許可權值是從666開始計算(默認許可權=許可權值-umask值)
目錄的許可權值是從777開始計算(默認許可權=許可權值-umask值)
文件1的許可權=444 (666-232=434——43(3+1)4)
② linux下怎麼修改文件夾目錄
具體操作如下:
一、目錄創建
在/home/wwwroot目錄下新建一個sinozzz123的文件夾
mkdir /home/wwwroot/sinozzz123
二、目錄復制
1.把/home/wwwroot/sinozzz裡面的文件和文件夾等復制到home/wwwroot/sinozzz123目錄下
cp -rf /home/wwwroot/sinozzz/* /home/wwwroot/sinozzz123
2.把/home/wwwroot/sinozzz123/abc/下的文件夾和文件復制到home/wwwroot/sinozzz123目錄下
cp -rf /home/wwwroot/sinozzz123/abc/* /home/wwwroot/sinozzz123
3.把/home/wwwroot/sinozzz目錄復制到/home/wwwroot/sinozzz123目錄下,即把sinozzz復制變成sinozzz123的子目錄,變成/home/wwwroot/sinozzz123/sinozzz的路徑
cp -rf /home/wwwroot/sinozzz /home/wwwroot/sinozzz123
三、目錄剪切
1.使用mv命令剪切文件。
如需要將/home/wwwroot/sinozzz123/music/目錄下的1.mp3文件剪切到/home/wwwroot/sinozzz123/abc目錄下,執行下面的命令即可:
# mv /home/wwwroot/sinozzz123/music/1.mp3 /home/wwwroot/sinozzz123/abc
2.使用mv命令剪切文件夾。
把/home/wwwroot/sinozzz123/soft文件夾剪切到/home/wwwroot/sinozzz123/abc目錄下
# mv /home/wwwroot/sinozzz123/soft /home/wwwroot/sinozzz123/abc
3.使用mv命令剪切文件夾和文件
把/home/wwwroot/sinozzz123/photo/下的文件夾和文件剪切到/home/wwwroot/sinozzz123/abc目錄下
# mv /home/wwwroot/sinozzz123/photo/* /home/wwwroot/sinozzz123/abc
四、目錄重命名
在linux下,移動文件跟重命名都是同一個命令,mv(就是move的意思)
命令: mv 源文件名 目標文件名
1.把/home/wwwroot/sinozzz123/index.htm重命名為/home/wwwroot/sinozzz123/index.html
# mv /home/wwwroot/sinozzz123/index.htm /home/wwwroot/sinozzz123/index.html
2.把/home/wwwroot/sinozzz123目錄重命名為/home/wwwroot/sinozzz456
# mv /home/wwwroot/sinozzz123 /home/wwwroot/sinozzz456
五、目錄刪除
linux刪除目錄很簡單,很多人還是習慣用rmdir,不過一旦目錄非空,就陷入深深的苦惱之中,現在使用rm -rf命令即可。
直接rm就可以了,不過要加兩個參數-rf
即:rm -rf 目錄名字
-r 就是向下遞歸,不管有多少級目錄,一並刪除
-f 就是直接強行刪除,不作任何提示的意思
1.刪除文件使用實例:
rm -f /home/wwwroot/sinozzz456/index.html
將會強制刪除/home/wwwroot/sinozzz456/index.html這個文件
2.清空文件夾實例:
rm -rf /home/wwwroot/sinozzz456/abc/*
將會強制刪除/home/wwwroot/sinozzz456/abc目錄下所有文件、文件夾,保留/home/wwwroot/sinozzz456/abc目錄
3.刪除文件夾實例:
rm -rf /home/wwwroot/sinozzz456
將會強制刪除/home/wwwroot/sinozzz456目錄以及其下所有文件、文件夾
需要提醒的是:使用這個rm -rf的時候一定要格外小心,linux沒有回收站的
當然,rm還有更多的其他參數和用法,man rm就可以查看了
③ linux系統中如何重命名文件和文件夾
linux重命名文件和文件夾可以使用mv命令來實現。
mv命令:
Linux mv 命令用來為文件或目錄改名、或將文件或目錄移入其它位置。
實例:
比如:before.txt是修改之前的文件名,after.txt是准備修改的文件名。
命令為:
注意:如果當前目錄下也有個after.txt的文件的話,我們的這個文件是會將它覆蓋的。
mv命令也可以移動文件和文件夾,例如將/a目錄移動到/b下,並重命名為c。
命令為:
④ linux用什麼命令修改目錄名稱
linux下修改主目錄的方法:
第一,修改/etc/passwd文件 ;
第二,usermod命令;
具體方法:
第一種方法:vi /etc/passwd ;
找到要修改的用戶那幾行,修改掉即可,此方法建議慎用。
/etc/passwd文件格式 。
登錄名:加密口令:數字用戶ID:數字組ID:注釋欄位:起始目錄:shell程序 。
用此方法修改了用戶宿主目錄後,會出現某些異常,如:
bash環境異常,需要將用戶原宿主目錄下的隱藏文件拷貝到更改後的宿主目錄即可 。
cp /原宿主目錄/.* /目標目錄。
第二種:usermod ;
usermod -d /usr/newfolder -u uid-u後面一定要接uid啊,不是username 。
補充說明:usermod可用來修改用戶帳號的各項設定。
rmdir 命令
功能:刪除空目錄。
語法:rmdir [選項] dir-name
說明:dir-name表示目錄名。該命令從一個目錄中刪除一個或多個子目錄項。需要 特別注意的是,一個目錄被刪除之前必須是空的。rm - r dir命令可代替 rmdir,但是有危險性。刪除某目錄時也必須具有對父目錄的寫許可權。
命令中各選項的含義為:
- p 遞歸刪除目錄dirname,當子目錄刪除後其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標准輸出上顯示相應 的信息。
cd 命令:
功能:改變工作目錄。
語法:cd [directory];
說明:該命令將當前目錄改變至directory所指定的目錄。若沒有指定directory, 則回到用戶的主目錄。為了改變到指定目錄,用戶必須擁有對指定目錄的執行和讀許可權。
⑤ linux 怎樣修改文件夾的名字
Linux在終端命令行修改文件夾名字用mv命令,命令的用法是這樣:mv
原來的名字
修改後的名字;如果是在圖形界面的文件管理器中,那就更簡單了,直接點擊右鍵選擇「重命名」就可以了。
⑥ linux中用什麼命令移修改文件夾名
linux的文件重命名非常簡單。常用的是mv命令和rename命令。下面介紹一下這兩個命令的用法,具體結節可以參考手冊。
1、mv
mv fromfile tofile
如把文件a.txt得命名為b.txt,可以是mv a.txt b.txt。
mv一次只能重命名一個文件,而且,它是移動命令。如果tofile已經存在的話,會直接裝原文件覆蓋,從而造成文件的丟失。當然有選項可以對已存在的文件進行提示,但是,我表示,那個選項我還真不常用。綜合這兩點考慮,還是決定看看rename吧。
2、rename
rename frompart topart filename 或者 rename 's/frompart/topart/' filename
如把文件a.txt得命名為b.txt,可以是rename 'a' 'b' a.txt (這個沒有試過,看網上別人說的,是這樣子的。)還可以是:rename 's/^a/b/' a.txt
⑦ linux中修改文件名命令
linux 給文件改名的命令是mv命令
mv命令來為文件或目錄改名或將文件由一個目錄移入另一個目錄中。該命令等同於DOS系統下的ren和move命令的組合。它的使用許可權是所有用戶。命令詳細介紹可參考 Linux命令大全
⑧ linux 給文件改名的命令
1、連接上相應的linux主機,進入到等待輸入shell指令的linux命令行狀態下。
⑨ Linux下批量修改文件名
Linux下修改文件名有mv和rename。 其中mv命令只能對單個文件重命名 , 這是mv命令和rename命令的在重命名方面的根本區別。
linux的rename命令有兩個版本,一個是c語言版本的,一個是perl語言版本的,判斷方法:
輸入man rename 看到第一行是:
RENAME(1) Linux Programmer』s Manual RENAME(1)
這個就是C語言版本的
而如果出現:
RENAME(1) Perl Programmers Reference Guide RENAME(1) 則是Perl版本的了
C語言版本格式:rename 原字元串 新字元串 文件名
Perl語言版本格式:rename 's/原字元串/新字元串/' 文件名
rename支持正則表達式
例子:
字母的替換 rename "s/AA/aa/" * // 把文件名中的AA替換成aa
修改文件的後綴 rename "s//.html//.php/" * // 把.html 後綴的改成 .php後綴
批量添加文件後綴 rename "s/$//.txt/" * // 把所有的文件名都以txt結尾
批量刪除文件名 rename "s//.txt//" * // 把所有以.txt結尾的文件名的.txt刪掉
在文件夾shell下創建文件10個文件
touch tmp_{1..10}.txt
找到含有「_「」的文件夾。
find ./ -name "*_*"
讀取id, 用mv改名,$為自己理解為賦值後的id,格式為