定義一個對所有用戶都生效的命令別名
要在全局生效,可在/etc/profile.d文件夾下建立.sh結尾文件
如:touch env.sh
加入 alisa cdnet='cd /etc/sysconfig/network-scripts/'
. env.sh 讓它生效
測試結果如下:
su - dcrfan
Last login: Fri Nov 9 00:17:27 CST 2018 on :0
[dcrfan@centos7 ~]$cdnet
[dcrfan@centos7 network-scripts]$pwd
/etc/sysconfig/network-scripts
顯示/etc/passwd文件中不以/bin/bash結尾的行
執行grep -v ".*/bin/bash$" /etc/passwd
結果:
[root@centos7 network-scripts]#grep -v ".*/bin/bash$" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:995:993::/var/lib/chrony:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:992:987::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
tom:x:5001:5001::/tmp/tom:/bin/zsh
3.找出/etc/passwd文件中,包含二位數字或者三位數字的行
執行命令egrep ".*\b[0-9]{2,3}\b" /etc/passwd
結果如下
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
chrony:x:995:993::/var/lib/chrony:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:992:987::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
4. 顯示/proc/meminfo文件中以大寫字母或小寫字母S開頭的行
grep "^[sS]" /proc/meminfo
sed -n /^[sS]/p /proc/meminfo
grep -i "^s" /proc/meminfo
結果如下
SwapCached: 3268 kB
SwapTotal: 2097148 kB
SwapFree: 2049412 kB
Shmem: 12928 kB
Slab: 100388 kB
SReclaimable: 52500 kB
SUnreclaim: 47888 kB
5.使用echo輸出一個絕對路徑,使用egrep去除路徑名,類似dirname /etc/passwd 的結果
執行命令 echo /etc/postfix/access/ | egrep -o ".*/."|egrep -o ".*/"|egrep -o ".*[^/]"
/etc/postfix
6.找出ifconfig中的ip地址。
ifconfig eth0 | grep "inet "|tr -s " "|cut -d" " -f3
192.168.1.103
7.vim定製自動縮進4個字符
修改etc/vim/vimrc 或者 家目錄的.vimrc文件
添加set tabstop=4
8.編寫腳本實現自動添加三個用戶,並計算三個用戶的uid之和
#!/bin/bash
declare -i sumid
for i in {1..3};do
if useradd user$i &>/dev/null ;then
echo "the user$i is successful add"
else
echo "the user$i is exist"
fi
id=`grep user$i /etc/passwd|cut -d":" -f3`
let sumid=sumid+id
done
echo "the sumuid is "$sumid""
執行腳本結果如下:
./autoadduser.sh
the user1 is successful add
the user2 is successful add
the user3 is successful add
the sumuid is 15009
9.find基本用法
find [OPTION]... [查找路徑] [查找條件] [處理動作]
查找路徑:指定具體目標路徑;默認爲當前目錄
查找條件:指定的查找標準,可以文件名、大小、類型、 權限等標準進行;默認爲找出指定路徑下的所有文件
處理動作:對符合條件的文件做操作,默認輸出至屏
查找條件
-maxdepth level 最大搜索目錄深度,指定目錄爲第1級
-mindepth level 最小搜索目錄深度
-name "文件名稱":支持使用通配符 *, ?, [], [^]
-iname "文件名稱":不區分字母大小寫
-inum n 按inode號查找 -samefile name 相同inode號的文件
-links n 鏈接數爲n的文件
-regex "PATTERN":以PATTERN匹配整個文件路徑字 符串,而不僅僅是文件名稱 ;正則匹配不能夠只匹配部分,要匹配完全路徑
-user USERNAME:查找屬主爲指定用戶(UID)的文件
-group GRPNAME: 查找屬組爲指定組(GID)的文件
-uid UserID:查找屬主爲指定的UID號的文件
-gid GroupID:查找屬組爲指定的GID號的文件
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
-empty 搜索空文件和空目錄之類的 !取反
-type TYPE: • f: 普通文件 • d: 目錄文件 • l: 符號鏈接文件 • s:套接字文件 • b: 塊設備文件 • c: 字符設備文件 • p: 管道文件
-size [+|-]#UNIT 常用單位:k, M, G,c(byte) -2k 表示0到1k文件;2k 表示1k(但不包括1k)到2k文件 ;+2k 表示大於2k(不包括2k)文件
-atime(min) -mtime(min) -ctime(min) -2 表示0到2天(不包括2天)文件 ; 2表示2到3天(不包括3天)文件 :+2 表示3天以上文件
-perm 666 精確匹配 ; /666 (或) 只要有一個用戶滿足6或以上權限就匹配 ;-666(並且) 要三個用戶滿足6或以上權限纔可以 ; 如果出現0表示不判該用戶權限 例如 /002 表示不判斷所屬組和所屬用戶只判斷其他人滿足2以上權限 -002 也如此判斷; 但精確匹配時0表示爲沒權限
-a 與操作 -o 或操作 !非操作 !A -a !B = !(A -o B) !A -o !B = !(A -a B)
處理動作
-print:默認的處理動作,顯示至屏幕
-ls:類似於對查找到的文件執行“ls -l”命令
-delete:刪除查找到的文件
-fls file:查找到的所有文件的長格式信息保存至指定文件中
-ok COMMAND {} \; 對查找到的每個文件執行由COMMAND 指定的命令,對於每個文件執行命令之前,都會交互式要求用 戶確認
-exec COMMAND {} \; 對查找到的每個文件執行由 COMMAND指定的命令
{}: 用於引用查找到的文件名稱自身
-path "目錄" -a -prune 排除某個目錄
find 命令的動作可以用 |xargs 命令 來傳遞參數分割處理 :find | xargs COMMAND
示例:
find /etc/ -maxdepth 3 -mindepth 3 找在/etc/目錄第3層文件
find /etc/ -path "/etc/sane.d" -a -prune -o -name "*.conf" 查找/etc/下的.conf結尾文件,排除/etc/sane.d目錄
find /etc/ \( -path "/etc/sane.d" -o -path "/etc/speech-dispatcher" \) -a -prune -o -name "*.conf" 排除兩個目錄
find /etc/ ! -perm /222 -ls 查找/etc/下所有人都沒有寫權限
find -name "test*" -exec rm -r {} \ 或者 find -type d -name "test*" -delete 刪除test開頭的目錄
find /sbin -perm /7000 -ls 查找/sbin 下具有特殊權限的文件 suid guid等
find /data –type f -perm 644 -name “*.sh” –exec chmod 755 {} \; 把/data/目錄下的 .sh結尾文件加上執行權限
find ~ -perm -002 -exec chmod o-w {} \ ; 在你的主目錄中尋找可被其它用戶寫入的文件 並去掉其他用戶寫權限
find -name “*.conf” -exec cp {} {}.orig \; 備份配置文件,添加.orig這個擴展名
find /tmp -ctime +3 -user dcrfan -ok rm {} \; 提示刪除存在時間超過3天以上的dcrfan的臨時文件