首页
/
每日頭條
/
圖文
/
linux 哪個命令定義shell
linux 哪個命令定義shell
更新时间:2024-04-29 07:48:02
目錄1. Shell命令以及運行原理Linux嚴格意義上說的是一個操作系統,我們稱之為“核心(kernel)“ ,但我們一般用戶,不能直接使用kernel。而是通過kernel的“外殼”程序,也就是所謂的shell,來與kernel溝通。
  • 如何理解?為什麼不能直接使用kernel?
從技術角度,Shell的最簡單定義:命令行解釋器(command Interpreter)主要包含:

将使用者的命令翻譯給核心(kernel)處理。 同時,将核心的處理結果翻譯給使用者。

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)1

注意:shell 是所有外殼程序的統稱,bash 是一種具體的shell。例如:centos 7外殼程序 :bash
  • 對比windows GUI ,我們操作windows 不是直接操作windows内核,而是通過圖形接口,點擊,從而完成我們的操作 (比如進入D盤的操作,我們通常是雙擊D盤盤符.或者運行起來一個應用程序) 。
  • shell 對于linux ,有相同的作用,主要是 對我們的指令進行解析,解析指令給Linux内核 。反饋結果在通過内核運行出結果,通過shell解析給用戶。
  • shell運行原理

shell是做命令行解釋的 對系統有危害性的命令會被阻止從而保護操作系統 其好處為子進程出現任何問題都不會影響父進程shell

  • 幫助理解:
  • 如果說你是一個悶騷且害羞的程序員,那shell就像媒婆
  • 操作系統内核就是你們村頭漂亮的且有讓你心動的MM小花。
  • 你看上了小花,但是有不好意思直接表白,那就讓你你家人找媒婆幫你提親
  • 所有的事情你都直接跟媒婆溝通,由媒婆轉達你的意思給小花
  • 而我們找到媒婆姓王,所以我們叫它王婆,它對應我們常使用的bash。
2. Linux權限2.1 權限的概念
  • Linux下有兩種用戶:超級用戶(root)、普通用戶。
  • 超級用戶 :可以再linux系統下做任何事情,不受限制
  • 普通用戶 :在linux下做有限的事情。
  • 超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)2

  • 用戶切換的命令

命令 : su [用戶名]

功能:切換用戶。

例如,要從root用戶切換到普通用戶user,則使用 su user。 要從普通用戶user切換到root用戶則使用 suroot(root可以省略),此時系統會提示輸入root用戶的口令。

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)3

  • 切換到root :用su -,我們可以切換到root用戶( 此時輸入root賬号密碼,密碼是不會回顯在屏幕上的 )
  • 切換回普通用戶 :用su - 用戶名 切回普通用戶,( 此時不用輸入密碼,但是我們不建議這樣切回,因為使用su -命令時,會創建更多的bash進程 )
  • 推薦的切換回普通用戶 : 輸入exit或者敲擊Ctrl d ,回退到普通用戶
2.2 權限管理
  • 什麼是權限
權限本質上是決定某件事情,某人能否做。
  • 針對人: 例如我是這間房子的主人所以我可以自由進出這個房子
  • 針對事物: 我想去吃一台電腦、我想在面包上玩英雄聯盟、看電影。面包能吃,但是電腦不能吃、你可以吃面包,但是不能吃電腦;這裡面包括了兩個屬性。

文件受人的影響和文件受本身自身特點 (事物屬性) 的影響 所以 文件權限 = 人 事物屬性

文件權限屬性:r(讀)、w(寫)、x(執行權限)

人 (不是特定具體的人,而是一種角色):擁有者、所屬組、other (其它)

  • 文件訪問者的分類(人)
  • 文件和文件目錄的所有者:u—User(中國平民 法律問題)
  • 文件和文件目錄的所有者所在的組的用戶:g—Group(不多說)
  • 其它用戶:o—Others (外國人)
  • 文件類型和訪問權限(事物屬性)

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)4

使用命令 ls -l (ll) 顯示的多列屬性的第一列對應的字符來區分它的文件類型。

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)5

不需要列出other,因為不是擁有者和所屬組的就是other了
  • 幫助理解 - 擁有者和所屬組

我們舉個簡單的例子,在一家公司内部,兩個項目組,要完成同樣的代碼任務,他們之間彼此是互相競争的關系,但是公司給他們提供的服務器隻有一個,他們完成的代碼要提交上去,這是你寫的代碼,肯定隻是想讓你和你的組員組長能看到,不想你的競争對手組看到,這就産生了所屬組的概念。

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)6

  • 文件類型

d:文件夾

-:普通文件

l:軟鍊接(類似Windows的快捷方式)

b:塊設備文件(例如硬盤、光驅等)

p:管道文件

c:字符設備文件(例如屏幕等串口設備)

s:套接口文件

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)7

  • 基本權限

i.讀(r/4):Read對文件而言,具有讀取文件内容的權限;對目錄來說,具有浏覽該目錄信息的權限

ii.寫(w/2):Write對文件而言,具有修改文件内容的權限;對目錄來說具有删除移動目錄内文件的權限

iii.執行(x/1):execute對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限

iv.“—”表示不具有該項權限

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)8

2.3 文件權限值的表示方法

字符表示方法

Linux表示

說明

Linux

說明

r - -

隻讀

- w -

僅可寫

- - x

僅可執行

r w -

可讀可寫

- w x

可寫可執行

r - x

可讀可執行

r w x

可讀可寫可執行

- - -

無權限

八進制數值表示方法

權限符号 (讀寫執行)

八進制

二進制

r

4

1 0 0

w

2

0 1 0

x

1

0 0 1

r w

6

1 1 0

r x

5

1 0 1

w x

3

0 1 1

r w x

7

1 1 1

- - -

0

0 0 0

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)9

  • 權限更改

$ chmod 777 text.c

$ chmod 000 text.c

$ chmod 640 text.c

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)10

2.4 文件訪問權限的相關設置方法

chmod

  • 功能 :設置文件的訪問權限
  • 格式 :chmod [參數] 權限 文件名
  • 常用選項:

R -> 遞歸修改目錄文件的權限

說明:隻有文件的擁有者和root才可以改變文件的權限

  • chmod命令權限值得格式
① 用戶表示符 /-=權限字符
  • :向權限範圍增加權限代号所表示的權限
  • -:向權限範圍取消權限代号所表示的權限
  • =:向權限範圍賦予權限代号所表示的權限用戶符号:
  • u:擁有者
  • g:擁有者同組用
  • o:其它用戶
  • a:所有用戶
示例:

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)11

注意:chmod可以給擁有者,所屬組,其他用戶同時修改權限,中間用逗号隔開如果要修改不是自己的文件的時候需要sudo臨時權限提升或者直接切成root身份
  • sudo chmod 用戶表示符 /-=權限字符 文件名

chown

功能:修改文件的擁有者

格式:chown [參數] 用戶名 文件名

實例:

$ sudo chown root test.c//修改擁有者

$ sudo chown lighthouse test.c//修改擁有者

$ sudo chown :lighthouse test.c//修改所屬組

$ sudo chown lighthouse:lighthouse test.c//可以将擁有者、所屬組同時修改

$ sudo chown root:root test.c//可以将擁有者、所屬組同時修改

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)12

chgrp

功能: 修改文件或目錄的所屬組格式 : chgrp [參數] 用戶組名 文件名常用選項 : -R 遞歸修改文件或目錄的所屬組

實例:

$ sudo chgrp root text.c

$ sudo chgrp lighthouse text.c

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)13

2.4 修改文件的掩碼

umask

功能:查看或修改文件掩碼

語法:umask 權限值

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)14

新建文件夾默認權限=0666

新建目錄默認權限=0777

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)15

但是我們觀察到,新建的文件和目錄并不是默認的起始權限,這裡是什麼原因呢?

原因就是創建文件或目錄的時候還要受到umask的影響。假設默認權限是mask,則實際創建的出來的文件權限是: umask & ~umask

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)16

  • 我們也可以通過修改文件的umask碼值來修改文件的權限:

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)17

說明:将現有的存取權限減去權限掩碼後,即可産生建立文件時預設權限。超級用戶默認掩碼值為0022,普通用戶默認為0002。

2.5 file指令

file

功能說明:辨識文件類型。

語法:file [選項] 文件或目錄…

常用選項:

-c 詳細顯示指令執行過程,便于排錯或分析程序執行的情形。

-z 嘗試去解讀壓縮文件的内容。

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)18

3. 目錄權限面試題:進入一個目錄要什麼權限?
  • 可讀權限 : 如果目錄沒有可讀權限, 則無法用ls等命令查看目錄中的文件内容.
  • 可寫權限 : 如果目錄沒有可寫權限, 則無法在目錄中創建文件, 也無法在目錄中删除文件.
  • 可執行權限 :如果沒有目錄可執行權限, 則無法cd到目錄中

x r w

4. 粘滞位新發現:

就是隻要用戶具有目錄的寫權限, 用戶就可以删除目錄中的文件, 而不論這個用戶是否有這個文件的寫權限. 我創建的一個文件, 憑什麼被你一個外人可以删掉

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)19

結論:

如果目錄本身對other具有w權限,other可以删掉任何目錄下的東西如果目錄本身對other沒有w權限,other則不可以删除

我們的需求:other可以在特定的目錄下創建文件并寫入,但是不想讓任何人删除掉自己的文件

這裡為了解決這個不科學的問題,Linux引入了粘滞位的概念

粘滞位

語法: chmod t 目錄名

功能: 給目錄加上粘滞位

注意:

隻能對目錄設置 ,一般是 限制other 權限的,對設置粘滞位的目錄,在該目錄下, 隻能有文件的擁有者和root用戶可以删除 ,其他人不能删除

示例:

linux 哪個命令定義shell(shell命令以及運行原理和Linux權限詳解)20

有多個人或者系統會有很多的臨時數據,所有的臨時文件都放在系統的*/tmp*目錄下。所有的權限需要放開,但是隻想讓文件的擁有者删除自己的文件,這需要設置粘滞位

5. 總結
  • 目錄的可執行權限是表示你可否在目錄下執行命令。
  • 如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd 進入目, 即使目錄仍然有-r 讀權限(這個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的文件)
  • 而如果目錄具有-x權限,但沒有-r權限,則用戶可以執行命令,可以cd進入目錄。但由于沒有目錄的讀權限
  • 所以在目錄下,即使可以執行ls命令,但仍然沒有權限讀出目錄下的文檔。
,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
瓊瑤眼中的24位絕世美人(她美貌脫俗如畫中仙子)
瓊瑤眼中的24位絕世美人(她美貌脫俗如畫中仙子)
  提到蔣勤勤,很多人的第一印象可能是:“瓊瑤女郎”,早期瓊瑤的光環讓大多數人都隻注意到了蔣勤勤的美貌,她是真的非常好看,以至于忽略了蔣勤勤的演技,但是她早期演過的武俠或者言情劇,由于她有那種剛烈氣質的古典美,令她可以輕而易舉地駕馭起一些形象,像:練霓裳,趙繡雲,第二夢,明月,沈心慈,玉嬌龍,穆念慈,這些角色上沒有設定重複,也是演什麼就是像什麼,沒有在演自己...
2024-04-29
紅心芭樂自制飲品不加冰(号稱最難吃水果之一)
紅心芭樂自制飲品不加冰(号稱最難吃水果之一)
     芭樂,這種原産南美洲,我國兩廣、我國台灣省均有栽種的小衆水果,卻成了『難吃水果排行榜』的常客。芭樂也很委屈:我這麼低調冷門,也能躺槍?      說起芭樂,北方的朋友或許比較陌生。其實呀,芭樂被稱作黑暗料理,真不是因為有多難吃,而是它的味道太!淡!了!不甜、不酸、沒味道、籽還多,簡直公開擺爛。      芭樂的名氣,是被某奈雪、某喜茶等新茶飲品牌帶...
2024-04-29
蘇聯為什麼能反攻莫斯科(損失慘重的蘇聯)
蘇聯為什麼能反攻莫斯科(損失慘重的蘇聯)
  1941年6月22日淩晨3點15分,德軍以總兵力550多萬人的空前作戰規模,在4900餘架戰機、3700輛坦克、 47000門大炮、190餘艘艦艇的配合下,對蘇聯發動了代号為“巴巴羅薩”的軍事打擊,襲擊了蘇聯西部邊境的幾個大軍區。德國空軍首先突襲了西部邊境的蘇聯空軍機場,然後大批德軍裝甲坦克集群在寬大的正面向蘇聯發起了快速攻擊,蘇軍被迫應戰……     ...
2024-04-29
高分爆笑喜劇(年度爆笑喜劇回歸)
高分爆笑喜劇(年度爆笑喜劇回歸)
  來源于:黃河票務APP   三個小時笑死的年度喜劇,劇情高潮疊起、笑點密集如掃雷,屯好的成噸包袱,全場無尿點,節奏完全流暢,浪到飛起,讓你整個笑完全程,絕對值回票價!      喜劇片《糊塗戲班》最早是由英國著名小說家、戲劇家邁克爾·弗萊恩所創作的,于1982年在倫敦首演,它一問世就引起了觀衆的熱烈反應。   該劇後來多次被改編為電視劇和複排,成為倫敦西...
2024-04-29
趙露思生圖被網友吐槽(看趙露思騎真馬哇哇大哭)
趙露思生圖被網友吐槽(看趙露思騎真馬哇哇大哭)
  《星漢燦爛》開播,有多少人被一幫老戲骨的演技驚豔就有多少人對趙露思傻白甜式演技感覺到失望。   在一群微表情都意味深長的老戲骨之中,趙露思隻會傻乎乎張大嘴巴說着台詞的樣子可真的被秒成了渣渣~      這次趙露思《星漢燦爛》的現場花絮還被導演組放出來,隻見趙露思和吳磊同騎一匹馬,即使有個男子在身後護着趙露思依舊覺得心驚膽戰,吓得在馬上哇哇大哭起來,或許導...
2024-04-29
Copyright 2023-2024 - www.tftnews.com All Rights Reserved