文件管理
mkdir ??? 創建目錄
-p #創建子目錄,若父目錄不存在,則創建父目錄
例: mkdir -p /app/dir1/dir2
rmdir ??? 刪除空目錄
-p #刪除空目錄,若父目錄為空則同時刪除
ln ????????? 創建硬鏈接 (不能跨分區創建)
-s 創建軟鏈接 (可以跨分區)
重點:源文件相對路徑是相對于目標文件的路徑(不是相對于當前工作目錄的路徑)
file????????? 判斷文件類型
-b 只顯示結果不顯示文件名
-f 批量判斷文件列表中的文件類型
-F 用指定符號替代:(默認輸出格式 文件名:文件類型)
-L 判斷軟連接指向的真實文件的類型
##額外知識點##????
df -i? #查看分區支持的節點編號數
watch -n 1 命令?? 1秒執行一次命令
目錄里存的是文件名和節點號inode
readlink 顯示軟連接的原始文件路徑
重定向和管道
標準輸入0??? 標準輸出1??? 標準錯誤 2
> ? 標準輸出重定向
2>?? 標準錯誤重定向
&>? 所有輸出重定向 等同于 2>&1
tr ?? 替換或刪除字符
-t 字符對應替換
-d 刪除字符
-s 去重(連續重復)
-c 取反 相當于非
cat > f1 單行重定向
cat > f1 <<EOF?? 多行重定向? EOF是結束語(可以是任意字符)
| ??? 管道(默認傳輸標準輸出)
|&?? 傳輸標準輸出和標準錯誤
|tee 屏幕輸出同時存入文件
##額外知識點##
set -C 文件存在禁止覆蓋 (單獨執行)
set +C 取消禁止
/dev/null? 輸出信息重定向到此文件 相當于垃圾箱
mail -s 主題 用戶 <
郵件正文加命令或變量必須是多行重定向
tar -cvf – /home | tar -xvf –
seq -s + 1 10 | bc
seq 1 2 100
用戶組和權限管理
用戶的組:主組、附加組
/etc/passwd 用戶及屬性信息
/etc/group? 組及屬性信息
/etc/shadow 用戶密碼及相關屬性
/etc/gshadow 組密碼及相關屬性
/etc/skel? #創建用戶家目錄模板
/etc/login.defs #創建用戶相關配置
getent ? 查看文件內容(passwd、shadow、gpasswd、gshadow)
+用戶名 ?#查看文件內指定用戶信息
例: getent passwd root
chsh ???? -s ?#更改用戶的shell??????? 例:chsh -s /sbin/nologin zhang
-l??? 列出所有的shell
id 不加用戶名 #顯示當前用戶登陸后的信息(不顯示登陸后更改的信息)
id 用戶名? #從文件中讀取用戶的信息
newgrp 組名 #臨時更換主組,不改文件
vipw? ??? #單獨執行,相當于vi /etc/passwd
vigr ?????? #單獨執行,相當于vi /etc/group
pwck? ?? #檢查passwd文件錯誤
grpck ??? #檢查gshadow文件錯誤
useradd #添加用戶(默認鎖定不能登陸)
-c #添加描述信息
-g #指定主組
-d #指定家目錄
-s #指定shell
-G #指定輔助組
-D 查看創建用戶默認配置文件內容 等同于cat /etc/default/useradd
-s 指定shell
示例:useradd -r -m -d /app/zabbix -s /sbin/nologin zabbix
usermod -d 指定新家目錄路徑
-m 移動家目錄
-s? 更改shell
-L ?#鎖定用戶
-U 取消用戶鎖定 ?。。ㄐ陆ㄓ脩羧∠i定只有centos5可以)
-G 添加輔助組(默認覆蓋)? -aG #追加輔助組
-l ?修改用戶名
-g 修改主組
#刪除附加組??????? usermod -G ” 用戶名? 或者 usermod -G 主組名 用戶名
userdel?? 刪除用戶(只刪除賬號,不刪除其他文件)
-r 刪除用戶及相關文件
passwd? 更改用戶密碼(默認更改當前登陸用戶,加用戶名則更改指定用戶)
groupadd #創建組
su ???????? #切換用戶(非登陸式切換,環境沒變)
su – ????? #登陸式切換
su -root -c ‘命令’? 切換為root執行命令,然后退出root
passwd -e? ? #用戶密碼即時失效(密碼更改時間為0)
chage ????????? #更改用戶口令相關時間
chfn????????????? 添加用戶的描述信息(部門、電話等)
finger??????????? 查看用戶的描述信息
groupadd ??? 創建組
-r 創建系統組
-g 指定組id號
groupdel?????? 刪除組
groupmod ?? 更改組相關屬性
-n 指定新名字
-g 指定新的gid
gpasswd ?????? -a 用戶名 組名? #把用戶加入組(組管理員操作)
-d 用戶名 組名? #把用戶從組里移除
-A 用戶名 組名? #把用戶設置為組管理員
groupmems -l -g 組名 ????????? #查看組內成員
-a 用戶 -g 組???? #把用戶添加到組
-d 用戶 -g 組???? #從組中刪除用戶
-p ????????????????????? #把組內的成員清空
groups ? #查看當前用戶的組
文件權限? r w x (和文件系統有關)
r,w權限對root無效,x有效
acl 訪問控制列表(對多個用戶或組單獨設置權限
小x:所有文件都可以加執行權限
大X:只對目錄和有執行權限的文件加執行權限
chmod ? ? who ? ? ? ? ? ?opt ? ? ? ? ? ? ? ? 文件名
u,g,o,a ? +,-,=?? r,w,x
例:chmod u=rw,g=r,o= 文件名
chown 更改文件所屬組
例: chown bin.ftp f1? 把f1所有者改為bin,所屬組改為ftp
其他:chown –reference f1 f2? 按照f1權限設置f2
chgrp 更改文件所屬組
目錄權限
x:可以進入目錄,基礎權限
r:列出目錄文件列表(需要x)
w:可以在目錄中建或刪除文件(需要x)
umask 影響用戶創建的文件或目錄的權限
目錄:777-umask
文件權限:666-umask=結果奇數位+1??? 或 666-(umask-1)
umask 266 設置umask為266
.bashrc 在文件中更改umask值
umask ?? -p輸出可被調用
-S模式方式顯示
文件中更改umask值:全局 /etc/bashrc 單用戶 ~/.bashrc
suid? 4(u s)? 覆蓋x權限? 權限號4????? #4777
只能作用在二進制程序,不能作用在腳本
用戶執行s權限的程序將繼承所有者的權限
sgid? 2(g s)
二進制程序:用戶執行s權限的程序將繼承所屬組的權限
作用在目錄:目錄下生成的新文件自動繼承目錄所屬組
對于目錄的suid和sgid,只能用 u-s,g-s 去掉
*sticky 1(o t)? #只作用在目錄才有意義
作用在目錄:不能刪除別人的文件
chattr +i/-i 文件名/目錄??? #文件/目錄將不可被更改、刪除、防止誤操作
+a/-a????????????? #只可以追加內容
+A/-A? ???????? #不更新讀時間
lsattr 文件/目錄 顯示特定屬性
ACL 系統中有沒有這個功能取決于文件系統
設置acl之后,g權限位置顯示的是mask權限
setfacl ?? -m u:用戶名:權限 文件名??? #u用戶 g組
group::權限????????? ? #更改文件所屬組權限
mask::權限
-x 同上??????????????? ? #刪除權限
-X 批量文件 文件名?? ? #批量刪除權限
-b 文件名??????????? ? #清空acl
-R
-M 權限文件 文件名? ? #文件中按照格式
-d #默認包含指定權限(新生成文件和舊)等同于d:
-k 目錄名 #刪除默認權限
getfacl 文件名? #查看文件權限
例子:備份恢復acl權限
getfacl -R html > html.acl
setfacl -R -b html
setfacl –restore html.acl
ACL權限生效順序
所有者,自定義用戶,所屬組|自定義組,其他
{???? 權限不能超過mask????? }
例:getfacl f1 | setfacl –set-file=- f2????????????? #f2按照f1的acl權限設置
setfacl -R –set-file=文件名 f2? ?????? #從文件中恢復權限
setfacl –set u::r,u:lqd:rw,g::r,o::- f2??? #對f2文件重新設置權限
mask 限定了自定義用戶和組的最高權限
##額外知識點##
pwunconv??? pwconv ??????????????????? #密碼存放轉換
auth –passalgo=sha256 –update???? #更改加密算法
echo 密碼 | passwd –stdin wang? ?#設置用戶密碼
批量創建賬號和修改密碼
newusers 文件名 #,文件內容格式按照passwd
cat 文件名 | chpasswd? 文件內容格式 用戶名:密碼
文本處理工具
cat -n 加行號
-b 加行號,空行不加? 等價于 nl
-A 顯示所有控制符
-s 壓縮連續空行為一行
-E 顯示結束符
-V win文本能看到^M
tac 反向顯示行
rev 反向顯示列
more 分頁顯示 到底退出 空格下翻 b上翻(管道不起作用)
less 分頁顯示 到底不退出
/文本 搜索文本
head 文件?? #默認讀取前十行
-n 3? 或者 -3???? #顯示前3行
-c3 取前3個字節
tail ???#默認讀取后十行
-f 跟蹤文件后10行 (常做觀察日志文件使用)
-f 文件 &? 在后臺監控文件后10行
-f 文件 -n0 &? #只顯示新增加的行并在后臺運行
-F 跟蹤文件后10行并監控文件名
tailf 等同于 tail -f #性能更好,文件不增長時不訪問文件
cut 剪切內容-以列為單位,默認tab作為分隔符
-d 指定分隔符
-f 指定列
例:? cut -d: -f1-3,7??? –output-delimiter=”分隔符” 文件
#以:作為分隔符取第1和3列?? ??? 更改顯示分隔符
例子:df | cut -c44-46? #取第44到46個字符
paste 將多個指定文件按行合并 默認分隔符為tab
-d’分隔符’? 指定合并后的分隔符
-s 把單個文件合并為一行,并把多個文件追加合并
wc?? 統計? 顯示格式: 行 單詞 字節
-l 行數
-w 單詞數
-L 最長行的字符數
sort 排序 默認第一列
-n 按數字從小到大排序
-r 倒序
-u 去重(去掉重復內容的行)
例子:sort -nr -t: -k1 /etc/passwd
uniq ????? -u 只顯示不重復的行
-c 顯示每行重復出現的次數
-d 只顯示重復的行
##額外知識點##
dd if=/dev/zero of=/boot/bigfile bs=1M count=500???? #創建指定大小的文件
inputfile ? ? ? ? ? outputfile ? ?blocksize ? ?大小
~tab鍵? 查看所有用戶
openssl rand -bash64 100 #生成100位隨機數
(超過100)
lsof | grep deleted ?#查看進程占用的已經刪除的文件(哪些文件被刪除 還沒有釋放空間)
批量創建文件
touch 參數有數量限制
echo f{1..500000}|xargs touch
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88615