使用者類型:
管理者: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:僅顯示不曾重複的行。