一、查看文件信息
indoe和目录项
# df命令查看每个硬盘分区的inode总数和已经使用的数量
df -i
# 查看inode的大学
xfs_growfs /dev/sda1|grep "isize"
# 查看文件的indoe号码
ls -i
stat查看文件信息
# 文件的详细信息
stat anaconda-ks.cfg
# -t参数是在一行内输出显示
stat anaconda-ks.cfg -t
# %F输出文件类型
stat anaconda-ks.cfg -c %F
# %i输出文件的inode号码
stat anaconda-ks.cfg -c %i
# %G输出文件的所属组名
stat anaconda-ks.cfg -c %G
# -f显示文件所在文件系统在的状态信息
stat anaconda-ks.cfg -f
ls查看文件信息
# 查看文件的详细信息
ls
# -l以较长的格式查看文件信息
ls -l
# -i查看inode号码
ls -i 文件名
# -s查看文件占用磁盘空间的大小
ls -s 文件名
二、查看文件路径
tree
pwd
三、通配符
*:将匹配0个(即空白)或者多个字符
?:将匹配任何一个字符且只能是一个字符
[a-z]:将匹配a~z范围内的所有字符
[^a-z]:将匹配除a~z范围外的其他字符
[xyz]:将匹配方括号中的容易一个字符
[^xyz]:将匹配不包括方括号中的字符的其他字符
四、shell中特殊符号
五、文件和目录管理
pwd显示当前用户所处工作目录
cd命令改变工作目录
ls命令列出目录和文件信息
touch命令创建空文件
mkdir命令创建目录
rmdir命令删除空目录
cp命令复制文件和目录
mv命令移动文件和目录
rm删除文件和目录
file命令查询文件类型
六、软硬链接
软硬链接的区别
- 硬链接记录的是目标文件的inode,软链接记录的是目标文件的路径
- 软链接类似于快捷方式,硬链接则类似于备份
- 软连接可以跨分区(文件系统)创建链接,而硬链接只能在本分区(文件系统)内创建链接
硬链接使用
软链接的使用
七、内容显示
cat命令显示文本
head命令显示文件内容
nl命令显示文件内容
wc命令统计文件内容
5是字节数
18是行数
91是字数
通过管道可以统计目录中的文件
八、输入/输出和应用
find命令使用
# 查看当前目录下有哪些文件
[root@localhost ~]# find .
# -name参数指定文件名称 -o指定多个-name参数
find -name "*.txt" -o -name "*.bak"
# -type f查找普通文件
# -size +500k 限制文件大于500KB
[root@localhost etc]# find -type f -size +500k
# -delete参数把找到的文件进行删除
[root@localhost ~]# find *.txt -delete
grep命令使用
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
# -n参数显示行号
[root@localhost etc]# grep -n "root" /etc/passwd
# 查找当前目录中以"conf"结尾的且包含network字符串的文件,
# 并将这些文件以列表形式显示出来
[root@localhost etc]# grep -l 'network' *.conf
链式查找
# -v输出/etc/passwd文件内容中不包括nologin字符串的行,并输出该行号
[root@localhost etc]# grep -n -v "nologin" /etc/passwd
tr命令使用
tr命令在于用于删除文件中的控制字符串或进行字符转换,可以对来自标准输入的字符进行行替换,压缩和删除等,将一组字符变成另外一组字符
删除所有重复出现的字符,只保留第1个字符
[root@localhost ~]# echo "Hellooo Pythonnnn"|tr -s "[ on]"
Hello Pytho
删除中间出现的所有空格
[root@localhost ~]# echo " hello Python "|tr -d "[ \t]"
helloPython
将字母大小写进行相互转换
[root@localhost ~]# echo "HELLO world"|tr '[A-Za-z]' '[a-zA-Z]'
hello WORLD
cut命令使用
cut命令用于文件内容查看,显示行中指定部分,删除文件中指定字段等
# -d参数表示字符串以空格进行分隔
cut -f2,3 -d " " test1.txt
# -c对文件内容中的字符进行了处理
# -c1-2表示只显示第1个和第2个字符
cut -c1-2 test1.txt
# -c3-表示显示从第3个字符开始到结尾的所有字符
cut -c3- test1.txt
paste命令使用
paste命令主要用来合并多个文件的内容,注意需要文件内容的行数一样,另外默认是空格分隔,如果要指定分隔方式,可以使用-d参数
sort命令使用
sort命令用于排序,它会将文件的每一行作为一个单位进行相互比较。
-r是降序排列 -o是写入文件
-t’ ’ 表示比较字符串以空格为分隔符
-k按第几列的数据进行排序
diff命令的使用
sed命令的使用
sed是一种流编辑器,能完美配合正则表达式使用,功能强大。
awk命令的使用
awk是一种处理文本文件的命令,也是一个强大的文本分析工具
unmae命令查看系统信息
hostname命令显示或修改主机名称
cal命令显示日历
date命令显示或者设置日期时间
history命令查看历史命令
-c参数清除历史记录
九、用户/用户组/权限管理
# 新建一个名称为develop的用户组,GID为9999
[root@Manba77-centos7 ~]# groupadd develop -g 9999
# 新建一个名称为lihua的用户,UID为1500,并将develop设置为其附加组
[root@Manba77-centos7 ~]# useradd lihua -u 1500 -G develop
# 新建一个名称为xiaoming的用户,UID为2000,并将/usr/xiaoming设置为主目录
[root@Manba77-centos7 ~]# useradd xiaoming -u 2000 -d /usr/xiaoming -m
# 新建一个wangwu的用户,UID为2500,并将其shell设置为不可登录(/sbin/nologin)
[root@Manba77-centos7 ~]# useradd wangwu -u 2500 -s /sbin/nologin
# 以上3个新建用户的密码均设置为123456
[root@Manba77-centos7 ~]# echo 123456|passwd --stdin lihua
更改用户 lihua 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@Manba77-centos7 ~]# echo 123456|passwd --stdin xiaoming
更改用户 xiaoming 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@Manba77-centos7 ~]# echo 123456|passwd --stdin wangwu
更改用户 wangwu 的密码 。
passwd:所有的身份验证令牌已经成功更新。
# root家目录新建task11目录,并且切换到该目录
[root@Manba77-centos7 ~]# mkdir task11
[root@Manba77-centos7 ~]# cd task11
# 将新建的3个用户的密码信息保存到exam1文件中
[root@Manba77-centos7 task11]# tail -3 /etc/passwd > exam1
# 新建一个名称为exam2的文件夹
[root@Manba77-centos7 task11]# mkdir exam2
# 将exam1文件的所有者改为xiaoming
[root@Manba77-centos7 task11]# chown xiaoming: exam1
# 将exam2文件夹的所属组改为develop
[root@Manba77-centos7 task11]# chown :develop exam2
# 设置exam1文件的所属用户对exam1文件有全部权限,其他人只有只读取权限。
# exam2文件夹下所创建的文件的所属组自动被设置为develop
# 方法一:使用字母来表达用户权限的命令
[root@Manba77-centos7 task11]# chmod u=rwx exam2
[root@Manba77-centos7 task11]# chmod g=r exam2
[root@Manba77-centos7 task11]# chmod o=r exam2
[root@Manba77-centos7 task11]# chmod g+s exam2
# 方法二:使用数字来表达用户权限的命令
[root@Manba77-centos7 task11]# chmod 2744 exam2
# 设置wangwu对exam1文件没有任何权限,develop用户组只有读取得到权限
[root@Manba77-centos7 task11]# setfacl -m u:wangwu:--- exam1
[root@Manba77-centos7 task11]# setfacl -m g:develop:r-- exam1
# 查看exam1文件的所有权限
[root@Manba77-centos7 task11]# getfacl *
# 设置lihua可以调用root用户权限修改exam1文件的内容
# 并在exam1文件的最后一行增加文本“success”
[root@Manba77-centos7 task11]# visudo
# 在最后一行写入内容
lihua ALL=(root) NOPASSWD:/bin/vim exam1
# 切换lihua
su lihua
# 编辑exam1文件
sudo vim exam1
#设置develop用户组可以调用root用户权限在根目录/下新建目录
[root@Manba77-centos7 task11]# visudo
# 在最后一行插入
%develop ALL=(ALL) NOPASSWD:/bin/mkdir