每周分享
1 硬碟分區挂載及指令别名
一般來說,硬碟分區有兩種類型:一種是GPT,但是隻支援總分區,現在很多家庭電腦Windows系統都是用這種分區類型;還有一種就是主流的MBR,主分區單塊硬碟上隻支援4個,如果有其它硬碟可以沒有主分區。主分區安裝OS。前提OS是安裝在激活的主分區,一塊硬碟隻有一個激活 狀态的主分區,在Linux中用(1-4)來表示。擴充分區在一塊硬碟上隻有一個,不可以直接存放資料,可劃分成邏輯分區。邏輯分區是在擴充分區裡劃分出來的。邏輯分區數字編号必須是在“5”開始劃分的。
一般來說,初建一個系統主分區有“/” “boot” “extend”和放資料的“data”就夠用,像虛拟記憶體swap就放在邏輯分區,一般是swap是記憶體的二倍,如果生産中記憶體很大就沒必要太大的虛拟記憶體,8G夠用。
例如一塊硬碟有200G,我們可以這樣劃分:
/dev/sda1 mount /boot 1G (啟動)
/dev/sda2 mount / 100G
/dev/sda3 mount /data 50G
/dev/sda4 extend 50G (擴充分區)
/dev/sda5 swap 2G swap不是檔案夾,它就是一個分區。(邏輯分區)。
一般系統中常見的檔案夾有:
/home放一些使用者資訊。
/boot放的是系統啟動相關。
/etc是放重要裝置工具的。
/var/log是放變量的
/dev是存放硬碟之類硬體裝置的。
/tmp存放一些臨時檔案。
/proc 虛拟記憶體(如果檔案夾沒有獨立挂載硬碟,那麼就自動挂載在“/”上,是以裝系統時至少分一個硬碟分區給“/”。)
2 指令及别名(alias)
由于計算機内部是二進制運作的,當使用者敲了一個指令,傳給一個軟體解釋給計算機,這個軟體就叫shell;shell提供了使用者與核心進行互動操作的一種接口;也被稱為Linux的指令解釋器;同時它 也是一種進階程式設計語言。目前大部分Linux用的是bash;指令
echo $SHELL
檢視目前shell。可以使用指令
cat /etc/shells
檢視目前系統支援的所有shell類型。指令分為内部指令和外部指令
type
可以檢視是内部還是外部指令。
當然,一個系統中最重要的就是管理者root啦,root和普通使用者的差別是:UID,如果UID為0,就是管理者,其它為普通使用者,id -u 可檢視目前使用者的UID。也可以id -u user 檢視其它使用者的UID。關于linux有一些剛建好系統很實用的小指令,例如:
lsb_release -a
檢視系統版本号。
uname -r
檢視系統核心版本。
tty
檢視目前登入終端裝置。
free -h
檢視系統記憶體大小,以及占用記憶體大小。其中-h是顯示詳細資訊。
如果記憶體占用比較大,由于圖形界面比較占記憶體,
init 3
關閉圖形界面。
runlevel
檢視目前的模式,也可以看到在哪個模式切換過來=who -r。
init
(-0是關機;-6是重新開機;-5進入圖形界面;-3關閉圖形界面;-2進入字元界面。)
enable
可以顯示所有内部指令,
enable -n cmd
可以禁用内部指令。不加-n啟用指令。同時enable也可以把自己禁用,但是隻是臨時生效,重新開機恢複。
which
隻是用來檢視外部指令的,
echo $PATH
檢視外部指令的路徑。
hash
顯示緩存指令
hash -r
删除所有緩存指令。
*****
更改指令别名也要寫入文檔。home目錄下的 .bashrc檔案裡。
alias可以檢視所有定義的指令别名。
unalias可以删除别名,當然也要在.bashrc檔案裡文檔删除。
~/.bashrc隻對目前使用者有效;etc/bashrc對所有使用者有效。
如果已經寫入文檔,不想重新開機,可以使用.重讀别名文檔。(其中.等于source)。指令前加"\"可以忽略别名,執行原指令。
**
指令的執行過程:别名優先,其次是内部指令,再次是hash表内的指令(hash表裡面的都是外部指令),最後是$PASH外部指令。如果都沒有就會報錯。
*****
本小節中有一個很有趣的就是指令提示符變色。
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
更改提示符顔色
PS1="\[\e[1;32m\][\[\e[0m\]\t \[\e[1;33m\]\u\[\e[36m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
可以另提示符更加的花哨。
echo $PS1
顯示提示符格式。(其中u為使用者名;h為主機名;w為目前目錄;)
寫入磁盤文檔可以放入
/etc/profile.d/env.sh
;其中env.sh(env是環境的意思)是需要自己建的。可以使用nano寫入,也可以使用vim。退出重新登陸就ok了。
- Ubuntu可以使用sudu -i 進入root權限寫入文檔。nano .bashrc。
3 幫助( man help
)
man help
whatis
本身是一個外部指令,但是往往一個指令有很多章節,使用
whatis cmd
直接檢視指令的有多少章節,然後直接鍵入自己需要的章節,例入
man # cmd
;或者
cmd # --help
。關于man最好用的就是使用less清單來實作了,
space, ^v, ^f, ^F
: 向檔案尾翻屏
b, ^b
: 向檔案首部翻屏
d, ^d
: 向檔案尾部翻半屏
u, ^u
: 向檔案首部翻半屏
RETURN, ^N, e, ^E or j or ^J
: 向檔案尾部翻一行
y or ^Y or ^P or k or ^K
:向檔案首部翻一行
q
: 退出
#
:跳轉至第#行
1G
: 回到檔案首部
G
:翻至檔案尾部
通過本地文檔擷取幫助
System->help(centos6) Applications -> documentation->help(centos7)
提供的官方使用指南和發行注記
/usr/share/doc
目錄 多數安裝了的軟體包的子目錄,包括了這些軟體的相關原理說明
常見文檔:
README INSTALL CHANGES
适合其它地方的文檔的位置 配置檔案範例
HTML/PDF/PS
格式的文檔 授權書詳情
最重要的一句話就是
“擷取幫助的能力就是技術的能力”
*****
為了避免程序突然終止,可以運作screen; 如果同一台伺服器上兩個人,其中一個人有解決不了的 求助人可以運作screen -S name ,然後解決人可以輸入screen -x 加對方的名字。解決人可以臨時退出CTRL+A+D ,但是并不完全退出。前提是同意伺服器同一使用者。
4 檔案及檔案夾的建立,複制,删除和軟硬連接配接
檔案名最長255個位元組 包括路徑在内檔案名稱最長4095個位元組 藍色-->目錄 綠色-->可執行檔案 紅色-->壓縮檔案 淺藍色-->連結文 件 灰色-->其他檔案 除了斜杠和NUL,所有字元都有效.但使用特殊字元的目錄名和檔案不推薦使用, 有些字元需要用引号來引用它們 标準Linux檔案系統(如ext4),檔案名稱大小寫敏感 例如:MAIL, Mail, mail, mAiL
建立檔案
touch
指令 格式:
touch [OPTION]... FILE... -a
僅改變 atime和ctime -m 僅改變 mtime和ctime -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的時間戳 -c 如果檔案不存在,則不予建立 。需要注意的是touch建立新檔案會重新整理檔案修改時間 ,
>
會覆寫檔案。
>>
建立檔案原資料不會丢失,隻是追加。
> >>
不是指令,touch是外部指令。
建立檔案夾
mkdir
建立目錄 -p: 存在于不報錯,且可自動建立所需的各目錄 -v: 顯示詳細資訊 -m MODE: 建立目錄時直接指定權限 。
複制
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
SRC是檔案: 如果目标不存在:建立DEST,并将SRC中内容填充至DEST中 如果目标存在: 如果DEST是檔案:将SRC中的内容覆寫至DEST中 基于安全,建議為cp指令使用-i選項 如果DEST是目錄:在DEST下建立與原檔案同名的檔案,并将SRC中内容 填充至新檔案中 。
cp SRC... DEST
SRC... 多個檔案 DEST 必須存在,且為目錄,其它情形均會出錯
cp SRC DEST
SRC是目錄:此時使用選項:-r 如果DEST不存在:則建立指定目錄,複制SRC目錄中所有檔案至DEST中 如果DEST存在: 如果DEST是檔案:報錯 ; 如果DEST是目錄:缤購。
cp
常用選項
-i
覆寫前提示
-n
不覆寫,注意兩者順序
-r, -R
遞歸複制目錄及内部的所有内容
-a
歸檔,相當于
-dR --preserv=all
;
-d --no-dereference
--preserv=links 不複制原檔案,隻複制連結名。
移動(Windows剪切)
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE... 常用選項: -i 互動式 -f 強制 -b 目标存在,覆寫前先備份 。
删除
rm [OPTION]... FILE...
常用選項: -i 互動式; -f 強制删除; -r 遞歸; --no-preserve-root 删除/ ; 示例:
rm -rf /*
軟硬連接配接
每個檔案的節點編号都是唯一 而且可以重複利用的 ,
ll -i
檢視檔案的節點編号。
df -i
可以檢視挂載點可用的節點編号。
硬連接配接不允許跨分區,用
ln file
新連結名稱;建立新連接配接。名字之間互不幹擾,删除其中一個不影響檔案。
軟連接配接可以跨分區和裝置。通過
ln -s file newfile
來建立。
軟連接配接如果原始檔案要寫相對路徑的話,要相對于軟連接配接的相對路徑,不是目前目錄的相對路徑。(原始檔案相對于軟連接配接,軟連接配接相對于目前目錄。)
删除軟連接配接的時候注意後面不要加/,不然它就會删除檔案夾裡面的内容,應該像删除檔案一樣。
硬連接配接和軟連接配接的差別:硬連結ln 軟連結ln -s
1本質:硬連接配接:同一個檔案多個名字,軟連接配接是不同的檔案;
2軟連接配接可以跨分區,硬連接配接不可以;
3連結數,建立軟連接配接不增長連接配接數,硬連接配接增長;
4軟連接配接依賴源檔案,如果源檔案被删除就會報錯;
5檔案類型不一樣,硬連接配接源檔案是什麼屬性就是什麼屬性,軟連接配接l開頭,屬性不同。
5使用者群組的權限
使用者管理指令 useradd usermod userdel
(建立,修改,删除使用者)
useradd usermod userdel
組帳号維護指令 groupadd groupmod groupdel
(建立,修改,删除組)
groupadd groupmod groupdel
useradd
useradd [options] LOGIN
-u
UID;
-o
配合-u 選項,不檢查UID的唯一性 ;
-g
GID 指明使用者所屬基本組,可為組名,也可以GID ;
-c
"COMMENT“ 使用者的注釋資訊 ;
-d
HOME_DIR 以指定的路徑(不存在)為家目錄 ;
-s
SHELL 指明使用者的預設shell程式,可用清單在/etc/shells檔案中 ;
-G
GROUP1[,GROUP2,...] 為使用者指明附加組,組須事先存在 ;
-N
不建立私用組做主組,使用users組做主組;
-r
建立系統使用者 CentOS 6: ID<500,CentOS 7: ID<1000 ;
-m
建立家目錄,用于系統使用者 ;
-M
不建立家目錄,用于非系統使用者 。
usermod
usermod [OPTION] login
-u
UID: 新UID
-g
GID: 新主組
-G
GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組将會被 覆寫;若保留原有,則要同時使用-a選項
-s
SHELL:新的預設SHELL
-c
'COMMENT':新的注釋資訊
-d
HOME: 新家目錄不會自動建立;若要建立新家目錄并移動原家資料, 同時使用-m選項
-l
login_name: 新的名字
-L:
lock指定使用者,在/etc/shadow 密碼欄的增加 !
-U:
unlock指定使用者,将 /etc/shadow 密碼欄的 ! 拿掉
-e
YYYY-MM-DD: 指明使用者賬号過期日期
-f
INACTIVE: 設定非活動期限
userdel
userdel [OPTION]... login
-r
: 删除使用者家目錄
groupadd
groupadd [OPTION]... group_name
-g
GID 指明GID号;[GID_MIN, GID_MAX]
-r
建立系統組 CentOS 6: ID<500 CentOS 7: ID<1000
groupmod
groupmod [OPTION]... group
-n
group_name: 新名字
-g
GID: 新的GID
groupdel
groupdel GROUP
簡單而且粗暴。
chmod(修改權限)
chmod [OPTION]... OCTAL-MODE FILE...
-R
: 遞歸修改權限
chmod [OPTION]... MODE[,MODE]... FILE...
MODE
: 修改一類使用者的所有權限
u= g= o= ug= a= u=,g=
修改一類使用者某位或某些位權限
u+ u- g+ g- o+ o- a+ a- + -
chmod [OPTION]... --reference=RFILE FILE...
參考RFILE檔案的權限,将FILE的修改為同RFILE
passwd(設定密碼)
passwd [OPTIONS] UserName
: 修改指定使用者的密碼
常用選項:
-d
:删除指定使用者密碼
-l
:鎖定指定使用者
-u
:解鎖指定使用者
-e
:強制使用者下次登入修改密碼
-f
:強制操作
-n
mindays:指定最短使用期限
-x
maxdays:最大使用期限
-w
warndays:提前多少天開始警告
-i
inactivedays:非活動期限
--stdin
:從标準輸入接收使用者密碼
示例:
echo "PASSWORD" | passwd --stdin USERNAME
在linux中
/etc/passwd:放使用者機器屬性資訊(名稱,uid、主組id等)
/etc/group:放組及其屬性資訊。
/etc/shadow:放使用者密碼及其相關屬性。
/etc/shadow:放組密碼及其相關屬性。
*****
*****
另外,值得注意的是,在ubuntu預設不讓登入root權限,可以使用普通使用者sudo -i 切換到管理權限,輸入普通使用者的密碼。但是這個賬号是安裝系統是系統給與這個賬号的,建立賬号沒有權限切換root。但是Ubuntu預設root不讓遠端,隻能本地登入。其它賬戶不能切換賬戶。
轉載于:https://blog.51cto.com/14322562/2397103