天天看點

檔案權限

使用者類型:

    管理者:0

    一般使用者:1-65535

    系統使用者1-499

    普通使用者:500+

權限管理:owner,group

    屬主:

    屬組:

    其他:

權限:read(讀),write(寫),execute(執行)。

    r(4)    w(2)    x(1)

檔案:

    r:可以使用内容檢視類的指令來顯示其相關内容

    w:可以使用編輯器修改其内容

    x:可以将其發起一個程序;

目錄:

    r:可以使用ls指令檢視目錄内容的檔案資訊;

    w:可以建立,删除檔案。

    x:可以使用ls -l指令檢視目錄内容的檔案資訊,并且可以使用cd指令切換此目錄為工作目錄

使用者的不擁有某位權限,則使用-占位;

r-x:可讀可執行。

r--:隻讀。

rw-:可讀可寫。

中繼資料:屬性,inode

修改屬主,屬組,僅管理者可執行。chown,chgrp。

改檔案權限:chmod

chmod指令:

    操作三類使用者的權限,使用8進制形式。

    chmod [-R] OCTAL-MODE file。。。

-R對内部指令生效,符号連結除外。

操作指定類别使用者的權限:使用u,g,o,a來賦權,基于=或+/-來進行。

    u:屬主。

    g:屬組

    o:其他

    a:所有

    =:操作指定類别使用者的權限:u=,ug=,u=,g=

    +/-:操作指定類别使用者的單個權限。u-x,g+r,o-x,+x

chmod 750 ssl/ = chmod u=rwx,g=x,o= ssl/

參照其他檔案的權限為目前檔案賦權。

--reference=要參照的檔案 要修改權限的檔案。

umask預設022 指的是root使用者的預設。

    建立檔案 666-umask

    檔案預設決不允許出現執行權限。

    umask 023

666-023=643如果出現執行權限必須+1就是644

建立目錄:777-umask

root:022

    如果使用者和基本組組名一緻:002;否則為-22;

修改檔案的屬主或屬組:chown,chgrp

    -R:遞歸

    --reference=參照權限。

chown [option]UserName[{:|.}GroupName]file ...

chown --reference=fedora_dir/ -R pm

權限應用模型:

程序的屬主,是否與檔案的屬主相同,如果相同,程序則以檔案屬主的權限;來通路檔案。

否則程序的屬主所屬的組,是否其中之一與檔案的屬組相同,如果相同,程序則以檔案屬組的權限來通路檔案。

否則程序則以檔案的其他使用者的權限來通路檔案。

-M是不建立家目錄

bash介紹:

    shell:人機互動界面

    sh,csh,tcsh,bash,ksh,dash,zsh。

bash:指令解釋器

bash:

bash特性之bash的快捷鍵:

ctrl+a:直接到指令行首

ctrl+e:直接到指令行尾。

ctrl+u:删除光标到行首的位置。

ctrl+l:删除光标到行尾的位置。

ctrl+c終止或取消

ctrl+z将目前指令放置到背景。

bash之:bash補全

指令補全:

    shell指令:内部,外部。

    外部:在系統某路徑下有一個可執行程式、

Path:是一組有冒号分隔的路徑。

使用tab鍵

bash:解釋器,解析器。

程式設計語言:

C:關機字,選擇順序。

    編譯器:語言平台。

    解釋器:語言平台。

程式執行邏輯:

    順序執行。

選擇執行(條件)

循環執行:

ELF:定義了一個可執行檔案。可執行的規範。

變量:強類型的語言,要提前定義。

弱類型語言:不強制區分變量的類型,無論存儲何種資料,均已字元格式進行。

    無須事先聲明,用到時,直接使用,直接指派。

bash:動态程式設計語言,是弱類型語言。

程式設計語言兩類:

    動态語言

    解釋型

        perl,bash,python

靜态語言

    編譯型

    c,c++

變量:

    資料存儲格式:

    ASCII 同時存11  字元它占用32bit

    Binary    它占用4位

按照其變量是否需要嚴格定義其類型來劃分。

    強類型語言

    弱類型語言

定義變量類型的作用:

1,資料存儲格式。

2,資料的有效存儲範圍

3,排序機制不同。

4,參與的運算類型不同;

字元型

數值型:

    精确數值型:

        整型:

        近似數值型:

    浮點數:3.14

單精度

雙精度

布爾型:

bash特性之-提供程式設計環境

變量

程式控制

#!/bin/bash

groupadd -g 4002 newgrouppp

useradd -G newgrouppp -u 3011 magedu3

mkdir /tmp/hellodirxyzxx

cp -r /etc/fstab /tmp/hellodirxyzxx

chown -R magedu3:magedu3 /tmp/hellodirxyzxx

chmod -R o=  /tmp/hellodirxyzxx

bash特性之-變量

變量的類型:

    本地變量:隻對目前shell程序有效,對其子shell以及其他shell對等的都無效。

定義變量:[set]var_Name="Value"

引用變量:${var_Name}

撤銷變量:unset Var_Name

set能夠顯示目前程序内部的所有變量。

    局部變量:僅對局部代碼生效,比本地變量更小。

    local Var_name="value";

環境變量:對目前shell程序及其子shell有效。

export var_name=“value”

var_name=“values”

export var_name

位置變量:

    $1,...,$n

        ./firsh.sh 2 8

特殊變量:

$0:腳本名稱自身

$?:傳回上一個指令的執行狀态、

狀态用數字來表示:0-255

0:成功

1-255失敗

set:

環境變量:用來bash的工作特性,用于儲存目前回話的屬性資訊。

顯示所有環境變量:export,env,prinenv

定義:export var_name="values"

export PATH=$PATH:/root/sbin/

   $PATH不加這個之前的環境變量都會丢失。

bash的配置檔案:持久儲存使用者配置

    profile類:為互動式登陸的使用者提供配置。

/etc/profile:全局

/etc/profile.d/*.sh:全局 片段,可以自己随意用要的PATH

~/.bash_profile:個人配置,僅對目前使用者有效。

功能:

    設定環境變量。

允許指令或腳本

bashrc類:非互動式登陸使用者提供配置。

/etc/bashrc:全局

~/.bashrc:個人配置

    功用:

        設定本地變量

        定義指令别名

登陸類型:

    互動式登陸:

    直接通過終端輸入使用者資訊登陸系統。

su - Username或su -l UserName也叫做登陸使用者。

非互動式登陸:

    su UserName

圖形界面的終端

執行腳本

新增配置的生效方式:

通知shell重讀配置檔案的指令:

source(.)

.FILE

重新登陸

互動式登陸使用者:

/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc

非互動式登陸使用者:

 ~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh

變量命名要求:

    隻能使用數字,字母和下劃線組成。

    不能已數字開頭

    不能使用程式中的關鍵字

    見名知義:totalWeight

bash腳本:面向過程的程式設計中

    順序執行:預設法則,逐條執行個語句。

    選擇執行:分支,條件判斷,符合條件的分支予以執行。

    循環執行:将同一段代碼反複執行有限次,是以,循環必須有退出條件,否則将進入死循環。

程式代碼:語句和表達式組成。

    控制語句:

bash循環控制語句:

    for

    while

    until

for循環:

for var_Name in 清單; do

    語句1

    語句2

。。。。

done

for userName in gentoo mandirva debian

    useradd $userName

文法錯誤檢測

bash -n 腳本檔案

清單的生産方法:

    生成數字序列:{start..end},seq [start][step]end 1 3 10

for userName in `seq 101 110`;do

        useradd user$userName

        echo "add user$userName successful"

for userName in {101..110};do userdel -r user$userName;done

for:通過使用一個變量去周遊給定清單中的每個元素,在每次變量指派時執行一次循環體,直至指派完成所有元素退出循環;

 總結:生成清單的方式

  1,直接給出清單

  2,使用檔案名通配的機制生成清單

  3,可以使用{}或seq指令生成數字序列

  4,使用指令生成

文本處理類的指令:wc,word count:

行 單詞數,位元組數

-l:表示行

-w:單詞

-c:位元組

tr:字元轉換指令。可以裝換字元或删除字元

-d 删除字元指令

tr -d '字元集合'

-c 用字元串1中字元集的補集替換此字元集,要求字元集為ASCII。

cut:

    -d字元1:指定以什麼為分隔符

-f#:指定要顯示的那個字段

sort:文本排序指令:

預設是升序排序。

sort [option] file

    -f:忽略字元大小寫。

    -n:比較數值大小。

    -t指定分隔符

-k:指定分割後進行比較字段

-u重複的行,隻顯示一次;

列子:

cut -d: -f3 /etc/passwd | sort -n

sort -n -t: -k3 /etc/passwd

uniq:移除重複的行。

-c:為每一行顯示出現的次數。

-d:僅顯示重複的行。

-u:僅顯示不曾重複的行。

繼續閱讀