1、文件系統
/boot:系統啓動相關的文件,入內核、initrd,以及grub(bootloader)
/dev:設備文件
/etc:配置文件
/home:用戶的家目錄,每一個用戶的家目錄通常默認爲/home/username
/root:管理員的家目錄
/lib:庫文件
靜態庫,.a
動態庫,.dll,.so(shared object)
/lib/modules:內核模塊文件
/media:掛載點目錄,移動設備
/mnt:掛載點目錄,額外的臨時文件系統
/opt:可選目錄,第三方程序的安裝目錄
/proc:僞文件系統,內核映射文件
/sys:僞文件系統,跟硬件設備相關的屬性映射文件
/tmp:臨時文件,/var/tmp
/var:可變化的文件
/bin:可執行文件,用戶命令
/sbin:管理命令
2、用戶類別:
管理員:0
普通用戶:1-65535
系統用戶:1-499
一般用戶:500-60000
用戶組類別:
私有組:創建用戶時,如果沒有爲其指定所屬的組,系統會自動爲其創建一個和用戶組同名的 組。
基本組:用戶的默認組。
附加組:額外組,默認組以外的其他組。
/etc/passwd
account:登錄名
password:密碼
UID:
GID:基本組ID
comment:註釋
HOME DIR:家目錄
SHELL:用戶的默認shell
/etc/shadow
account:登錄名
encrypted password:加密的密碼
加密方法:
對稱加密:加密和解密使用同一個密碼
公鑰加密:每個密碼都成對兒出現,一個爲私鑰,一個是公鑰
單向加密:散列加密:提取數據特徵碼,常用於數據完整性校驗
1、雪崩效應
2、定長輸出 MD5 SHAl
3、bash的配置文件:
bash -x file.sh 單步執行
全局配置
/etc/profile,/etc/profile.d/*.sh
個人配置
~/.bash_profile, ~/.bashrc
profile類的文件:
設定環境變量
運行命令或腳本
bashrc類的文件:
設定本地變量
定義命令別名
登錄式shell如何讀取配置文件
/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc
非登錄式shell如何配置文件
~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh
1)條件測試的表達式
[ expression ]
` expression `
test expression
整數比較
-eq:測試兩個整數是否相等:比如 $A -eq $B
-ne:測試兩個整數是否不等:不等爲真,相等爲假
-gt:測試一個數是否大於另一個數
-lt:測試一個數是否小於另一個數
-ge:大於或等於
-le:小於或等於
INT1=32
INT2=23
[ $INT1 -eq $INT2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2
文件測試
-e FILE:測試文件是否存在
-f FILE:測試文件是否爲普通文件
-d FILE:測試指定路徑是否爲目錄
-r FILE:測試當前 用戶對指定文件是否有讀權限
-w
-x
[ -e /etc/inittab ]、[ -x /etc/rc.d/rc.sysinit ]
字符串測試
==:測試是否相等,相等爲真,不等爲假 [ $1 = 'q' ]
!=:測試是否不等,不等爲真,等爲假
>
<
-n string:測試指定字符串是否爲空,空則真,不空則假
-s string:測試指定字符串是否爲空,不空則真,空則假
2)shell中如何進行算術運算
let c=$A+$B
$[算術運算表達式] C=${$A+$B}
$((算術運算表達式)) C=$(($A+$B))
expr C=`expr $A + $B`
3)bash變量的類型
本地變量(局部變量)
環境變量
位置變量:$1、$2...、
shift前面的參數被踢出,後面的參數變成第一個
特殊變量:
$?:上一個命令的執行狀態
$#:參數的個數
$*:參數列表
$@:
4、管道
前一個命令的輸出當作後一個命令的輸入:echo "redhat" | passwd --stdin user1
ls /home | tr 'a-z' 'A-Z' 把輸出轉換爲大寫
既在屏幕上輸出又能輸入到文件中用:echo "hello world" | tee /tmp/hello.out
5、更改centos 7啓動服務運行級別:
rm /etc/systemd/system/default.target
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target