学习环境
CentOS Linux release 7.6.1810 (Core)
- 显示文件、目录与其相关属性信息
# ls -d #显示目录的信息,而不是显示该目录下的文件
# ls -a #列出目录下的所有文件,包括以.开头的隐藏文件
# ls -S #大写的s,以文件容量大小排序
# ls -h #将文件容量以(KB、MB、GB等方式)列出来,不加h,默认以字节(Byte)为单位
# ls -l #列出文件详细信息,ls –l 默认可以简写成 ll(两个小写的L)
Ps:不同参数也可组合使用,如ls -lh,ls -lah
以命令 ll /etc/passwd 输出结果为例,相关属性介绍如下

- linux中常见的文件类型
- :表示文件
l :链接文件,类似windows中的快捷方式
c :设备文件,提供串行的接口设备(如键盘、鼠标等)
b :设备文件,提供存储的接口设备(硬盘等)
d :表示目录
- 文件内容查看
# cat -b /etc/passwd #从首行开始显示,默认不显示行号,参数-p列出行号
# tac /etc/passwd #从末行开始显示
# more /etc/ssh/sshd_config #空格向下翻一页,回车向下翻一行,b翻到第一页,q离开
# less /etc/ssh/sshd_config #空格/pagedown,向下翻一页;pageup,向上翻一页;/,搜索;q,退出
# head /etc/passwd #默认显示文件头10行
# head -n 5 /etc/passwd #显示前5行,-n 指定显示几行
# tail -5 /var/log/messages #显示日志文件尾5行
# tail -f /var/log/messages #实时查看日志,Ctrl+c退出
# wc /etc/passwd #显示文件的行数、字数、字节数,加参数-l,只显示行数
- 创建文件、文件夹(目录)
# touch abc #当前下创建一个名为abc的文件
# touch file{1..6} #同时创建file1,file2,file3,file4,file5,file6六个文件
# ln -s abc /tmp/bcd #为文件abc创建一个软链接文件,在tmp目录下,文件名为bcd
# mkdir abc #当前目录下创建一个名为abc的目录
# mkdir /tmp/dir1/dir2 #创建dir2目录,在不加-p参数的情况下,/tmp/dir1/目录必须已存在
# mkdir -p /tmp/dir1/dir2/ #递归创建目录,/tmp/dir1可以不是现有目录
# pwd #查看当前所在的目录
- 文件、目录复制
# cp file1 /tmp/ #复制file1文件到tmp目录下
# cp file1 /tmp/file7 #复制file1文件到tmp目录下并重命名为file7
# cp file2 file3 /tmp/ #同时复制file1、file2文件到tmp目录下
# cp /tmp/dir1/dir2 /root/ #复制dir2目录到root目录下,dir2必须为空目录,否则要加参数-r
# cp -r /tmp/dir1 /root/ #-r,表示递归复制,复制dir1(包含目录下的所有文件及目录)到root下
# scp /tmp/file1 root@192.168.1.10:/root/ #跨主机复制文件,将file1文件复制到远程192.168.10主机的root目录下
root@192.168.1.10's password: 【输入密码回车】
# scp root@192.168.1.10:/root/file1 /tmp/ #将远程主机/root/file1文件复制到本机/tmp目录下
- 文件、目录移动
# mv file4 /tmp #将file4文件移动到tmp目录下
# mv file5 file8 #相当于重命名文件
# mv /tmp/dir1 /tmp/dir2 /root #同时移动dir1、dir2目录到root目录下
- 文件、目录删除
# rm -f file1 #删除file1文件,-f参数不提示用户确认,直接删除
# rm -f file1 file4 file5 #删除文件,删除目录需要加-r参数
# rm -rf dir1 #删除目录,目录下所有文件及目录都会被删除
- 路径(目录)切换
. :表示当前目录
.. :表示上一级目录
cd或cd ~ :返回用户的家目录
cd .. :返回到上一级目录
cd - :返回到之前的目录
- 文件目录权限
rwx:即read/write/execute,读/写/执行。也可以用数字4/2/1来分别表示r/w/x权限,
如rwx权限可以用数字7(4+2+1)表示,r_x可以用数字5(4+1)表示,以此类推。
- 权限修改常用命令chmod、chown、chgrp
# chmod u+x file1 #给file1文件所有者加上x权限
# chmod g+w,o+w file1 #给file1文件所有属、其它人加上w权限
# chmod o-r file1 #给file1文件其它*权人**限减去r权限
# chmod u=rwx file1 #给file1文件所有者赋于rwx权限
# chmod 655 file1 #相当于给file1文件所有者赋于rw_ 权限,所属组和其它人赋于r_x权限。
# chmod -R 777 dir1 #递归修改,目录下的文件也随之修改
# chown root /home/sam/file1 #修改file1文件所有者为root
# chgrp root /home/sam/file1 #修改file1文件所属级为root
# chown -R apache:apache /var/www/wordpress #修改wordpress目录的所有者及所属组为apache,-R递归修改
Ps:文件的拥有者,即使没有w权限,用vim等工具也可以对文件
强制写入,wq!保存退出,所属组和其它人不行。
- Linux默认权限 umask

管理员默认权限:0022,第一个0表示特殊权限,022,0表示所有者没有被拿走权限,第一个2表示所属组被拿走w权限,第二个2表示其它人被拿走w权限,所以022=rwxr_xr_x,另默认新创建的文件都会被拿走x权限,所以root用户创建的文件默认的权限就是rw-r__r__ 。
普通用户的默认:0002,即普通用户新创建的文件默认权为rw_rw_r__ 。