在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

shell命令以及運行原理

dyquk4xk2p3d ? 來源:良許Linux ? 作者:良許Linux ? 2022-11-21 10:56 ? 次閱讀

	

	

目錄

1. shell命令以及運行原理

Linux嚴格意義上說的是一個操作系統,我們稱之為“核心(kernel)“ ,但我們一般用戶,不能直接使用kernel。而是通過kernel的“外殼”程序,也就是所謂的shell,來與kernel溝通。

如何理解?為什么不能直接使用kernel?

從技術角度,Shell的最簡單定義:命令行解釋器(command Interpreter)主要包含:

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

938ff102-692c-11ed-8abf-dac502259ad0.jpg

注意: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下做有限的事情。

超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。

939899e2-692c-11ed-8abf-dac502259ad0.jpg

用戶切換的命令

命令:su [用戶名]

功能:切換用戶。

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

93a3b7dc-692c-11ed-8abf-dac502259ad0.jpg

切換到root:用su -,我們可以切換到root用戶(此時輸入root賬號密碼,密碼是不會回顯在屏幕上的)

切換回普通用戶:用su - 用戶名 切回普通用戶,(此時不用輸入密碼,但是我們不建議這樣切回,因為使用su -命令時,會創建更多的bash進程)

推薦的切換回普通用戶:輸入exit或者敲擊Ctrl+d ,回退到普通用戶

?2.2 權限管理

什么是權限

權限本質上是決定某件事情,某人能否做。

針對人:例如我是這間房子的主人所以我可以自由進出這個房子

針對事物:我想去吃一臺電腦、我想在面包上玩英雄聯盟、看電影。面包能吃,但是電腦不能吃、你可以吃面包,但是不能吃電腦;這里面包括了兩個屬性。

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

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

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

文件訪問者的分類(人)

文件和文件目錄的所有者:u—User(中國平民 法律問題)

文件和文件目錄的所有者所在的組的用戶:g—Group(不多說)

其它用戶:o—Others (外國人)

文件類型和訪問權限(事物屬性)

93afe976-692c-11ed-8abf-dac502259ad0.jpg

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

93b73ae6-692c-11ed-8abf-dac502259ad0.jpg

不需要列出other,因為不是擁有者和所屬組的就是other了

幫助理解 - 擁有者和所屬組

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

93bfc31e-692c-11ed-8abf-dac502259ad0.jpg

文件類型

d:文件夾

-:普通文件

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

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

p:管道文件

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

s:套接口文件

93ddad0c-692c-11ed-8abf-dac502259ad0.jpg

基本權限

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

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

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

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

93e9e45a-692c-11ed-8abf-dac502259ad0.jpg

?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

93f543a4-692c-11ed-8abf-dac502259ad0.jpg

  • 權限更改

$ chmod 777 text.c

$ chmod 000 text.c

$ chmod 640 text.c

94035976-692c-11ed-8abf-dac502259ad0.png

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

chmod

功能:設置文件的訪問權限

格式:chmod [參數] 權限 文件名

常用選項:

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

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

chmod命令權限值得格式

① 用戶表示符+/-=權限字符

+:向權限范圍增加權限代號所表示的權限

-:向權限范圍取消權限代號所表示的權限

=:向權限范圍賦予權限代號所表示的權限

用戶符號:

u:擁有者

g:擁有者同組用

o:其它用戶

a:所有用戶

示例:

941f7a5c-692c-11ed-8abf-dac502259ad0.jpg

注意: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//可以將擁有者、所屬組同時修改

94318eae-692c-11ed-8abf-dac502259ad0.jpg

chgrp

功能:修改文件或目錄的所屬組

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

常用選項:-R 遞歸修改文件或目錄的所屬組

實例:

$ sudo chgrp root text.c

$ sudo chgrp lighthouse text.c

943de85c-692c-11ed-8abf-dac502259ad0.jpg

?2.4 修改文件的掩碼

umask

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

語法:umask 權限值

944d54c2-692c-11ed-8abf-dac502259ad0.jpg

新建文件夾默認權限=0666

新建目錄默認權限=0777

945a0212-692c-11ed-8abf-dac502259ad0.jpg

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

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

94688274-692c-11ed-8abf-dac502259ad0.jpg

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

9482ed9e-692c-11ed-8abf-dac502259ad0.jpg

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

?2.5 file指令

file

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

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

常用選項:

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

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

948fcb36-692c-11ed-8abf-dac502259ad0.jpg

?3. 目錄權限

?面試題:進入一個目錄要什么權限?

可讀權限: 如果目錄沒有可讀權限,則無法用ls等命令查看目錄中的文件內容.

可寫權限: 如果目錄沒有可寫權限,則無法在目錄中創建文件, 也無法在目錄中刪除文件.

可執行權限:如果沒有目錄可執行權限,則無法cd到目錄中

x
r
w

?4. 粘滯位

?新發現:

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

949a3436-692c-11ed-8abf-dac502259ad0.jpg

結論:

如果目錄本身對other具有w權限,other可以刪掉任何目錄下的東西

如果目錄本身對other沒有w權限,other則不可以刪除

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

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

粘滯位

語法:chmod +t 目錄名

功能:給目錄加上粘滯位

注意:

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

示例:

94aaa73a-692c-11ed-8abf-dac502259ad0.jpg

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

5. 總結

目錄的可執行權限是表示你可否在目錄下執行命令。

如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd 進入目, 即使目錄仍然有-r 讀權限(這個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的文件)

而如果目錄具有-x權限,但沒有-r權限,則用戶可以執行命令,可以cd進入目錄。但由于沒有目錄的讀權限

所以在目錄下,即使可以執行ls命令,但仍然沒有權限讀出目錄下的文檔。



審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11331

    瀏覽量

    210007
  • 操作系統
    +關注

    關注

    37

    文章

    6862

    瀏覽量

    123532
  • Shell
    +關注

    關注

    1

    文章

    366

    瀏覽量

    23429

原文標題:chmod

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    利用.func命令運行仿真的方法

    在上篇 LTspice 系列文章中,我們分享了如何利用ISO模型進行電源線瞬態電傳導干擾測試,本文將介紹使用 .func 命令中的指定常數以有效運行仿真并進行參數分析的方法。更多參數分析的內容,可查閱《活學活用LTspice進行電路設計 — 用 .step
    的頭像 發表于 01-14 16:48 ?310次閱讀
    利用.func<b class='flag-5'>命令</b><b class='flag-5'>運行</b>仿真的方法

    Linux從零到精通:最簡單的Shell腳本入門教程

    通過簡單的命令和腳本,實現對系統的靈活控制和自動化管理。 shell腳本前言 shell腳本入門 shell變量基礎 shell變量子串
    的頭像 發表于 12-05 09:56 ?588次閱讀
    Linux從零到精通:最簡單的<b class='flag-5'>Shell</b>腳本入門教程

    Linux系統中shell命令解析

    shell是Linux系統的用戶界面,提供了用戶與內核交互的一種接口,它接收用戶輸入的命令并到送到內核去執行,因此也被稱為Linux的命令解釋器。
    的頭像 發表于 11-05 15:40 ?341次閱讀

    TCSH shell 編程入門

    ICer從業人員最先需要掌握的語言,就是linux shell語言。TCSH是ICer使用最多的Shell語言,可以說ICer入門語言從TCSH開始。
    發表于 11-01 10:45 ?0次下載

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之test命令

    test命令用于測試某個條件是否成立,它可以進行數值、字符和文件三個方面的測試。在shell文件中輸入命令,通過特定的參數可以對數值、字符串進行比較,如下參數及示例。1、數值比較參數舉例,在
    發表于 09-05 09:09

    shell腳本執行的三種方式及區別

    在Linux系統中,Shell腳本是一種非常實用的工具,用于自動化執行一系列命令。Shell腳本可以大大提高工作效率,簡化復雜的任務。在這篇文章中,我們將介紹Shell腳本執行的三種方
    的頭像 發表于 08-30 15:24 ?1325次閱讀

    執行shell腳本的方式包括什么

    執行Shell腳本的方式有很多種,以下是一些常見的方法: 直接運行腳本文件 在命令行中,可以直接使用腳本文件的路徑來運行腳本。例如: ./script. sh 這種方式需要確保腳本文件
    的頭像 發表于 08-30 15:17 ?369次閱讀

    shell具有的功能和特點

    Shell 是一個命令行解釋器,用于與操作系統進行交互。它提供了一種方便的方式來執行命令、管理文件和目錄、運行程序等。以下是 Shell
    的頭像 發表于 08-30 14:48 ?623次閱讀

    shell腳本編寫之本地腳本的編寫和執行

    用來指定使用的shell應用;echo "my first shell !"為腳本中編寫的命令代碼。2、執行在執行腳本時,腳本必須要有執行權限,首先給腳本賦予可執行
    發表于 08-28 09:36

    嵌入式學習-常見的shell命令之其他命令

    用戶的信息用法:who示例:5、PS查詢進程命令命令:ps功能:顯示當前操作系統中由該用戶運行的進程列表常見參數:用法:示例1:ps示例2:ps -el查看所有進程的詳細信息示例3:使用ps aux查看詳細
    發表于 08-22 09:42

    常見的shell命令之其他命令

    用戶的信息用法:who示例:5、PS查詢進程命令命令:ps功能:顯示當前操作系統中由該用戶運行的進程列表常見參數:用法:示例1:ps示例2:ps -el查看所有進程的詳細信息示例3:使用ps aux查看詳細
    發表于 08-21 09:49

    常見的shell命令之目錄相關命令

    目錄相關命令1、pwd查看當前目錄命令:pwd英文全拼:print work directory功能:打印當前所在的路徑參數:沒有其他參數示例:2、ls查看當前目錄的內容命令:ls英文全拼:list
    發表于 08-16 09:22

    嵌入式學習-shell介紹

    本使用的Shell有可能不同,但是基本的特性還是一樣的:一、支持內置命令可直接使用;二、支持命令組合成新的復合命令;三、支持TAB鍵補齊;四、支持后臺
    發表于 08-16 09:13

    shell基本介紹及常用命令shell介紹

    本使用的Shell有可能不同,但是基本的特性還是一樣的:一、支持內置命令可直接使用;二、支持命令組合成新的復合命令;三、支持TAB鍵補齊;四、支持后臺
    發表于 08-15 09:28

    深入剖析Shell命令運行機制與權限管理

    Linux作為一個操作系統,稱為"kernel",一般用戶不能直接使用kernel,而通過"kernel"的外殼程序"Shell"和kernel進行溝通。
    發表于 03-08 12:36 ?668次閱讀
    深入剖析<b class='flag-5'>Shell</b><b class='flag-5'>命令</b><b class='flag-5'>運行</b>機制與權限管理
    主站蜘蛛池模板: 成人在线视频网址| sihu免费观看在线高清| 色福利网| 涩涩高清无乱码在线观看| 日本特级黄录像片| 天堂网www在线资源| 日日干夜夜骑| tube亚洲高清老少配| 国产网站黄| 国卡一卡二卡三免费网站| 人人草草| 2022年永久免费观看| 欧美无遮挡一区二区三区| 最新日韩中文字幕| 四虎最新永久在线精品免费| 人人澡人| 国产精品不卡片视频免费观看| 亚洲午夜日韩高清一区| 久久网免费视频| tube69欧美最新片| 中文字幕天堂网| 日本三级视频在线播放| 狠狠狠色丁香婷婷综合久久五月| 成 黄 色 激 情视频网站| 天天做天天爱天天爽综合区| 国产天天操| 亚洲1卡二卡3卡四卡不卡| 亚洲三级毛片| 欧美日韩性猛交xxxxx免费看| 国产精品igao在线观看樱花日本| 天天干视频网站| 免费视频在线看| 亚洲最大的成人网| 女毛片| 夜夜欢视频| 在线视频91| 伊人成综合| 毛片录像| 天天干天天色综合网| 么公的好大好硬好深好爽视频| 一级一片免费播放|