2.1 基本命令
2.1.1 目录及文件基本操作
pwd
pwd -p 返回链接的真实路径
cd /usr/src/ # 切换工作目录
cd .. # 切换至上一级目录
cd - # 返回前一个目录
cd # 切换回家目录
ls
ls /etc /显示该目录下的子文件与目录名称
ls -a /包括隐藏文件
ls -l /查看详细信息
ls -ld /root /-d 显示目录本身的信息
ls -lh /人性化显示容量信息
ls -lu /etc/passwd /显示文件或查看最后的访问时间
ls -lt /查看信息并以修改时间排序
touch hello.txt
mkdir leo
mkdir -p /tmp/test/jerry/book/computer
cp /etc/hosts /tmp/ # cp 源 目标 复制至tmp目录下
cp /etc/hosts /tmp/host #复制文件 复制至tmp目录下并修改名字
cp -r /var/log/ /tmp/ # -r 复制目录/log 至 /tmp/目录下 ,复制子文件与子目录
cp -a /etc/passwd /var/tmp # -a 复制时保留文档的所有属性
rm readme.txt
rm -rf Jacob
mv hello.txt hello.doc /重命名
mv hello.doc /root/ #移动
find -name hello.doc //查找当前目下名为的文件 //find where what
find /root -name "*.log"
find -iname "Jacob" #不区分大小写
find / -empty # 查找空文件或目录
find / -group tom
find / -mtime -3 # 三天内被修改的文档
find / -mtime +4 # 四天前被修改过的文档
find / -mtime 2 #两天前的当天
find ./ -size +10M # 大于M的文档
find ./ -type f 文件(f),目录(d),设备(b,c),链接(l)
find ./ -type l
find / -user tom # tom 所拥有的所有文档
find ./ -size +1M -exec ls -l {} \;
find / -size +1M -a -type f /-a 并且 -o 或者
du /root # 查看该目录及子目录的容量信息
du -a /root //查看所有目录以及文件的容量信息
du -sh /root # -s 仅显示总容量 -h 人性化显示容量信息
2.1.2 查看文件内容
cat /root/install.log
cat -n /etc/passwd # 显示行号,包括空白行
cat -b /etc/passwd # 显示行号,不包括空白行
more /root/install.log
less /root/install.log
head -c 2K /root/install.log # 前2K内容
head -20 /root/install.log # 前20行
tail -c 2K /root/install.log
tail -20 /root/install
tail -f /var/log/messages # 动态查看文件
wc /root/install.log
wc -c /root/install.log //字节统计
wc -l /root/install.log //行数统计
wc -w /root/install.log //单词统计
grep th test.txt
grep --color th test.txt
grep -i the test.txt # ignore 大小写
grep -w num test.txt # 匹配单词num
grep -v the test.txt # 取反, 匹配不包括the关键词的行
echo "Hello The World"
echo -e "\\" # -e 屏蔽反斜线后面字符的原本含义
\
echo -e "\a" #报警器
echo -e "11\b22" #退格键
122
echo -e "hello\c" # 不换行
echo -e "hello\fthe world" #\f 表单格式
hello
the world
echo -e "hello\tthe\tworld" #\t 水平tab键
Hello the world
echo -e "hello\vthe\vworld" #\v 垂直tab键
echo -e "\033[32mOK\033[0m" # 32为绿色
2.1.3 链接文件
ln -s /test/hello.txt /tmp/hi.txt # -s 为软连接
ln -s /test/ /var/test # 目录链接
rm /test/hello.txt;cat /tmp/hi.txt
ln /test/hello.txt /test/hi.txt
rm /test/hello.txt
2.1.4 压缩及解压
gzip hello.txt
gzip -d hello.txt.gz
bzip2 hello.txt
bzip2 -d hello.txt.bz2
tar -cf etc.tar /etc/ # 将 /etc/ 目录打包保存为 etc.tar
tar -czf boot.tar.gz /boot/ # -z gzip格式 // create
tar -cjf etc.tar.bz2 /tmp/ # -j bzip2格式
tar -czf mess.tar.gz /var/log/messages --remove-files --remove-files 打包后删除源文件
tar -delete etc/hosts -f etc.tar # -delete 从打包文件中删除hosts文件
tar -f etc.tar -r /root/install.log # -r 追加文件至打包文档 --rider 追加
tar -tf boot.tar.gz # -t 列出打包文档的内容
tar -tvf etc.tar # 查看详细信息
tar -xzf boot.tar.gz //-czf -xzf #解压至当前目录
tar -xjf etc.tar.bz2 //-cjf -xjf
tar -xzf boot.tar.gz -C /tmp //-C 指定解压路径
2.3 账户与安全
2.3.2 创建账户与组
useradd Frank # 创建普通账户Frank,以及对应的组
useradd -c administrator -d /home/admin -e 2017-12-24 \
-g root -G bin,adm,mail admin # 创建普通账户,名为admin, -c 账号全名 -d 家目录 -e 失效日期 -g 基本组 -G 附加组
useradd -s /sbin/nologin -M user2 # -s 设置登录的shell -M 不创建家目录
groupadd tom # 创建tom 组
groupadd -g 1000 jerry # 创建GID为1000的组 Jerry
id root # 查看root账户及相关组信息
2.3.3 修改账户及组
passwd # 为当前用户设置新密码
passwd tom # 指定修改tom的密码
echo "123456" | passwd --stdin tom
passwd -l tom # 锁定账户
passwd -u tom # 解锁账户
passwd -d tom # 设为无密码可登陆
usermod -d /home/tomcat tom # 修改tom的家目录
usermod -e 2017-10-1 tom #
usermod -g mail tom /修改基本组
usermod -G mail tom /修改附加组
usermod -s /bin/bash user2 /修改账户登陆shell
usermod -u 1001 tom # 修改账户的UID
2.3.4 删除账户及组
userdel tom # 删除账户
userdel -r tom #删除账户并删除家目录
groupdel jerry #删除组 Jerry
2.3.5 账户与组文件解析
cat /etc/passwd # 账户信息文件
cat /etc/shadow # 账户密码文件
cat /etc/group # 组账户信息文件
cat /etc/gshadow # 组账户密码文件
2.3.6 文件及目录权限
u,g,o,a
rwx
ls -l
ls -l install.log
chmod u=rwx,g=rwx,o=rwx install.log
ls -l install.log
chmod a=rw install.log
ls -l install.log
chmod g-x,o-wx install.log
ls -l install.log
chmod 700 install.log
chmod 644 install.log
chmod 755 /home
chmod --reference=install.log.syslog install.log # 以A文件为标准修改B的权限
chown user2:mail install.log # 修改文件的所有者为user2 ,所属组为mail
chown :root install.log # 仅修改文件所属组为root
chown root install.log # 仅修改文件所有者为root
2.3.7 账户管理案例
#创建共享目录
mkdir -p /var/{tech,office,finance,admin,market}
#创建组账户
groupadd teach
groupadd finance
groupadd office
groupadd admin
groupadd market
#创建组管理员账户
useradd -g teach Op_teach
useradd -g office Op_office
useradd -g finance Op_finance
useradd -g admin Op_admin
useradd -g market Op_market
#创建普通员工账户
useradd -g teach endy
useradd -g office lucy
useradd -g finance jacob
useradd -g admin jerry
useradd -g market marry
id jacob
#添加组管理员
gpasswd -A Op_teach teach
gpasswd -A Op_office office
gpasswd -A Op_finance finance
gpasswd -A Op_admin admin
gpasswd -A Op_market market
chown Op_teach:teach /var/teach
chown Op_office:office /var/office
chown Op_finance:finance /var/finance
chwon Op_admin:admin /var/admin
chown Op_market:market /var/market
chmod 755 /var/{teach,office,finance,admin,market}
2.3.8 ACL访问控制权限
getfacl install.log
setfacl -m u:user1:rw test.txt # -m 添加ACL条目,使用户user1对test.txt 文件可读可写
setfacl -m g:user1:r test.txt # 使组user1对test.txt 文件可读
setfacl -x g:user1 test.txt # -x 删除user1组的ACL条目
setfacl -x u:user1 test.txt
setfacl -b test.txt # -b 删除所有附加的 ACL 条目