天天看點

關于Linux的基礎中的基礎和一些基礎小指令每周分享************3 幫助(man help)*****4 檔案及檔案夾的建立,複制,删除和軟硬連接配接5使用者群組的權限

每周分享

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

    

-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

繼續閱讀