ls
查詢目錄中的內(nèi)容。
語法:
ls [選項] [文件或目錄]
選項:
-a 顯示所有文件潦蝇,包括隱藏文件款熬;
-l 顯示詳細信息;
-d 查看目錄屬性攘乒;
-h 人性化顯示文件大邢团!;
-S 按照文件大小排序则酝;
-i 顯示inode殉簸。
示例:顯示當(dāng)前目錄下面占用最大的前十個文件
ls -alhS | head
文件權(quán)限
-rw-r--r--
-表示文件類型(-實體文件 l軟連接文件 d文件夾)
rw-表示所有者
r--表示所屬組
r--表示其他人
r代表讀權(quán)限;w代表寫權(quán)限;x代表執(zhí)行權(quán)限般卑。
配合chmod命令武鲁,改變文件權(quán)限。通常蝠检,r用4表示沐鼠,w用2表示,x用1表示叹谁。如下示例:
chmod 700 <file> # 表示文件所有者具有讀寫執(zhí)行權(quán)限
chmod 600 <file> # 表示文件所有者具有讀寫權(quán)限
chmod 500 <file> # 表示文件所有者具有讀和執(zhí)行權(quán)限
另外饲梭,使用chmod命令時,還可以使用+ -進行權(quán)限的改寫操作本慕。其中排拷,u表示user侧漓,g表示group, o表示others. 如下示例:
? touch guagua
? ls -l guagua
-rw-r--r-- 1 DQ staff 0 7 20 20:09 guagua
? chmod u-rw guagua # 對user減少讀寫權(quán)限
? ls -l guagua
----r--r-- 1 DQ staff 0 7 20 20:09 guagua
? chmod o+rwx guagua # 對others增加讀寫執(zhí)行權(quán)限
? ls -l guagua
----r--rwx 1 DQ staff 0 7 20 20:09 guagua
cd
cd ~或者cd 進入家目錄
cd - 進入上次的目錄
cd .. 進入上級目錄
cp
復(fù)制文件
cp [選項] [原文件或目錄] [目標(biāo)目錄]
選項:
-r 復(fù)制目錄锅尘;
-p 連帶文件屬性復(fù)制;
-d 若源文件是鏈接文件布蔗,則復(fù)制鏈接屬性藤违;
-a 全復(fù)制,相當(dāng)于-pdr纵揍。
ln
鏈接命令
ln -s [原文件] [目標(biāo)文件]
選項:
-s 創(chuàng)建軟鏈接顿乒,無-s,則創(chuàng)建硬鏈接泽谨。
硬鏈接特征:
1.擁有相同的i節(jié)點和存儲block塊璧榄,可以看做是同一個文件;
2.可以通過i節(jié)點識別吧雹;
3.不能跨分區(qū)骨杂;
4.不能針對目錄使用。
5.修改原文件或者硬鏈接文件雄卷,另一個文件也被相等的修改搓蚪。
軟鏈接特征:
1.類似Windows的快捷方式;
2.擁有自己的i節(jié)點和block塊丁鹉,但是數(shù)據(jù)塊中只保存原文件的文件名和i節(jié)點號妒潭,并沒有實際的文件數(shù)據(jù);
3.修改任意文件揣钦,另一個文件隨之改變雳灾;
4.刪除原文件,軟鏈接不能使用冯凹;
5.在使用軟鏈接的命令時谎亩,原文件要使用完整(絕對)路徑。
locate
文件搜索,在后臺數(shù)據(jù)庫中按文件名搜索团驱,搜索速度更快摸吠。
locate 文件名
locate命令搜索的后臺數(shù)據(jù)庫為/var/lib/mlocate(CentOS 6.3)
更新數(shù)據(jù)庫:updatedb**。
命令搜索
1.whereis
whereis 命令名
搜索命令所在路徑及幫助文檔所在位置嚎花。
選項:
-b: 只查找可執(zhí)行文件寸痢;
-m: 只查找?guī)椭募?/p>
2.which
which 命令名
搜索命令所在路徑及別名。
find
搜索文件
find [搜索范圍] [搜索條件]
示例:
搜索~/Desktop/Linux
目錄及其子目錄下的txt文件:find ~/Desktop/Linux -name '*.txt'
紊选。
注意'*.txt'
要加''號啼止,否則搜索不出結(jié)果。
其他搜索:
find <fpath> -iname <file> 不區(qū)分大小寫搜索
find <fpath> -user root 按照所有者搜索
find <fpath> -nouser 查找沒有所有者的文件
find <fpath> <time類型> <time區(qū)間>
其中:time類型可以為atime兵罢,表示文件訪問時間献烦;ctime表示改變文件屬性時間;mtime表示修改文件內(nèi)容時間卖词。time區(qū)間示例:-10表示10天內(nèi)修改的文件巩那;10表示剛好10天前的當(dāng)天修改的文件;+10表示10天前修改的文件此蜈。
find <fpath> -size 25k 查找文件大小是25KB的文件
-25k 小于25KB的文件即横;
25k 等于25KB的文件;
+25k 大于25KB的文件裆赵。
注意:按照k搜索东囚,k小寫;按照M搜索战授,M大寫页藻。
find <fpath> -inum 262422 查找i節(jié)點是262422的文件
find <fpath> -size +20k -a -size -50k 查找fpath目錄及其子目錄下,大于20KB并且小于50KB的文件植兰。
-a 表示and份帐,邏輯與,兩個條件都滿足钉跷;
-o 表示or弥鹦,邏輯或,兩個條件滿足一個即可爷辙。
find <fpath> -size +20k -a -size -50k -exec ls -lh {} ; 查找fpath目錄及其子目錄下彬坏,大于20KB并且小于50KB的文件,并且顯示詳細信息膝晾。
-exec/-ok 命令 {} ;栓始,對搜索結(jié)果執(zhí)行操作。
grep
搜索字符串命令血当。
grep [選項] <字符串> <文件名>
在文件當(dāng)中匹配符合條件的字符串幻赚。
選項:
-i 忽略大小寫禀忆;
-v 排除指定字符串。
find命令與grep命令的區(qū)別
find 在系統(tǒng)當(dāng)中搜索符合條件的文件名落恼,如果需要匹配箩退,使用通配符(*?[]
)匹配,通配符為完全匹配佳谦;
grep 在文件當(dāng)中搜索符合條件的字符串戴涝,如果需要匹配,使用正則表達式進行匹配钻蔑,正則表達式為包含匹配啥刻。
man
幫助命令
man <命令名>
主要的幫助命令為:
1 User Commands: 查看命令的幫助
2 System Calls: 查看可被內(nèi)核調(diào)用的函數(shù)的幫助
3 C Library Functions: 查看函數(shù)和庫函數(shù)(C)的幫助
4 Devices and Special Files: 查看特殊文件的幫助(主要是/dev目錄下的文件)
5 File Formats and Conventions: 查看配置文件的幫助
6 Games et. Al.: 查看游戲的幫助
7 Miscellanea: 查看其它雜項的幫助
8 System Administration tools and Deamons: 查看系統(tǒng)管理員可用命令的幫助
查看命令擁有哪個級別的幫助
man -f <命令名>
相當(dāng)于命令whatis
,如搜尋man -f passwd
咪笑,結(jié)果如下:
passwd(1) - modify a user's password
passwd(1ssl) - compute password hashes
passwd(5), master.passwd(5) - format of the password file
slapd-passwd(5) - /etc/passwd backend to slap
因此可帽,可以進一步查詢man 1 passwd
或者man 5 passwd
,則會分別顯示出passwd的不同幫助文檔。
查看與命令所有相關(guān)的幫助
man -k <命令名>
相當(dāng)于命令apropos
,如搜尋man -k passwd
,結(jié)果如下:
CURLOPT_KEYPASSWD(3) - set passphrase to private key
SSL_CTX_set_default_passwd_cb(3ssl), SSL_CTX_set_default_passwd_cb_userdata(3ssl) - set passwd callback for encrypted PEM file handling
chkpasswd(8) - verifies user password against various systems
firmwarepasswd(8) - tool for setting and removing firmware passwords on a system
htpasswd(1) - Manage user files for basic authentication
kpasswd(1) - Kerberos 5 password changing program
kpasswdd(8) - Kerberos 5 password changing server
ldappasswd(1) - change the password of an LDAP entry
passwd(1) - modify a user's password
passwd(1ssl) - compute password hashes
passwd(5), master.passwd(5) - format of the password file
slapd-passwd(5) - /etc/passwd backend to slapd
slappasswd(8) - OpenLDAP password utility
查詢技巧
在幫助文檔中輸入/<字符串>,如/-d
能曾,則會搜索出文檔中所有包含-d的字符串,按鍵n
跳轉(zhuǎn)至下一處榕暇,按鍵p
跳轉(zhuǎn)至上一處蛆封。
其他幫助命令
1 <命令名> --help
如ls --help
2 help <命令名>
只能獲取shell內(nèi)部自帶的命令的幫助,如help cd
碎捺。(注釋:mac下不可用)
3 info <命令名>
獲取詳細命令的幫助
操作選項:
回車:進入子幫助頁面(帶有*
號標(biāo)記)
u:進入上層頁面
n:進入下一個幫助小節(jié)
p:進入上一個幫助小節(jié)
q:退出
常用快捷鍵
ctrl+c 強制終止當(dāng)前命令
ctrl+l 清屏
ctrl+a 光標(biāo)移動到命令行首
ctrl+e 光標(biāo)移動到命令行尾
ctrl+u 從光標(biāo)所在位置刪除到行首
ctrl+z 把命令放入后臺(并不是終止程序命令)
ctrl+r 在歷史命令中搜索
touch
創(chuàng)建文件路鹰。
連續(xù)創(chuàng)建多個文件可用如下命令,如連續(xù)創(chuàng)建10個文件
touch love_{1..10}_gua.txt
du
查看目錄的容量收厨。
du -h # 以對人類友好的方式顯示
du -d [0|1|2|3...] # 顯示查詢的目錄深度
? du -h -d 0 # 顯示當(dāng)前目錄容量
248K .
? du -h -d 1 # 顯示更深一層目錄容量
100K ./dq
36K ./gua
36K ./gua 2
36K ./gua 3
248K .
&&與||
通常情況下晋柱,&&表示邏輯與,||表示邏輯或诵叁。在Linux的shell中雁竞,就我個人理解,&&和||的用法為:
a && b 只有當(dāng)a為真時拧额,即返回值為0時(echo ?=!0)侥锦,b才執(zhí)行
aptitude
查看已安裝的程序文件信息
aptitude show <program>
例如:aptitude show python3將顯示以下信息:
軟件包: python3
狀態(tài): 已安裝
自動安裝: 否
Multi-Arch: allowed
版本號: 3.5.1-3
優(yōu)先級: 重要
部分: python
維護者: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
體系: amd64
未壓縮尺寸: 68.6 k
依賴于: python3.5 (>= 3.5.1-2~), libpython3-stdlib (= 3.5.1-3), dh-python
預(yù)依賴于: python3-minimal (= 3.5.1-3)
建議: python3-doc (>= 3.5.1-3), python3-tk (>= 3.5.1-2~), python3-venv (>=
3.5.1-3)
沖突: python3:i386
代替: python3-minimal (< 3.1.2-2), python3-minimal:i386 (< 3.1.2-2)
提供: python3-profiler, python3-profiler:any, python3-profiler:i386, python3:any
(= 3.5.1-3)
描述: interactive high-level object-oriented language (default python3 version)
Python
是一種交互式进栽、面向?qū)ο蟮母呒壵Z言;它帶有從網(wǎng)絡(luò)編程恭垦、系統(tǒng)管理快毛,到聲音和圖像處理
的各式類庫格嗅。
This package is a dependency package, which depends on Debian's default Python
3 version (currently v3.5).
主頁: http://www.python.org/
反引號(`)
在一串命令中,在反引號(`)之內(nèi)的命令將會被先執(zhí)行唠帝,而其執(zhí)行出來的結(jié)果將作為外部的輸入信息屯掖。
示例:
ls -l
locate crontab
結(jié)果如下:
dh@virtual-machine:~$ ls -lh `locate crontab`
-rw-r--r-- 1 root root 401 12月 29 2014 /etc/anacrontab
-rw-r--r-- 1 root root 722 4月 6 2016 /etc/crontab
-rw-rw-r-- 1 dh dh 89 4月 18 2018 /home/dh/crontab.tmp
-rwxr-sr-x 1 root crontab 36K 4月 6 2016 /usr/bin/crontab
-rw-r--r-- 1 root root 1.2K 5月 18 2016 /usr/share/bash-completion/completions/crontab
-rw-r--r-- 1 root root 28K 4月 6 2016 /usr/share/doc/cron/examples/crontab2english.pl
-rw-r--r-- 1 root root 2.5K 4月 6 2016 /usr/share/man/man1/crontab.1.gz
-rw-r--r-- 1 root root 892 12月 29 2014 /usr/share/man/man5/anacrontab.5.gz
-rw-r--r-- 1 root root 5.6K 4月 6 2016 /usr/share/man/man5/crontab.5.gz
-rw-r--r-- 1 root root 2.5K 6月 11 23:07 /usr/share/vim/vim74/syntax/crontab.vim
此時使用ls -lh $(locate crontab)
能達到同樣效果,但是locate crontab | ls -lh
卻不行襟衰。
此外懂扼,$()
和${}
的區(qū)別如下,容易被搞混:
$()
:這個小括號里放的是命令右蒲,和``反引號作用一樣阀湿,執(zhí)行這個命令;
${}
:這里面放的是變量瑰妄,用來引用的陷嘴。
創(chuàng)建指定大小的文件
dd if=/dev/zero of=gua bs=1K count=777
如上,創(chuàng)建了一個大小為777kb间坐,文件名為gua的空文件灾挨。
獲取當(dāng)前文件夾下文件的絕對路徑
ls $PWD/<文件名>