目录
软链接特征:类似Windows快捷方式(便于管理,便于使用)
命令格式:命令 [-选项] [参数]
说明:
- 个别命令使用不遵循此格式
- 当有多个选项时,可以写在一起
- 简化选型(-a)与完整选项(--all使用了两个--)
一、目录处理命令
ls
ls -a /:显示指定目录下的所有文件,包括所有的隐藏文件(以.开头的文件)
ls -l /: 显示了每个文件的详细信息 ls-lh /: 文件的大小可以以K的形式显示
-rw-r--r--
- 第一个字符表示文件类型(-:二进制文件 d:目录 l:软连接文件)
rw-r--r--
- u g o
- u:所有者 g:所属组 o其他人
- r:读 w:写 x:执行
ls -ld /:显示当目录本身的信息,而不显示目录下的内容
ls -i /: 查询每个文件或者目录的inode值(类似于身份证号)
mkdir
命令所在路径:/bin/mkdir
执行权限:所用用户
mkdir [-p] [目录名]
-p表示递归创建,可以同时创建多个目录
mkdir /tmp/a /tmp/b
cd
shell内置命令 .表示当前目录 ..表示上一级目录
cd ..(回到上一级目录)
rmdir-删除空目录
pwd-查看当前的工作目录
cp-复制文件
cp -rp [原文件或目录][目标目录]
- -r 复制目录
- -p 保留文件属性 (比如原有文件的修改时间不会发生改变)
可以同时复制多个文件,只要把多个文件写在一行,然后再写上目标目录即可 cp -r /root/a.txt /root/b.txt /tmp
可以复制的时候修改名称 : cp -r /root/a.txt /root/newA.txt
mv-剪切文件、改名
mv [原文件或目录] [目标目录]
- 不需要 -r选项
- 可以同时剪切多个文件至目标目录
- 也可以在剪切的时候对文件进行改名
- 在同样的位置移动文件就好比是改名: mv a b
rm-删除文件或目录
rm -r:删除目录
rm -f:强制删除
rm -rf:删除所有的文件而且不会出现询问确认
二、文件处理命令
touch-创建空文件
创建带空格的文件 touch "program files":利用双引号引用起来-但是不建议文件名中包含空格
cat-显示文件名-只适合浏览短的文件
cat [文件名]
显示文件内容
-n 显示行号
cat /etc/issue
cat -n /etc/services
不适合浏览非常长的文件,因为只会显示最后一页的内容,可以使用tac(反向显示)
tac-反向显示文件
more-分页显示文件内容-向下翻页
more [文件名]
(空格)或f 翻页
(Enter) 换行
q或Q 退出
more /etc/services
less-分页显示文件内容-可以向上翻页
less /etc/services
[pageUp]:表示可以向上翻一页
[上箭头]:表示往上换一行
加/并输入想要搜索的关键词就可以实现搜索和查找,会显示所有查找到的内容,如果想要的结果不再当前位置,则可以继续按n键遍历所有可以查找的内容。
head -显示前几行(默认是前10行)
tail-显示后几行
-n 指定行数
-f 动态显示文件末尾内-[比如动态显示不断变化的日志,监控日志]
tail -n 18 /etc/services
三、链接命令-生成链接文件
ln -s [原文件][目标文件]
-s 创建软连接
范例:
ln -s /etc/issue /tmp/issue.soft:创建文件/etc/issue的软链接 /tmp/issue.soft
ln /etc/issue /tmp/issue.hard:创建文件/etc/issue的硬链接 /tmp/issue.hard
软链接特征:类似Windows快捷方式(便于管理,便于使用)
- 1、所有软链接文件的权限都是:lrwxrwxrwx
- 2、文件大小-只是符号链接(所以非常小)
- 3、/tmp/issue.soft -> /etc/issue:箭头指向源文件
硬链接特征
1、拷贝cp -p + 同步更新
2、原文件就算丢失,硬链接仍然可以访问。
3、如何判断一个文件是否是硬链接呢?软链接的话只需要ls -ls一下,看开头的字母是否是l。
4、通过i节点识别,硬链接和原文具有相同的i节点,也正因为这点,可以实现同步的功能。
5、不能跨分区 ln /tmp/issuce /boot/issue :会报错,但是跨分区的软链接是可以的。
6、不能针对目录使用
四、权限管理命令
chmod-改变文件或目录权限
语法:
chmod [{ugoa}{+-=}{rwx}] [文件或目录]
[mode=421] [文件或目录]
-R 递归修改
chmod g+w、o-r issue.txt
chmod g=rwx issue.txt
权限的数字表示
r--------4
w--------2
x--------1
rwxrw-r--
7 6 4
掌握;给出一个权限位写出对应的数字表示,给出数字位,写出对应的权限表示
常用的修改文件权限的方式
chmod 640 issue.txt
chmod -R 777 /tmp:对tmp目录下的所有目录和文件都生效,而不只是tmp目录
对rwx的深入理解
针对文件 | 针对目录;r权限和x权限一定是同时存在的 | ||
r | 读权限 | 可以查看文件内容cat/more/less/head/tail | 可以列出目录中的内容ls |
w | 写权限 | 可以修改文件内容vim | 可以在目录中创建文件、删除文件 touch/mkdir/rmdir/rm |
x | 执行权限 | 可以执行文件 | 可以进入目录cd |
能否删除一个文件不是看是否对这个文件有写权限,而是对删除文件所在的目录有写权限
其他权限管理命令
chown-改变文件或目录的所有者
chown [用户] [文件或目录]
chown newuser file:只有root用户才有更改文件拥有者的权限
chrgp-改变文件或目录的所属组
chgrp [用户组] [文件或目录]
chgrp newgroup file
umask-显示、设置文件的缺省权限
umask -S
u=rwx, g=rx. o=rx
创建一个文件夹
mkdir dir
ls -ld dir
显示的结果是: drwxr-xr-x
创建一个文件
touch file
ls -l file
显示的结果是:-rw-r--r--
可以发现文件和目录相比:都是只少了x而已,也就是说默认创建的文件没有可执行权限,但默认创建的目录需要写执行权限,因为必须能够进入此目录
如果在命令行中直接进入umask:最终会输出0002(代表什么呢?)
0 特殊权限
022 --- -w- -w-
777 rwx rwx rwx
022 --- -w- -w-
-----------------------
rwx r-x r-x
因此:如果我们看到umask的值如果为022,实际上创建目录的权限是 rwx r-x r-x(755),如果是二进制文件的话,为rw- r-- r--(644)
一般情况下,不建议去更改umask的值,如果现在有这样的要求,希望默认创建出来的文件夹的权限是700 (rwx --- ---),默认创建出来的文件的权限是(rw- --- ---),那么如何计算umaks的值呢?
777 rwx rwx rwx
--- rwx rwx (求出的mask的值是077)
---------------------------
700 rwx --- --- 目录
rw- --- --- 文件