文件管理類命令
ls,
查看:cat,more,less,tail,head,tac
復制:cp
移動:mv
刪除:rm
創建:touch
元數據屬性:stat
查看內容類型:file
文本編輯器:nano,vi
Linux的文件類型
普通文件:-,f
目錄文件:路徑映射d
鏈接文件(符號鏈接):軟連接l
設備文件:
字符設備:c,一次存取一個字符
塊設備:b
命名管道:p
fi,fo
套接字文件:s
Linux的時間戳
訪問時間:最近一次訪問的時間
修改時間:寫數據
改變時間:元數據改變的時間
ls 使用默認選擇當前目錄
-a:顯示所有文件,包含隱藏文件
-A:不現實.和..常見的通用路徑
--color:顯示顏色
-l:長格式顯示
文件類型 權限 硬鏈接數 屬主 屬組 最近一次的修改時間 文件名->原始文件
-d:顯示目錄自身的屬性,通常與-l同時使用
-r:實現逆序顯示
-R:遞歸顯示
-i:inode號,index node
-h:文件大小以人類易讀格式顯示
tree
#cd /etc/yum.repos.d/
#wget http://172.16.0.1/centos6.5.repo
#rm CenOS-Base.repo
#yum -y install tree
I
名稱解析 : name resolving
bash shell的特性之四:命令別名
clear 清屏
alias:當前shell中定義的所有別名:
任何隨進程而生的屬性,會在進程結束,屬性消失
alias 別名=‘原始命令’
unalias 別名 取消定義的別名
在命令前加\使用命令本身,而不是別名
查看純文本文件
file FILE..:查看文件內容的格式
cat:將文本連接起來顯示在標准輸出上
控制符 如換行符
-E --show-ends 顯示結束符$
-e:等於-vE
-v:顯示非打印符
-n:顯示每行按順序編號
-s:將多個連續的空白行合並顯示一個空白行
tac:逆序顯示文件
分屏顯示
more:只支持向後翻(文件尾部以後)
less:支持前後翻
head:
-n #:顯示前多少行
tail
-n # 顯示後多少行
-f:
echo命令的用法:
-e
\b:刪除前面的字符
\t:制表符
\v:垂直制表符
\n:換行符
\0NNN()
開始\033[# # 1
3前景色 顏色(1-7)
4背景色
結束\033[0m
-n:不為顯示內容自動換行
文件操作
cp copy
cp SRC DEST
假如SRC是一個文件:
如果目標是一個文件且目標存在:覆蓋
如果目標文件不存在:創建新文件
如果目標存在,且是個目錄:復雜源至目標目錄中,並保持原名
cp SRC ... DEST
假如SRC有多個文件:
如果目標存在,且是一個文件:復制無法進行
如果目標存在,且是一個目錄:復制各文件至目標目錄中,並保持原名
如果目標不存在:復制無法進行
假如SRC只有一個且是目錄:-r
如果目標是一個文件且目標存在:失敗
如果目標文件不存在:創建新目錄
如果目標存在,且是個目錄:復制源目錄到目標目錄中,並保持原名
cp命令的常用選項:
-r:遞歸
-i:提示,交互
-f:強制覆蓋
-a: -dr 保留所有的文件信息
-d:當源為連接文件時,復制鏈接文件本身,而非指向的源文件
-p:保持原有屬性
mv:
移動,剪切,與cp相近
可以直接移動目錄,不需要-r選項
rm:
移除,刪除非空目錄 rm -rf
touch:用來修改時間戳,創建空文件
-c:不創建空文件,只修改時間戳
-t:指定時間戳
-a:僅修改訪問時間
-m:僅修改修改時間
stat命令:顯示文件源數據信息,詳細信息
stat FILE
-t 指定特定時間
Linux編輯器
行編輯器:sed (使用於腳本)
全屏編輯器:nano,vi,vim
bashshell的特性五:globbing 文件名通配
通配符:
*:匹配任意長度的任意字符
?:匹配任意單個字符
[]:匹配指定字符范圍內的任意單個字符,不區分大小寫
[[:upper:]]:大寫字母
[[:lower:]]:小寫字母
[[:alpha:]]:所有字母
[[:digit:]]:所有數字
[[:alnum:]]:字母+數字
[[:space:]]:空格
[[:punct:]]:標點符號 特殊字符
[^]:匹配指定字符范圍外的任意單個字符
例如: 非數字[^0-9]
練習
練習一: 復制/var目錄下所有1開頭,以一個小寫字母結尾,且中間出現一位數字的文件或目錄至/tmp下
cp /var/l*?*[[:lower:]] /tmp
練習二: 復制/etc/目錄下以P開頭,中間跟了任意字符,並以d結尾的文件至/tmp/a目錄中
cp -r /etc/p*d /tmp/a
練習三:復制/etc/目錄下以P開頭,中間跟了4個任意字符,並以d結尾的文件至/tmp/a目錄中,如果a 不存在,先創建出來
cp -r /etc/p????d /tmp/a
練習四: 復制/etc/目錄下以任意一位數字開頭,並以非數字結尾的文件至/tmp/b目錄中
cp -r /etc/[0-9]*[^0-9] /tmp/b
練習五: 復制/etc/目錄下以非字母開頭,後面跟了一個字母及其他任何長度字符的文件至/tmp/c目中
cp -r /etc/[^[:alpha:]][[:alpha:]]* /tmp/c/
用戶和權限管理:
1.用戶是什麼?
用戶:資源獲取標識符,資源分配,安全權限模型的核心要素之一
密碼:來實現用戶認證的
2.沒有用戶,能否使用
能使用
/etc/passwd
加密方法:
對稱加密:如果加密、解密使用相同的密碼稱之為對稱加密
DES,3DES,AES
非對稱加密:DSA,RSA
單向加密:雪崩效應,定長輸出,不可逆
MD5:信息摘要 128bit定長輸出16個字符
SHA1:安全的哈希算法 160bit
CRC32:循環冗余校驗碼
密碼數據庫:/etc/shadow
6 sha512
1 MD5
$加密算法$8位鹽$亂碼
加密 : openssl passwd -1 -salt 12345678
輸入密碼 然後加密成功
組
組可以理解為一個用戶容器,裡面裝這角色
文件:
/etc/group
組名:密碼占位符:GID:用戶列表(附加組)
/etc/gshadow 密碼
安全上下文:
運行中的進程有其屬主和屬組:取決於進程的屬組和屬主
/etc/skel 默認復制文件地址
/etc/defauit/useradd 定義默認家目錄、環境配置文件目錄等
用戶管理命令
創建用戶:
useradd UserName
生成的屬性信息
/etc/passwd:
用戶名:x(密碼占位符):UID:GUID(基本組ID):用戶備注信息(多個以,隔開):家目錄:默認shell
/etc /shells:當前系統的安全shell列表
useradd:adduser
-u UID:指定UID
-g GID:指定GID,即用戶的基本組,但GID要事先存在
-G GID:指定用戶的額外組,但GID要事先存在
-d 目錄: 指定家目錄
-c 備注:備注
-s:shell:指定默認shell,應該指定使用/etc/shells文件中出現的shell
-m:創建用戶時,強制給用戶創建家目錄
-M:創建用戶時,但不創建家目錄
-D: 改變其默認shell
-r: 創建系統用戶 特點:id 1-499 不會為用戶創建家目錄 默認shell為/sbin/nologin
id Username :顯示用戶的id號
userdel:刪除用戶,默認會保留家目錄
userdel UserName
-r:一並刪除家目錄
groupadd GrpName
-g GID:創建組並為其指定GID
用戶類別
管理員:0
普通用戶:1-65535
系統用戶:1-499
登 陸用戶:500+
用戶組:
管理員組:
普通組:
以用戶為視角,組可以分為兩類:
基本組:顯示在/etc/passwd中GID字
段組,為用戶的基本組
額外組:附加組:/etc/group
設定用戶密碼:passwd
普通用戶:passwd
管理員:
改自己密碼:passwd
改其他用戶密碼:passwd UserName
-l:鎖用戶 用戶密碼前加兩個!
-u:解鎖
密碼安全性策略:足夠復雜
夠長、交叉應用數字、大寫字母、小寫字母和特殊字符中的至少三種
盡量避免使用易猜測的密碼:
定期更換:
/etc/shadow文件格式:
登陸名:加密密碼:最近一次的密碼修改時間(距離1970-1-1的時間):最短使用期限:最長使用期限:警告區間:非活動區間(登陸就要修改密碼):賬號的過期期限:預留段
-l: 鎖用戶
設定組密碼:gpasswd GroupName
修改用戶的屬性定義(chsh):
chsh:修改默認的shell
chfn:修改用戶注釋
usermod:跟useradd命令使用方法類似
-u UID:
-g GID:
-G GID:默認會覆蓋原有的附加組,如果要是添加,可以同時使用-a選項
-c string
-d new home 默認不會遷移用戶的家目錄,如果要遷移,同時使用-m選項
-s SHELL:
-l New_login_name:修改用戶登錄名稱
-e 過期期限
-f 非活動期限
-L:鎖定用戶賬號
-U:解鎖
如何修改組屬性定義:
groupmod:
-g GID
-n New Group 修改用戶的屬組
groupdel
gpasswd
修改賬號日期屬性:
chage:修改用戶的日期屬性
-E:距離1970-1-1號的時間天數,過了這個時間,賬號不可訪問
-I: 設置活動天數
-m:修改密碼最小使用時間
-M:修改密碼最長使用時間
-W:警告時間
查看用戶的相關信息:
id
-n 顯示名稱
-u 顯示UID
-g:顯示基本組ID
-G:顯示所有組ID
who 顯示當前登錄用戶
whoami:顯示當前終端登錄的用戶
su:Swith User
切換用戶
-l:登陸式切換
-c:不切換用戶,直接執行命令
練習
1.創建一個用戶mandriva,其中ID號為2002,基本組為distro(組ID為3003) 附加組為linux
useradd -u 2002 -g distro =G linux mandriva
2.創建一個用戶fedora,其全名為Fedora Community,默認為shell為tcsh
useradd -c "Fedora Community" -s /bin/tcsh fedora
3.修改mandriva的ID號為4004,基本組為Linux,附加組為distro和fedora
usermod -u 4004 -g linux -G distro,fedora
4.給fedora加密碼,並設定其密碼最短使用期限為2天最長為50天
passwd fedora
chage -m 2 -M 50 fedora
5.將mandriva的默認shell改為/bin/bash
usermod -s /bin/bash mandriva
chsh
答案不唯一