Centos7一些常用命令的不常用用法

2021-07-25 21:43:49 字數 2840 閱讀 1307

1. root下進入其他使用者主目錄

cd ~username

2. touch的另外的一種作用

常用的是touch建立乙個不存在的檔案

而touch乙個存在的檔案時候,touch會修改檔案的三個時間(使用stat可以檢視),其中access表示最後乙個訪問時間,modify表示最後一次修改檔案的時間,change表示最後修改檔案屬性的時間

3. file檢視檔案型別

映象檔案(iso)的檔案型別為iso9660

4./etc/passwd中各欄位對應解釋

1 使用者名稱:2密碼:3uid:4gid:5備註:6home目錄:7登入shell

該檔案的內容是通過useradd命令生成,每使用useradd一次,在/etc/passwd追加一行

需要注意的是rhcl6版本中0-500表示系統賬戶,而rhcl7版本依賴0-1000表示系統賬戶

useradd:

-u uid  #指定uid,不使用該選項,則預設為普通賬戶即uid>=1000,且不與現存uid衝突

-g 已存在gid/組名  #指定所屬使用者組,不選用該選項,同時預設在/etc/group檔案中追加一行資訊,其中組名預設與使用者名稱一致。

-g 指定附加組   #

-m 強制不建立home目錄

-s  指定登入shell   #/sbin/nologin為不可登入shell

相關命令還有userdel(刪除使用者)、usermod(修改使用者)、groupadd(增加使用者組)、groupdel(刪除使用者組)

userdel -r username  #刪除使用者的同時刪除home目錄下所有資訊

usermod -ag  username  #追加附加組

/etc/passwd中的密碼不再直接顯示,用x代替。密碼儲存在/etc/shadow(無任何可讀寫執行許可權)中,修改密碼使用passwd命令(互動式)實現。

非互動式修改密碼:echo "newpasswd"|passwd --stdin username

5. ls -l 命令顯示的資訊詳釋

第一行中total表示當前目錄下所有內容總共所佔大小,預設單位為kb

餘下行中的最後乙個欄位為為檔名,第6,7,8欄位表示檔案(目錄)最近訪問(修改)時間

第5個字段表示檔案所佔空間,預設單位為byte,可使用ls -lh以kb顯示

第3,4個字段分別描述檔案所屬的使用者名稱及屬主組

可使用chown 使用者名稱:組名  檔名/chown -r 使用者名稱:組名

目錄名 修改其屬主及屬主組

第2個字段表示該檔案的硬鏈結數  

第1個字段共10個字母。

第乙個字母表示檔案型別

-:普通檔案  d:目錄檔案   c:位元組檔案  b:塊檔案  p:管道檔案  s:socket檔案  等等

後9個字母,每三個為一組。第一組為當前使用者關於此檔案的操作許可權,第二組為屬主組內其他使用者的操作許可權,第三組為其他屬主組內使用者對此檔案的操作許可權

非目錄檔案: r(4)表示可讀,w(2)表示可寫,x(1)表示可執行

目錄:r表示可以檢視目錄下的內容  w表示可以向目錄裡寫內容  x表示可進入這個目錄 (只有wx同時存在才能真正在該目錄內操作)

建立乙個檔案或目錄預設的許可權通過如下獲取:

檔案:0666-umask(若umask的存在某位為奇數,計算之後必須在對應奇數字加1)

目錄:0777-umask

還有三種比較特殊的許可權:

分別是suid(4)、sgid(2)、sbit(1),這三種許可權分別顯示在三組字母的第三位。若分別為小寫的s,s,t,則表示擁有x許可權。對應為s,s,t,表示無對應的x許可權。

擁有suid許可權時,其他使用者執行這條命令,將會獲取該命令的擁有人許可權,可以訪問一些自身並沒有訪問許可權的檔案。

我們修改目錄的屬主組時,希望該目錄下所有檔案繼承該屬主組

從上圖可以看出,並沒有達到效果,我們增加sgid許可權,可以達到如期效果

使用者對擁有sbit許可權的目錄具有wx許可權時,使用者在該目錄下建立的檔案及目錄,只有自身與root才可以刪除。

6. 登入shell與非登入shell中一些知識

登入shell往往是通過使用者名稱及密碼登入系統時所用shell。

非登入shell則往往不需要使用者名稱及密碼

su - username屬於登入shell。而su username與非登入shell

非登入shell狀態通過exit退出,而登入shell狀態主要使用logout退出(exit也可以)

登入shell與非登入shell最主要的區別是讀取的配置檔案不同。這裡涉及四個配置檔案1:/etc/bashrc,2:/etc/profile,3:~/.bashrc,4:~/.bash_profile。

其中1,2為全域性層面,3,4是區域性層面;通常我們在1,3裡定義別名alias,在2,4定義變數。

非登入shell不會讀取2,4中的內容。通常編寫的shell指令碼出現定義的環境變數不存在,往往需要手動讓其生效(source或者.)。同時對1,2,3,4修改,必須通過source(.)讓其生效。

source(.)   、bash   及 (chmod u+x ; ./)執行指令碼的主要不同。

後兩者主要通過開啟乙個子程序去執行指令碼,執行結果返回給父程序。

而source(.)是在當前程序直接執行指令碼。下圖給出了乙個簡單的對比情況,source之後,當前shell程序直接結束。

還有一些關於變數的命令:

set:顯示及設定私有變數以及使用者變數

env:顯示及設定使用者變數變數

export:將本地變數上公升到乙個環境變數。不export,則定義的變數不會被其他非登入shell繼承。而即使export,登入到其他shell,也不會繼承該變數。同時定義的本地變數重啟失效,所以建議自選擇地加入上述四個配置檔案中。

CentOS 7常用命令

在開發中常用的一些命令。1 目錄切換 2 對目錄的操作 3 對檔案的操作 4 檔案的壓縮 解壓 5 許可權的操作 6 防火牆及埠管理 7 網路配置 8 系統資訊檢視 9 一些其他的命令 執行以下命令時需要注意自己對應系統的版本,不同的版本會稍有差別。cd 切換到根目錄 cd 切換到使用者跟目錄 cd...

CentOS 7常用命令

在開發中常用的一些命令。1 目錄切換 2 對目錄 資料夾 的操作 3 對檔案的操作 4 檔案的壓縮 解壓 5 軟體的安裝 6 許可權的操作 7 防火牆埠的開啟 8 一些其他的命令 執行以下命令時需要注意自己對應系統的版本,不同的版本會稍有差別。cd 切換到根目錄 cd 切換到使用者跟目錄 cd 切換...

Centos7常用命令

檢視服務狀態 systemctl status networkmanager network 停止服務 systemctl stop networkmanager 啟動服務 systemctl start networkmanager 禁止服務開機啟動 systemctl disable netwo...