Linux篇:Shell命令以及運行原理 和 權限

一. Shell命令及原理

Linux操作系統狹義上是Linux內核,廣義上是指Linux內核+Linux外殼(Shell)和對應的配套程序

Linux外殼:Linux 外殼是用戶與內核之間的接口,用戶通過外殼與操作系統進行交互和操作。在 Linux 系統中,用戶可以選擇不同的外殼,比如常見的 Bash、Zsh 等。

配套程序: 工具程序和應用程序,用于完成各種任務,比如文件管理、網絡通信、系統配置等。這些配套程序一起構成了一個完整的操作系統。

什么是Shell???

Shell是命令行解釋器是外殼程序,作用有兩個1)將用戶的命令解析傳給Linux內核?2)Linux內核將命令執行完后,Shell將接執行結果返還給用戶 windows下的外殼程序就是圖形化界面

Shell如何執行的?(后面會詳細講)

  1. 用戶輸入命令: 用戶在 Shell 提供的命令行界面中輸入命令,比如 ls(列出目錄內容)、cd(切換目錄)等。

  2. 解析命令: Shell 解析用戶輸入的命令,并根據命令的語法和結構進行解析,確定命令的名稱、參數和選項等信息。

  3. 查找命令: Shell 在系統的路徑(PATH)中查找用戶輸入的命令對應的可執行文件。系統會按照 PATH 中的順序依次查找,找到后就可以執行該命令。

  4. 創建子進程: 如果找到了要執行的命令,Shell 會創建一個子進程來執行該命令。這樣可以保持 Shell 進程和要執行的命令進程的獨立性,互不干擾。

  5. 加載程序: 子進程加載命令對應的可執行文件到內存中,準備執行。

  6. 執行程序: 子進程開始執行加載到內存中的程序,按照用戶輸入的命令參數和選項進行相應的操作。

  7. 等待命令執行完成: Shell 父進程會等待子進程執行完畢,并獲取子進程的執行結果,然后顯示給用戶。

  8. 返回結果: 最終,Shell 將命令執行的結果輸出到屏幕上供用戶查看。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Shell是外殼總稱,不同的系統有不同的shell,Centos7的Shell是bash,windows下的就是圖形化界面

說完了關于Shell的原理那為什么要有Shell呢?

用戶在用Linux操作系統時,是不會直接對操作系統進行使用,就是通過Shell,因為操作系統是非常復雜的東西,一般人不經過深度學習是無法直接使用操作系統,所以就有了Shell外殼程序,降低了技術門檻,簡化了成本

二. 權限

2.1: 權限的概念

root:超級用戶(基本不受權限的約束)
普通用戶:我們新建的用戶(受權限約束)
(Linux中所有的用戶都要有密碼,無論是root還是其他,即便是多個普通用戶,也要設置密碼,建議設置不同密碼)

adduser:創建新用戶

在root用戶下,使用 useradd 命令創建新用戶:在終端中輸入以下命令,用 useradd 命令創建新用戶。比如,創建一個名為 newuser 的新用戶:

useradd newuser? ? ?

設置新用戶的密碼:使用 passwd 命令為新用戶設置密碼,輸入以下命令并按照提示設置密碼:

passwd newuser

?(可選)設置新用戶的家目錄和其他屬性:如果需要設置新用戶的家目錄、Shell 類型等其他屬性,可以使用 useradd 命令的參數來指定。比如,設置新用戶的家目錄為:/home/newuser? ? ? ? ? ? ? ? ? ? ??

usermod -aG sudo newuser

?sudo command:對一條指令進行暫時提權,以root的身份運行(目前我們用adduser新建的用戶沒有頒發執行sudo,系統不信任你,除非未來將普通用戶添加到系統的信任列表里)

2.2Linux權限管理

2.2.00. Linux下有兩種用戶:超級用戶(root)、普通用戶。

超級用戶:可以再 linux 系統下做任何事情,不受限制
普通用戶:在 linux 下做有限的事情。
超級用戶的命令提示符是 “#” ,普通用戶的命令提示符是 “$”
命令 su [ 用戶名 ]
功能 :切換用戶。
例如,要從 root 用戶切換到普通用戶 user ,則使用 su user 。 要從普通用戶 user 切換到 root 用戶則使用 su root( root 可以省略),此時系統會提示輸入 root 用戶的口令。
su +用戶名 vs? su - +用戶名 ( 二者區別是什么?)
  1. su +用戶名:使用 su +用戶名 的方式進行切換用戶時,并不會改變當前環境變量,即當前用戶的環境變量(如 PATH、HOME 等)會繼續保留。這樣可能導致一些權限或者路徑等方面的問題,因為切換后的用戶環境變量并未加載。

  2. su - +用戶名:使用 su - +用戶名 的方式進行切換用戶時,會以切換后的用戶的身份完全登錄到一個新的 shell 會話中,同時加載新用戶的環境變量,包括 HOME 目錄、PATH 等。這樣可以確保切換后的操作環境和權限與目標用戶一致,避免出現一些意想不到的問題

2.2.01.文件訪問者的分類(人)

文件和文件目錄的所有者: u---User (用戶本身)
文件和文件目錄的所有者所在的組的用戶: g---Group (所屬組)
其它用戶: o---Others (其他人)
2.2.02. 文件類型和訪問權限(事物屬性)
為什么要有所屬組?
為了更好地管理用戶和文件的訪問權限,管理員也可以創建其他組,并將用戶添加到這些組中,以提供不同的訪問權限。例如,管理員可以創建一個 dev 組,將所有開發人員添加到該組中,以便他們可以訪問和修改需要開發的文件和目錄。舉個例子a,b,c三個人。a寫了一份代碼不想讓c看到,但想讓b看到,a就可以把b拉進自己的所屬組,打開所屬組的權限,關閉 oher 的權限就可以了。
Linux操作系統中文件名后綴沒有直接的意義那為什么還要規范Linux下的文件后綴?
1). 規范后綴,方便用戶辨認文件類別
2). Linux上安裝的gcc是一款編譯器軟件,需要區分后綴,如果是一個txt文件,編譯器是不能對這種文件編譯的,其他Linux系統上運行的其他軟件也需要區分后綴
a) 文件類型
????????d:文件夾
????????-:普通文件
????????l:軟鏈接(類似 Windows 的快捷方式)
????????b:塊設備文件(例如硬盤、光驅等)
????????p:管道文件
????????c:字符設備文件(例如屏幕等串口設備)
????????s:套接口文件
b) 基本權限
????????i.讀( r/4 ): Read 對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限
????????ii.寫(w/2 ): Write 對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限
????????iii.執行( x/1 ): execute 對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限
????????iv.“—”表示不具有該項權限

2.2.03.文件權限值的表示方法

a) 字符表示方法
Linux表示說明Linux表示說明
r--只讀-w-只寫
--x僅可執行rw-可讀可寫
-wx可寫可執行r-x可讀可執行
rwx讀寫執行- - -無權限
b)8 進制數值表示方法
權限符號(讀寫執行)八進制二進制
r4100
w2010
x1001
rw6110
rx5101
wx3011
rwx7111
- - -0000

2.2.04.文件訪問權限的相關設置方法

a)chmod
功能: 設置文件的訪問權限
格式: chmod [ 參數 ] 權限 文件名
常用選項:
R -> 遞歸修改目錄文件的權限
說明:只有文件的擁有者和 root 才可以改變文件的權限
chmod
① 用戶表示符 +/-= 權限字符
+: 向權限范圍增加權限代號所表示的權限
-: 向權限范圍取消權限代號所表示的權限
=: 向權限范圍賦予權限代號所表示的權限
用戶符號:??
u :擁有者
g :擁有者同組用
o :其它用戶
a :所有用戶
實例:
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
②三位 8 進制數字
實例:
 chmod 664 /home/abc.txt

b)chown

功能 :修改文件的擁有者
格式 chown [ 參數 ] 用戶名 文件名
c)chgrp
功能 :修改文件或目錄的所屬組
格式 chgrp [ 參數 ] 用戶組名 文件名
常用選項 -R 遞歸修改文件或目錄的所屬組
d)umask
功能
查看或修改文件掩碼 新建文件夾默認權限=0666? 新建目錄默認權限=0777
但實際上你所創建的文件和目錄,看到的權限往往不是上面這個值。原因就是創建文件或目錄的時候還要受到 umask的影響。假設默認權限是 mask ,則實際創建的出來的文件權限是 : mask&~umask
格式 umask 權限值
說明 :將現有的存取權限減去權限掩碼后,即可產生建立文件時預設權限。超級用戶默認掩碼值為 0022 ,普通用
戶默認為 0002
file 指令:
功能說明 :辨識文件類型。
語法 file [ 選項 ] 文件或目錄 ...?
常用選項
-c 詳細顯示指令執行過程,便于排錯或分析程序執行的情形。
-z 嘗試去解讀壓縮文件的內容。
目錄的權限
可執行權限 : 如果目錄沒有可執行權限 , 則無法 cd 到目錄中 .
可讀權限 : 如果目錄沒有可讀權限 , 則無法用 ls 等命令查看目錄中的文件內容 .
可寫權限 : 如果目錄沒有可寫權限 , 則無法在目錄中創建文件 , 也無法在目錄中刪除文件 .
粘滯位
當一個目錄被設置為 " 粘滯位 "( chmod +t), 則該目錄下的文件只能由
一、超級管理員刪除
二、該目錄的所有者刪除
三、該文件的所有者刪除
[root@localhost ~] chmod +t /home/ # 加上粘滯位
[root@localhost ~] ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~] su - litao
[litao@localhost ~] rm /home/abc.c #litao不能刪除別人的文件
rm:是否刪除有寫保護的普通空文件 "/home/abc.c"?y
rm: 無法刪除"/home/abc.c": 不允許的操作

三.關于權限的總結

1).目錄的可執行權限是表示你可否在目錄下執行命令。
2).如果目錄沒有 -x 權限,則無法對目錄執行任何命令,甚至無法 cd 進入目 , 即使目錄仍然有 -r 讀權限(這個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的文件)
3).而如果目錄具有-x 權限,但沒有 -r 權限,則用戶可以執行命令,可以 cd 進入目錄。但由于沒有目錄的讀權限
4).所以在目錄下,即使可以執行 ls 命令,但仍然沒有權限讀出目錄下的文檔。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696565.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696565.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696565.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言——static的三大用法

被稱為面試愛考愛問題的它到底有何奧義 它難度不大并且非常常用,話不多說,直接開始 一、局部靜態變量 定義 在函數內部使用static修飾的變量被稱為局部靜態變量,與普通的局部變量不同,局部靜態變量在使用后不會被銷毀&#xff…

pycharm 遠程運行報錯 Failed to prepare environment

什么也沒動的情況下,遠程連接后運行是沒問題的,突然在運行時就運行不了了,解決方案 清理緩存: 有時候 PyCharm 的內部緩存可能出現問題,可以嘗試清除緩存(File > Invalidate Caches / Restart&#xff0…

mysql優化指南之原理篇

之前碰到一個線上問題,在接手一個同事的項目后,因為工期比較趕,我還沒來得及了解業務背景和大致實現,只是了解了上線發布的順序和驗證方式就進行了上線,在上線進行金絲雀的時候系統還沒發生什么異常,于是我…

【面試題】談談MySQL的事務

事務是啥 MySQL的事務就是把多個sql語句操作打包在一起執行,要么全部執行,要么一個都別執行。這種操作稱為“原子性”,是事務最核心的特征。當某個sql操作出錯時,就會進行“回滾/rollback”操作,即把執行過的操作逆向…

MySQL數據庫進階第二篇(索引,SQL性能分析,使用規則)

文章目錄 一、索引概述二、索引結構三、結構 - B-Tree四、結構 - BTree五、結構 - Hash六、索引分類七、索引語法1.案例代碼 八、SQL性能分析1.查看SQl執行頻率2.慢查詢日志3.PROFILES詳情4.EXPLAIN執行計劃 九、 索引使用規則十、SQL 提示十一、覆蓋索引十二、前綴索引十三、單…

滾動加載react-infinite-scroll-component

react-infinite-scroll-component 當請求數據量過大時,接口返回數據時間會很長,數據回顯時間長,Dom 的渲染會有很大的性能壓力。 antd的List組件中有提到一個滾動加載的組件庫react-infinite-scroll-component 實現滾動加載 Antd&#xff1…

考研高數(高階導數的計算)

1.歸納法 常見高階導數 2.泰勒展開式 3.萊布尼茲公式 4.用導數定義證明導函數在某一點連續的例題

【kubernetes】二進制部署k8s集群之cni網絡插件flannel和calico工作原理(中)

↑↑↑↑接上一篇繼續部署↑↑↑↑ 目錄 一、k8s集群的三種接口 二、k8s的三種網絡模式 1、pod內容器之間的通信 2、同一個node節點中pod之間通信 3、不同的node節點的pod之間通信 Overlay Network VXLAN 三、flannel網絡插件 1、flannel插件模式之UDP模式&#xff0…

java對象所占內存大小輸出

如何計算java對象所占內存大小&#xff0c;可以使用下述三種方法。 使用jdk8自帶API 使用下面語句打印對象所占內存大小&#xff1a;需要保證jdk版本是jdk8。System.out.println(ObjectSizeCalculator.getObjectSize(3L)); 借助org.apache.lucene工具類 引入maven坐標 <…

2024/2/22

P8680 [藍橋杯 2019 省 B] 特別數的和 題目描述 小明對數位中含有 2、0、1、9 的數字很感興趣&#xff08;不包括前導 00&#xff09;&#xff0c;在 1 到 40 中這樣的數包括 1、2、9、10 至 32、39 和 40&#xff0c;共28 個&#xff0c;他們的和是574。 請問&#xff0c;在…

【2024軟件測試面試必會技能】

Unittest(5)&#xff1a;unittest_忽略用例 忽略用例 在執行測試腳本的時候&#xff0c;可能會有某幾條用例本次不想執行&#xff0c;但又不想刪也 不想注釋&#xff0c;unittest通過忽略部分測試用例不執行的方式&#xff0c;分無條件忽略和有條 件忽略,通過裝飾器實現所描述…

Vue3+vite搭建基礎架構(11)--- 菜單欄功能和Tab頁功能實現

Vue3vite搭建基礎架構&#xff08;11&#xff09;--- 菜單欄功能和Tab頁功能實現 說明刪除項目中不需要的文件userStore全局屬性代碼菜單欄代碼Tab頁代碼解決瀏覽器輸入地址時不會打開tab頁問題和切換tab頁時參數丟失問題 說明 這里記錄下自己在Vue3vite的項目使用less來寫樣式…

低代碼開發——企業轉型的萬金油

在數字化時代&#xff0c;企業面臨著日新月異的市場環境和激烈的競爭壓力。為了在這場變革中脫穎而出&#xff0c;企業需要不斷優化業務流程、提升創新能力&#xff0c;以及實現敏捷響應。在這個過程中&#xff0c;低代碼開發作為一種創新性的技術手段&#xff0c;正成為企業轉…

統信UOS_麒麟KYLINOS上監控網絡:探索Smokeping的強大功能

原文鏈接&#xff1a;統信UOS|麒麟KYLINOS上監控網絡&#xff1a;探索Smokeping的強大功能 在當今的網絡環境中&#xff0c;無論是個人用戶還是企業用戶&#xff0c;都非常重視網絡的穩定性和連通性。特別是在進行遠程工作、在線會議、云計算等活動時&#xff0c;網絡質量直接影…

程序員必備技能----刪庫跑路大總結

刪庫跑路大總結&#xff0c;各個都是大殺器&#xff0c;破壞性太大&#xff0c;輕易不要嘗試。 刪除linux根目錄&#xff0c;用戶目錄&#xff0c;其實還可以增加一個刪除/etc。刪除&#xff08;清除&#xff09;數據庫。刪除redis緩存和持久化文件。刪除mongodb庫。git push …

說一說Eclipse的項目類型和常用項目的區別

Eclipse在新建項目的時候有很多類型&#xff0c;包括Java project、Web project等等&#xff0c;如下&#xff1a; 那么這些項目類型有什么區別呢&#xff1f;我們在創建項目的時候應該如何選擇&#xff0c;了解清楚這一點還是非常重要的&#xff0c;但記住一個出發點&#xff…

2.22 day3、4 QT

完善對話框&#xff0c;點擊登錄對話框&#xff0c;如果賬號和密碼匹配&#xff0c;則彈出信息對話框&#xff0c;給出提示"登錄成功”&#xff0c;提供一個Ok按鈕&#xff0c;用戶點擊Ok后&#xff0c;關閉登錄界面&#xff0c;跳轉到其他界面 如果賬號和密碼不匹配&…

讀書筆記:《看電影學金融》

大空頭 禁止做空可以延緩資產價格下降的過程&#xff0c;但是人為保護的高股價最終還是不能持續的。做空引入的空頭買家&#xff0c;可以增加市場的流動性。住房價格指數期貨使房地產的投資屬性與住宅屬性分離&#xff0c;降低因炒房而空置的房屋&#xff0c;降低房價。收益互…

【論文解讀】Uncertainty Quantification of Collaborative Detection for Self-Driving

Uncertainty Quantification of Collaborative Detection for Self-Driving 摘要引言方法問題定義方法概覽Double-M 實驗結論 摘要 在聯網和自動駕駛汽車(CAVs)之間共享信息從根本上提高了自動駕駛協同目標檢測的性能。然而&#xff0c;由于實際挑戰&#xff0c;CAV 在目標檢測…