关于Linux的基础中的基础和一些基础小命令
每周分享
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)
??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(創建,修改,刪除用戶)
組帳號維護命令 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
????-uUID: 新UID
????-gGID: 新主組
????-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被 覆蓋;若保留原有,則要同時使用-a選項
????-sSHELL:新的默認SHELL
????-c'COMMENT':新的注釋信息
????-dHOME: 新家目錄不會自動創建;若要創建新家目錄并移動原家數據, 同時使用-m選項
????-l login_name: 新的名字
????-L: lock指定用戶,在/etc/shadow 密碼欄的增加 !
????-U: unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉
????-e YYYY-MM-DD: 指明用戶賬號過期日期
????-fINACTIVE: 設定非活動期限
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
????-ngroup_name: 新名字
????-gGID: 新的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:指定最短使用期限
????-xmaxdays:最大使用期限
????-w warndays:提前多少天開始警告
????-iinactivedays:非活動期限
????--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
總結
以上是生活随笔為你收集整理的关于Linux的基础中的基础和一些基础小命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [MySQL实践] 实践记录
- 下一篇: 意想不到!WordPress安全漏洞98