1. 工作目錄操作 pwd, ls, cd
1.1 pwd: print working direction (當前在哪里)
linux中一些默認符號:
· 當前目錄
·· 上一級目錄
~ 家目錄
/ 根目錄或目錄分隔符
1.2 cd: change direction (要到哪里去)
1.3 查看目錄內容ls: list (這里有什么)
ls 列表顯示目錄內容
常用參數 | 含義 |
---|---|
ls -l | 長格式顯示文件或目錄信息,包含文件的屬性和權限數據等(long) |
ls -a | 顯示所有包括隱藏的文件或目錄(all) |
ls -h | 將文件容量以人類較易讀的方式(GB,kB等)列出來 (是和l一起用的:ls -lh) |
ls -d | 顯示目錄本身屬性信息 (是和l一起用的:ls -ld) |
ls -S | 以文件大小排序 Size(大寫) (是和l一起用的:ls -lS) |
ls -t | 以修改的時間排序 (是和l一起用的:ls -lt) |
通配符?單字符 含其一或段[a,b,c-d] *任意
常見用法 | 含義 |
---|---|
ll | 和ls -la一樣(偷懶寫法) |
ll -th |
常用 |
ls ./*txt |
列出當前目錄下以txt結尾的文件 |
2. 創建
2.1 創建目錄mkdir
mkdir -p/--parents
創建嵌套的目錄(見下面例子)
mkdir -m, --mode=模式,設定權限(777(owner-group-other),421(r- w-x))
mkdir -p pics/test1 #在當前目錄下創建pics文件夾,在pics文件夾再創建一個test1文件夾
2.2 新建或修改文件相關時間touch
touch 新建文件或修改時間
touch -a修改訪問時間
touch -m更改修改時間
touch --d=”時間” 設定訪問與修改時間
touch file{1..5} 創建file1, file2, file3, file4, file5五個文件
-
vim
是創建文件并往里面寫東西,比touch更常用
3. 操作文件
3.1 移動或重命名mv
用法:
3.2 刪除目錄或文件rm
刪除就找不回來了,使用時需謹慎
rm -f 強制刪除目錄或文件
rm -r 遞歸刪除目錄或文件
rm -i 在刪除會先詢問用戶
3.3 復制文件或目錄cp (copy and paste)
cp 復制文件或目錄
cp readme.txt ./test/a.txt #復制并重命名
cp ~/.bashrc ~/Data/bashrc_bk #??對~/.bashrc做備份,以免誤刪
cp -r 遞歸復制文件或目錄
3.4 查找文件或目錄
find 在目錄中查找文件或目錄
參考:https://wangchujiang.com/linux-command/c/find.html
常用參數 | 含義 |
---|---|
find -name | 目標條件 按名稱查找 |
find -iname | 查找文件或目錄的名稱,但是忽略大小寫 |
find -type | 目標條件 按類型查找 f文件 d目錄 b塊設備 c字符設備 |
find -user xxx | 按所屬者查找 |
find -size +10K | 按大小查找 +大于 -小于 |
find -exec | 對找到的文件或目錄執行shell 命令(由exec指定) |
find -print | 將找到的文件輸出到設備或文件 |
4. 文本查看,操作,統計命令??
4.1 文件查看cat/tac, head/tail, less/more
- cat 查看文件內容
常見參數:
cat -A
列出所有內容,包括特殊字符,如制表符,換行符等等
cat -n
打印出所有行號,cat -b
僅打印非空白行行號
cat >file 重定向,也就是可以在file中輸入內容。輸入后可以使用Ctrl + C退出。
zcat
:可以查看壓縮的文本文件;tac:逆向查看
- head查看前10行(默認);tail查看末尾10行
head/tail常結合管道符用于控制輸出行數
cat myfile | head -5
- more:逐頁查看,按空格翻頁,按回車換行,q退出
- less:上下左右鍵查看文本內容;Enter鍵向下移動一行;空格鍵翻頁;
/keyword
查找關鍵詞;n
和N
進行上下關鍵詞切換;q鍵退出;
常用參數:
less -N
:顯示行號
less -S
:單行顯示
zless
:查看壓縮文件
4.2 文件內容統計wc
- wc
wc -l 統計行數
wc -w 統計字符串數
wc -c 統計字節數
cat readme.txt | wc -l
4.3 文本切割和合并cut, paste
- cut 文本切割(是按列來切割,準確的說是按照字段來切割)
常見參數:
cut -d
指定分隔符,默認\t;也可制定分隔符,比如使用h分隔,但只能使用單個字符。
cut -f
輸出哪幾列(字段fields)
less -SN Data/example.gtf |cut -f 1,3-5,7 |head
# ??將Data/example.gtf文件按單行顯示并切割,顯示切割后1,3-5,7列的前10行
- paste 文本合并(不是上下合并 ,而是左右合并,相當于R語言中的cbind)
常見參數:
-d:指定分隔符(默認是tab)
-s:按行合并
常見用法:
1. paste file1 file2
2. seq 20 | paste - - (將seq20每2行合并在一起)
4.4 排序sort
常見參數:
sort -n
:按照數值從小到大進行排序
sort -V
:字符串中含有數值時,按照數值從小到大排序
sort -r:逆向排序
sort -k
:指定區域(對哪一列進行排序)
sort -t:指定分隔符
??在對數字的列進行排序的時候,一定要先寫-n再用-k選擇列,否則結果會出錯。
4.5 去除重復行uniq (sort的小尾巴)
uniq -c:統計每個字符串連續出現的行數
uniq比較懶,只能去除相鄰的重復行! 因此記得要跟sort連用!
4.6 字符替換tr
用法:tr 被替換的內容 替換成的內容
cat readme.txt | tr '' '$' #將空格替換成$
常見參數:
-d:刪除指定字符
-s:縮減連續重復字符
4.7 查找文件內容
grep 在內容中查找含某字符串的行
grep 某字符串(可正則式) /etc/passwd
文本操作重要命令小結
5. 鏈接文件ln
分軟鏈接(常用)和硬鏈接(默認)
為什么要使用軟鏈接:1. 相當于快捷方式,方便操作。2. 節省空間
常見參數:不加參數即為硬鏈接,加上–s 參數即為軟鏈接,軟鏈接的作用類似快捷方式。
常見用法:ln –s Target Directory
(鏈接誰,到哪去;將Target鏈接到Directory下。在鏈接的時候也可以像cp一樣進行性重命名)
??做軟鏈接的時候一定要用絕對路徑
??刪除軟鏈接的時候不要用rm -r,否則會把鏈接過去的文件/文件夾中的內容也刪掉
延伸:“軟鏈接”和“硬鏈接”的區別
6. 壓縮解壓文件
tar:Tape Archive
常用參數:
-c 創建一個新的tar歸檔文件(創建壓縮文件)
-d 或 --decompress 或 --uncompress :解壓文件;
-r 或 --recursive :遞歸壓縮,指定文件夾下的所有文件被壓縮成單獨的 .gz 文件;
-v 或 --verbose :顯示指令執行過程。
-x 從已有的tar歸檔文件中提取文件(解壓縮)
-f 輸出結果到文件或設備
-v 在處理文件時顯示文件(顯示處理進度)
-j 將輸出重定向給gzip2命令
-z 將輸出重定向給gzip命令
常見用法:
解壓:tar [參數] [待解壓包]
tar -zxvf Data.tar.gz #-zxvf可以當成固定用法,順序不能換
壓縮:tar [參數] <壓縮后文件名> [待壓縮文件/目錄]
tar -zcvf Data.tar.gz Data #-zcvf可以當成固定用法,順序不能換
打包和壓縮的區別:
打包是指將一大堆文件或目錄變成一個總的文件
壓縮是將一個大的文件通過一些壓縮算法變成一個小文件。
Linux 中很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆文件先打成一個包(tar命令),然后再用壓縮程序進行壓縮(gzip、bzip2或zip命令)。
7. 文件查找命令
7.1 which命令??
環境變量PATH中保存了查找命令時需要遍歷的目錄,使用echo \$PATH
可以查看當前系統的環境變量包含的目錄。
which命令用于查找并顯示給定命令的絕對路徑,which指令會在環境變量$PATH設置的目錄里查找符合條件的文件 。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
語法:which [可執行性的系統命令]
說明:which是根據使用者所配置的PATH變量內的目錄去搜尋可運行檔的!所以不同的PATH配置內容所找到的命令不一樣。
7.2 whereis命令
與which功能相似的還有一條命令whereis,也可以查找到命令的絕對路徑。不同的是:which會列出這個命令的別名記錄,而whereis會顯示出這個命令的幫助文檔所在位置。
語法:whereis(選項)(參數)
選項 | 說明 |
---|---|
-b | 只查找二進制文件; |
-B<目錄> | 只在設置的目錄下查找二進制文件; |
-f | 不顯示文件名前的路徑名稱; |
-m | 只查找幫助文檔; |
-M<目錄> | 只在設置的目錄下查找說明文件; |
-s | 只查找原始代碼文件; |
-S<目錄> | 只在設置的目錄下查找 原始代碼文件; |
-u | 查找不包含指定類型的文件。 |
whereis命令只能用于程序名的搜索,如果省略選項,則返回所有信息。
7.3 locate命令
格式:locate [搜索關鍵字]
說明:
1.是linux特有的命令,尋找文件或目錄,最好用于快速定位系統命令,配置文件等。
2.雖然搜索速度很快,但有時會找不到
3.locate是在文件數據庫中查找的,所以速度會很快
4.但是如果數據庫中沒有包含這個文件的話,就會找不到
7.4 find??
find命令用于:在一個目錄(及子目錄)中搜索文件,可以指定匹配條件,如按文件名、文件類型、用戶等條件查找文件。
格式:find [路徑] [選項] filename
path路徑,表示從這個路徑下開始查找
選項 | 說明 |
---|---|
-name filename | 查找名為filename的文件 |
-size +/-大小 | 按照文件大小來查找,+大于,-小于 |
-user username | 按文件所屬查找 |
-ctime/ -atime/ -mtime | 以天為單位查找 |
-cmin/ -amin/ -mmin | 以分鐘為單位查找 |
-type | 按文件的類型 |
-inum | 根據i節點進行查找 |
-group | 組名 按所屬組來查找 |
-a /-o | and/or |
-exec 或 -ok command {} : | 將查到的文件執行command操作,{}和:之間有空格,固定格式。 |
如果find命令省略路徑不寫,表示從當前路徑開始查找。find還可以結合通配符使用。
8. 其他常用命令
8.1 查看各命令的幫助手冊
man 命令名 查看命令幫助手冊
8.2 下載文件
wget
參考:https://wangchujiang.com/linux-command/c/wget.html
curl
參考:https://wangchujiang.com/linux-command/c/curl.html
8.3 設備監控
top\df\free\du
sudo獲得root權限:
ubuntu默認是不能以root賬號登陸系統,遇到需要root權限時,需要在命令前加上sudo,即可獲得root權限。