可執行文件,全部人均可以使用。node
/sbin/linux
可執行文件,管理員纔可用,有些文件也能夠執行,但要指定目錄,如:/sbin/ifconfig。正則表達式
以上兩個目錄可使用:echo $PATH,查看當前用戶包含使用哪些目錄的權限。shell
/usr/bin/ 和/usr/sbin/數據庫
系統非必須文件,如:Apache。 二者區別:
1, /usr/bin/下全部人都須要執行的文件,例如vim,可使用which vim來查看目錄。
2, /usr/sbin/下不是全部人都須要執行的文件,例如:Apache。vim
/dev/bash
保存大部分設備(硬件)文件。例如:/dev/sda:系統第一塊sata硬盤。這個千萬不要亂動。。。網絡
/home/less
系統建立的非root用戶的用戶的家目錄。編輯器
/lib/
庫文件夾。
/lib/modules/
內核模塊。內核放在:/boot/vmlinux-2.6.9-22.EL。固然你的系統多是其餘版本。這裏是2.6的版本。而/lib/modules/下是操做系統核心配套的模塊,有以下文件:
/media、mnt
/proc/
當前內存中的值。若是不啓動系統,就沒有任何文件。
/var/
可變文件。如/var/log、/var/mail等。
/boot/
1.kernel
2.grub:放bootLoader。
/etc/
放配置文件。如:/etc/passwd。
/opt/
第三軟件的目錄。
/root/
root用戶主目錄。
/etc/inittab
配置是否啓動圖形界面。
id:5:initdefault: 改成 id:3:initdefault: 這樣開機默認不啓動圖形界面。
startx
啓動圖形界面。
ctrl+alt+F1
第一個是圖形界面,之前是F7是圖形界面。
ctrl+alt+F2
啓動第一個文本界面。
system-config-network
安裝後網絡默認不啓動,上述命令是配置網絡。eth0:爲第一個網卡,後面一次類推。
ONBOOT=no 因此重啓後沒有默認開啓,改成yes便可。service network restart:重啓network. 配置重啓後,ifconfig,發現eth0仍是沒有啓動。
這時用命令: vim /etc/sysconfig/network-scripts/ifcfg-eth0 保存了網卡eth0的配置文件。
Device not managed by NetworkManager:這個錯誤須要重啓一下NetworkManager 服務,執行下面命令便可:
service NetworkManager restart
tab鍵
一下是補齊命令,兩下是顯示當前輸入的全部候選。
man
--help
ls --help 查看幫助。
cd
cd .. 上級目錄
cd - 回到上次跳轉過來的文件夾
cd 或 cd ~ 回到當前用戶主目錄
pwd
查看當前所在目錄。
touch
建立文件
↑、↓、history
查看執行過的命令。
ls -F 查看文件類型 可執行:* 。目錄:帶/。 ll
file
file /etc/passwd 能夠查看文件類型
alias 查看別名
alias ii='ls -l' 定義別名:ii等於執行 ls -l,不會永久生效。
unalias ii :取消別名。
vi ~/.bashrc 而後把別名複製進去,保存退出。 別名永久生效。
mv
mv a b: 更名
mv a /tmp/c
cp
cp -r 複製文件夾
cp a /tmp/d
cp -r /etc/ /tmp/ 賦值文件夾
rm
rm -r 刪除文件夾
rm -rf 不詢問刪除
cat
cat /etc/passwd
more
more /etc/passwd 按空格,只能順序往下一頁。
less
less /etc/passwd 上下翻滾均可以。
head
查看文件前10行,如:head text。
tail
查看文件末尾10行,如:tail text。
tail -f + 文件名
如:tail -f text ,動態查看文件,若是文件末尾有變化,會動持續動態展現,多用於查看部署日誌,按ctrl+c退出查看。
vi
i:insert模式。
: 命令行模式。
u: undo,取消上次操做。
ctrl+r: redo,再作一次。
q
q! 也能夠ZQ
wq 也能夠ZZ
echo
echo aaaaaaaaaaaaa :屏幕打印aaaaaaaa
echo $HOME 查詢變量 HOME的值。
echo $USER
返回USER變量的值。
AAA=sss
echo AAA :屏幕打印AAA
echo $AAA : 屏幕返回sss
su - ttt :切換到ttt用戶 。exit 退出返回前用戶
useradd
添加用戶rick: useradd rick
passwd
更改rick用戶密碼:passwd rick。 (root用戶能夠隨意更改,其餘其餘用戶須要設置複雜密碼,好比大小寫數字字母組合等。)
useradd
useradd rick :添加用戶rick
useradd rick都作了哪些操做呢?
vi /etc/shadow 在文件裏添加rick的密碼。vi /etc/passwd 打開這個文件,會發現添加了 rick的記錄。用冒號分隔,其中第一個是用戶名,x表明這個用戶有登陸密碼,若是把x刪除,則這個用戶不須要密碼登陸,500是用戶序號,501是組序號,501後面::中間位置是這個用戶的備註,相似於comment,這裏爲空。而後/home/xxx是用戶的主目錄。再後面是登陸後的shell,這裏/sbin/nologin是指不容許登陸,正常狀況下應該是/bin/bash。這裏說下,用戶id和組id都是從500開始的,500以前是系統保留序號。
/etc/shadow
用於儲存用戶密碼的文件。如圖能夠看到 xxx的密碼是一串亂碼,是用MD5加密過的。
兩個$中間是個閾值,後面纔是密碼。後面:13822:是一個unix time,以1970年1月1日開始到如今多少天,1970年1月1日就是1。:0:表示密碼的最短歷史,若是是0,表示馬上就能夠更改密碼,若是是1則表示一天後才能夠更改密碼。:99999:是密碼最長曆史,若是設置30,則表示密碼30天過時。:7:表示密碼過時前多少天通知你。:7:後面的冒號之間表明着密碼過時後仍然可用的天數。最後兩個冒號中間表明這個帳號禁用的unix time,若是最後是:1:,那麼表明這個帳號1970年1月1日就禁用了。
以爲以上記不住怎麼辦?
man 5 shadow, 能夠查詢shadow文件的具體意義。5,指配置文件。
man 5 shadow
能夠查詢shadow文件的具體意義。5,指配置文件,上圖。
vi /etc/group 在文件裏添加用戶的組,建立rick用戶,同時出現一個rick的組。
/etc/group
vi /etc/gshadow 在文件裏添加組密碼。 /etc/gshadow組文件,能夠看到xxx組,最後一個冒號後面是組成員,若是要在組內添加成員能夠直接在對應組後面添加,如添加tom和lucy兩個成員:xxx:x:501:tom,lucy。可是若是添加到root:x:0:root後面添加用戶也不會使添加的用戶成爲管理員,由於linux只區分用戶id爲0和非0,而只有root用戶id爲0,其餘都是大於500的,加入root組最可能是對某些文件的權限變大了,仍然沒法成爲管理員。
用於保存組密碼,不多用。
/etc/login.defs
這個配置文件能夠設置最短密碼時間,最長密碼時間,最短密碼長度,密碼過時提醒時間,最小UID,這裏是500,最大UID,最小組ID(GID_MIN),最大組ID(GID_MAX)等。
mkdir /home/rick 建立用戶目錄。
cp -r /etc/skel/.* /home/rick/
chown -R rick.rick /home/rick/
passwd
userdel
groupadd
groupdel
gpasswd
組密碼。
gpasswd -M rick,tom,lucy root
把多個用戶指定到一個組,這裏是把3個用戶rick,tom,lucy加入到root組。 goupdel
usermod -G root,bin,todd rick 把rick指定到 root,bin,todd 組下面。若是再執行一下,usermod -G root rick 則rick只屬於root組,其餘組會被去掉。可用id rick來查看相關信息。
id rick
能夠查看用於的uid,gid,groups,即用於id,組id和所屬的組。
users
查看當前系統登陸用戶。
who
查看當前登陸本機的用戶及來源。如哪一個控制檯登陸的,若是從外部訪問到本機或者startx打開xwindow,就是pts,若是本地開啓控制檯就是tty。
w
查看當前登陸本機用戶和運行程序。若是遠程登陸能夠看到ip,其餘信息包括:登陸時間、空閒時間、運行時佔cpu的時間、當前在運行什麼命令,若是想要強制讓登陸者退出可使用:skill -9 pts/3,這樣登陸在pts/3的用戶就被斷開了。
write
能夠寫信息給其餘登陸用戶。mesg:是否能夠給別人寫消息。
wall
給全部人寫消息,例如: wall time for eating。
last
查看用戶的登陸日誌。
lastlog
查看每一個用戶最後登陸的狀況。每一個用戶最後登陸的時間。
finger
如:finger rick,查看用戶信息。查看用戶信息和最後登陸時間。
ls -al
分別是文件類型(第一個字符)、所屬者權限(3個字符,r:讀,w:寫,x:執行)、組權限(3個字符)、其餘人權限(3個字符)、連接數、所屬者、所屬組、連接數、全部者、全部組、文件大小、修改時間、文件名。
inode
inode(發音:eye-node)譯成中文就是索引節點,它用來存放檔案及目錄的基本信息,包含時間、檔名、使用者及羣組等。
stat a:能夠查看文件a的inode。
ln a b :建立一個b的硬連接,指向a只想的文件。 ln -s a b : 建立一個b的軟鏈接。
硬連接:不能跨分區,不能給目錄作硬連接。做用:防止文件被誤刪。
軟鏈接:能夠跨分區,能給目錄作軟鏈接。ln -s /etc eee:對文件夾/etc作軟鏈接,訪問eee就進入文件夾。
chmod
chmod u+x A :對A添加執行權限。
chmod go+x A :表示給group和others添加x權限。
chmod a-x A:給全部人減掉執行權限。
chmod a=rw A: 給全部人的權限設置成rw,即讀寫。
chmod -R g+w /tmp : 對/tem下全部文件和文件夾賦予所屬組的讀權限。
u、g、o、a分別表明:u:全部者。g:group,組。o:others,其餘用戶。a:all,全部人。 +、-和rwx組合進行設置權限。 chmod 777 A:對全部人賦予A文件的讀、寫、執行權限。4:讀。2:寫。1:執行。加起來就是對應的權限,三個7分別表明,全部者,所屬組,其餘人的權限。
chmod 046 A:假設文件全部者時rick,那麼rick對A文件有什麼權限?
答案是:沒有任何權限,雖然所屬組有讀的權限,可是權限不會疊加。
chown
chown rick b:把b文件的擁有者改成rick。
chown rick.root b:把b文件的擁有者改成rick,擁有組改成root組。
chown .root b 或 chown :root b:只把b文件的擁有組改成root組。
chgrp root b:等價於上一句,只把b的擁有組改成root組。 chown -R rick.root /tmp/ :把tmp文件夾下全部文件的擁有者改成rick,擁有組改成root組。
ls -ld testdir/
-d : 看文件夾的權限。
文件夾權限:
r : ls,在文件夾下ls的求權限,固然若是隻有r權限,無法ls,由於沒法cd進去。
w :
1, touch a,在文件夾下建立文件的權限。
2,隨意改寫(vi、vim)其餘人的文件的權限,若是修改後wq不行,能夠wq!:強制保存退出。
3,rm :刪除其餘人文件的權限。
x : cd,能不能cd到該文件夾下的權限。
r-x : cd、ls,權限。
-wx : cd、touch、rm(self、others)、vi(self、others)修改本身和別人的文件。
-wxt :cd、touch、rm(self)、vi(self),只能刪除、修改本身的文件。
如何加t權限?
chmod o+t testdir/ 或 chmod 1703 testdir/ :對others(其餘用戶)賦予文件夾testdir/的t權限。這時ls -ld testdir/ 以下:
drwx----wt,原來的x變成了t。
其實從x權限變爲t權限,權限是變低了。
其實能夠看/temp文件夾的權限:
ls -ld /temp : 權限是 rwxrwxrwt,這就是t權限的一個例子,由於臨時文件夾,全部用戶均可以保存文件,運行文件,可是當前用戶不能影響其餘用戶,因此不能是x權限,即:不能刪除、修改其餘人的文件。
其餘權限:
SUID(強制位)、SGID(冒險位)、Sticky
umask
建立者 | 默認文件夾權限 | 默認文件權限 |
---|---|---|
root | 755 | 644 |
others | 775 | 664 |
root用戶下輸入umask,會發現返回值是0022。其餘用戶登陸下umask返回是0002。因此根據每一個用戶的umask能夠判斷每一個用戶建立的文件和文件夾的默認權限。例如:root建立的文件夾是755權限,加上022,正好是777,建立的文件夾是644,加上022,是666。而others的umask是0002,因此others建立的文件夾應該是777-002,就是775,而others建立的文件的權限是666-002,是664。
查看umask值:
vi /etc/bashrc
編輯命令包括:ed、sed、emacs、vi、vim等。這裏主要介紹vim。
/bin/vi 和 /usr/bin/vim, VIM : Vi IMproved,簡單來講vim就是vi的升級版。不過不少系統vi是有alias(別名),因此執行vi就是執行vim,而有些系統(如:RHEL5)沒有這個別名,這點須要注意。能夠經過:alias命令查看別名。
命令模式
vim /tmp/aaa,剛進入vi和vim之後是命令模式。
vim進入輸入(insert)模式命令:
i: 在光標當前位置進入輸入模式。 若是先按一個數字,如,5i:5再按i,輸入:hello,那麼按esc退出後會輸入5個hello。
I: 在光標所在行的頭部進入輸入模式。
a: 在當前光標的下一個字符進入輸入模式。
A: 在當前光標所在行的末尾進入輸入模式。
o: 在當前光標所在行之下開啓新的一行進入輸入模式。
O: 在當前光標所在行之上開啓新的一行進入輸入模式。
s: 刪除當前光標所在字符,進入輸入模式。
S: 刪除光標所在行,進入輸入模式。
其實以上記住i就能夠了,其餘看興趣。
u: undo,若是操做後想回滾,能夠按u。
ctrl+r: redo,保留前一步的undo,好比刪除了,按u取消刪除,可是又想刪除了,就按ctrl+r:redo。
:e! : 放棄對當前文件的全部修改。
r: 替換一個當前光標所在位置的字符。
R: 一直替換字符,直到按esc退出爲止。
0: 到當前行頭部。
$: 到當前行的末尾。
G: 到文件末尾。
數字+G: 到文件的第幾行,如,10G:到文件的第10行。
:10 : 冒號+數字也是跳轉到那一行。 ctrl + G : 在最下面顯示文件一共多少行,如今位置的百分比。
w: 一次向後移動一個單詞。
[ : 移動到上一段。
] : 移動到下一段。
ctrl + b: 向上翻一頁。
ctrl + f: 向下翻一頁。
ctrl + u: 向上翻半頁。
ctrl + d: 向下翻半頁。
ctrl + y: 向上翻一行。
ctrl + e: 向下翻一行。
/:正向查找,從文件頭開始查找,如:/test,查找test。
? : 反向查找,?test,如上例。
n: next,查找下一個符合條件的字符,與"/"和"?"組合使用。
N: 查找上一個,與"/"和"?"組合使用。
:set ignorecase: 查找忽略大小寫。 :set noignorecase: 查找不忽略大小寫。
x: 刪除一個字符,3x:刪除3個字符。 dd: 剪切一行,也能夠當作刪除,3dd : 剪切3行。
dw: 剪切一個單詞,5dw : 剪切5個單詞 yy: 複製一行,3yy : 複製3行。
p: 粘貼。 "byy : 在光標所在位置複製1行到剪切板b。 "5ayy : 表示使用剪切板a,在光標所在位置複製5行到剪切板a。
"ap : 把剪切板a中的內容粘貼出來,也就是指上面複製的那5行內容。
"bp : 把剪切板b中的內容粘貼出來,也就是上面複製的那一行內容。
:q : 退出(命令行模式)。
:q! : 強制退出(命令行模式)。
:wq : 保存修改並退出(命令行模式)。
:wq! : 強制保存修改並退出(命令行模式)。
ZQ : 不保存退出(命令模式)。
ZZ : 保存退出(命令模式)。
vim命令行模式
":" : 冒號進入命令行模式。
:set nu : 顯示行號,只有這次生效。
:set nonu : 取消顯示行號。
:set ruler : 在底部顯示光標所在行列的數值。
:set autoindent : 正文自動縮進。
:20 :也能夠跳轉到目標行,此例跳轉到20行。
:q : 未作更改退出。
:q! : 放棄更改,強制退出。
:w :寫入。
:w! : 強制寫入。
:wq : 保存修改並退出。
:wq! : 強制保存修改並退出。
:w + 文件名 : 寫入其餘文件,如,":w a.test",就會在當前目錄新生成一個a.test文件,保存這個文件的修改內容。
:w >> a.test : 追加寫入,若是要在已存在的文件末尾進行追加寫入,能夠用。
:1,5 w >> a.test :當前文件第1行到第5行追加寫入文件a.test。
:1,$ w >> a.test : 這裏%表明最後一行,即,從第一行到最後同樣。
r : 在當前光標位置讀入文件,例如,":r /etc/test",就會把/etc/test文件讀入到當前光標的位置。
r !ls : 能夠把ls命令讀取到當前光標位置。
e + 目標文件名 : 放棄修改文件,打開目標文件。
:e! : 放棄對當前文件的全部修改。
:1,$s/source/target/g : 1,$表示第一行到最後一行,s,是s型替換source,表明要被替換的字符串。target,表示替換成什麼字符串。g,表明不詢問,直接替換。
複製代碼
:1,$s/source/target/c : 詢問替換,替換按y,不替換按n。其餘和上面命令同樣。
vim -o /tmp/a /tmp/b :同時打開兩個文件,橫屏展現。
ctrl + w + ↓ : 切換到下面文件的窗口。
vim -O /tmp/a /tmp/b : 同時打開兩個文件,豎屏展現。
~/.vimrc 文件是vim的配置文件。若是想要讓每次進入vim讓一些命令都生效,能夠配置此文件。
好比要配置每次vim之後文件都顯示行號,則在~/.vimrc裏面添加命令":set nu",而後":wq",保存退出便可。
想要修改ls的後特殊文件的顏色,能夠修改/etc/DIR_COLORS文件,vi /etc/DIR_COLORS通常查找可執行文件,如:which ls,執行結果以下圖,能夠看到返回連個ls命令,能夠看到優先執行的事alias的ls。其餘例子:which vi、which cd等等。
which查找範圍是以下文件夾,通常是存放可執行文件的,因此查找普通文件不該該是用which。
除了查找可執行文件,也能夠查詢少許其餘文件,除了查找文件位置,還會顯示幫助文檔位置。如,whereis ls,以下圖,不但顯示ls位置,還顯示幫助文檔位置,下面兩行也能夠看出whereis的查找範圍,仍然是那幾個可執行文件的目錄。
快速查找,可是須要查詢數據庫。今天新加入的文件通常再也不數據庫中,會查不到,可是歷史文件能夠快速查找到,若是要查找今天的文件能夠先更新數據庫:
updatedb
複製代碼
而後在查找。
locate file_name (精確查找)
locate -r '.*file_name.*' (模糊查找包含file_name的文件,-r:使用正則表達式。)
複製代碼
若是沒有更新數據庫則會提醒:
題外話,/etc/cron.daily/文件夾天天都會執行,其中就包括updatedb的命令,以下圖:
locate和slocate區別:可使用命令:
ls `which locate` -l
複製代碼
從上面能夠看出,locate是slocate的一個軟連接。
find [路徑] [參數] [表達式]
find / -name file_name (精確查找)
find / '*file_name*' (模糊查找包含file_name的文件,注意和locate模糊查找的區別。)
以上兩條命令表示從根目錄/開始查找
複製代碼
展現文件詳情:
find /etc -name "*network*" -ls
複製代碼
展現文件類型:
find /etc -name "*network*" -exec file {} \;
複製代碼
find /home -name "*file_name*" -ok rm {} \;
複製代碼
-ok表示詢問,這裏表示詢問是否刪除,若是是-exec就不詢問直接刪除了。
查找所屬用戶的文件:
find /home -user user_name -ls
複製代碼
複雜查詢
find /home -user user_name -o -group gourp_name -a -type d
複製代碼
-o表明or,-a表明and,-type能夠指定查找的文件類型,d表示文件夾(若是是f則表示文件)。那麼上面語句的意思就是: 在/home文件夾下查找文件全部者(-user)是user_name或者(-o)文件全部組(-group)是group_name而且(-a)文件類型是文件夾(-type d)的文件。
其餘參數:
find / [-user -type -name -group -perm(權限) -size -mtime] [-ok|exec] [ls|rm等]
複製代碼
查詢系統中權限是777的危險文件夾:
find / -perm -777 -type d -ls
複製代碼
複習一下:
查詢文本內容,如a.text文件中有hello字樣,能夠查找hello而不是文件名。
在etc目錄下查找包含shrek字樣文件內容的文件,若是一個文件出現屢次,也會多行展現。
grep -R shrek /etc
複製代碼
grep -R -l shrek /etc
複製代碼
compress uncompress gzip gunzip zip unzip tar
gzip file_name
bzip2 file_name
複製代碼
源文件會被刪除,生成一個file_name.gz或file_name.bz2文件,bzip2壓縮比例高於gzip。
gunzip file_name
gzip -d file_name
bunzip2 file_name
bzip2 -d file_name
複製代碼
解壓文件。
tar cvf /tmp/target_package.tar /tmp/source_file1 /tmp/source_file2 /tmp/source_dir/ (後面可繼續追加)
複製代碼
將文件/tmp/source_file1和文件/tmp/source_file2和文件夾/tmp/source_dir/打包成/tmp目錄下的target_package.tar文件。後面能夠羅列更多須要打包的文件和文件夾。
打包並壓縮:
tar cvfz /tmp/target_package.tar.gz /tmp/source_file1 /tmp/source_file2 /tmp/source_dir/ (後面可繼續追加)
tar cvfj /tmp/target_package.tar.bz2 /tmp/source_file1 /tmp/source_file2 /tmp/source_dir/ (後面可繼續追加)
複製代碼
z表明gzip壓縮,j表明bzip壓縮。
拆包並解壓縮:
tar xvfz /tmp/target_package.tar.gz /target_dir
tar xvfj /tmp/target_package.tar.bz2 /target_dir
複製代碼
z表明gzip壓縮,j表明bzip壓縮。
tar rvf /tmp/target_package.tar /tmp/source_file1 /tmp/source_file2 /tmp/source_dir/ (後面可繼續追加)
複製代碼
/tmp目錄下原來有一個target_package.tar文件,想繼續將其餘文件追加到這個包裏面,用上面命令。
tar xvf /tmp/target_package.tar (解壓到當前目錄)
tar xvf /tmp/target_package.tar -C /tmp/target_dir/ (解壓到指定目錄/tmp/target_dir/)
複製代碼
tar tvf /tmp/target_package.tar 查看打包文件
tar tvfz /tmp/target_package.tar.gz 查看打包壓縮文件
tar tvfj
複製代碼
查看目標包內容。
cut -d: -f1 /etc/passwd
複製代碼
cut切割文件/etc/passwd,"-d:" 表明以冒號爲分隔符;f1表明取第一列。
grep root /etc/passwd | cut -d : -f7
複製代碼
查看用戶root用的是哪一個shell。
cut -c1-3 /etc/passwd
複製代碼
取第1到第3個字符。
sort -t: +2 -n /etc/passwd
複製代碼
sort排序,將文件/etc/passwd文件,"-t:" 按照逗號分隔,"+2",第三列;"-n",按照數字方式排序。
sort -t: +2 -n /etc/passwd > /tmp/test
複製代碼
將結果輸出重定向到/tmp/test文件裏。
能夠經過top命令查看cpu目前運行狀況。其中load average後面3個數字分別表示過去1分鐘、5分鐘、15分鐘cpu的平均負載狀況。
平均負載:單位時間內,系統處於可運行狀態和不可中斷狀態的平均進程數,也就是平均活躍進程數。
可運行進程:是指正在使用CPU和正在等待CPU的進程,就是咱們經常使用ps命令查看的處於R狀態(Running和Runnable)的進程。
不可終端狀態:是指正處於內核態關鍵流程中的進程,而且這些流程是不可打斷的。好比最多見的是等待硬件設備的I/O響應,也就是咱們用ps命令看到的處於D狀態(Uninterruptible Sleep,也成爲Disk Sleep)的進程。
平均負載,能夠簡單理解爲平均活躍進程數,但實際上指的是活躍進程數的指數衰減平均值。
舉個例子:當平均負載爲2時,若是在2個cpu的系統上,那麼說明2個cpu正好徹底被佔用。若是在4個cpu的系統上,則說明cpu50%佔用、50%空閒。以此類推。
查看系統是幾核cpu:
grep 'model name' /proc/cpuinfo |wc -l
複製代碼
2.能夠查看文件:
vi /proc/cpuinfo
複製代碼