Linux :文件与目录管理
参考:https://www.runoob.com/linux/linux-file-content-manage.html
使用Linux的注意事项
Linux严格区分大小类型
Linux中所有文件内容以文件形式保存,包括硬件
硬盘文件是/dev/sd[a-p]
光盘文件是/dev/sr0等
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
Linux不靠扩展名区分文件
Linux所有存储设备都必须挂载之后用户才能使用,包括硬盘、U盘和光盘
Linux各目录作用
ctrl+c终止操作
ctrl+l 清屏
1、命令格式与目录处理命令ls
命令个格式 命令 [-选项] [参数]
例:ls -la /etc
说明: 1)个别命令使用不遵循此格式
2)当有多个选项时 可以写在一起
3) 简化选项与完整选项
-a 等于 --all(显示所有文件 包括隐藏文件 在Linux中以 . 开头的文件就是隐藏文件)
ls
功能:显示目录文件
位置:/bin/ls
ls -l 显示文件的详细信息 l—long
ls -d 查看目录的详细
ls -h 以K M G 单位显示文件的大小
ls -i 查看文件i结点
ifconfig 查看当前的网卡信息
ifconfig eth0 192.168.118.156 设置虚拟机的ip地址
注意:此方式设置的ip地址在虚拟机关机后会失效
df 查看分区 类似Windows中打开我的电脑
2、目录处理命令 mkdir (make directories)
功能: 创建新目录 如:mkdir /tmp/Mp3
如果在中间加入-p 可以实现递归创建目录 如mkdir -p /tmp/music/Mp3
命令所在路径 : /bin/mkdir
执行权限: 所有用户
cd命令(change directory)
所在路径:shell 内置命令
执行权限:所有用户
语法 : cd [目录]
如: cd /tmp/music/mp3 切换到指定目录
cd .. 回到上一级目录
pwd 命令(print working directory)
功能: 显示当前目录
所在路径: /bin/pwd
执行权限: 所有用户
语法 : pwd
rmdir命令 (reomve empty directories)
功能: 删除空目录
所在路径: /bin/rmdir
执行权限:所有用户
如 : rmdir /tmp/Mp3
cp命令(copy)
功能:复制文件或目录
所在路径: /bin/cp
执行权限: 所有用户
语法:cp -rp [源文件或目录] [目标目录]
-r 复制目录
-p 保留文件属性
如: cp -r /tmp/Mp3 /tmp/Mp4 将指定目录/tmp/Mp3复制到/tmp/Mp4下
如果想将复制的目录Mp3 在目标目录中重命名 直接在目标目录后加名字即可 如 cp -r /tmp/Mp3 /tmp/Mp4/Mp5
cp -rp /tmp/Mp1 /tmp/Mp2 /tmp/music 将Mp1和Mp2目录同时复制到 music目录下 并能够保持目录属性
mv命令(move)
功能: 剪切文件 改名
所在路径:/bin/mv
执行权限: 所有用户
语法: mv [源文件或目录] [目标目录]
在当前目录下改名 mv 文件或目录名 新的名字
rm命令(remove)
功能: 删除文件
所在路径: /bin/rm
执行权限:所有用户
语法: rm -rf [文件或目录]
删除文件 如 rm /tmp/Mp1/yuan.long
· -r 删除目录
-f 强制删除 (不会提示 直接删除) 如 rm -rf /tmp/music/Mp1
touch文件处理命令
功能: 创建空文件
所在路径:/bin/touch
执行权限: 所有用户
语法: touch [文件名]
如: touch /tmp/music.list
cat文件处理命令
功能:显示文件内容
语法: cat [文件名]
-n 显示行号 cat -n 文件名
路径: /bin/cat
执行权限: 所有用户
如: cat /etc/issue
cat -n /etc/services
tac 命令
功能: 反向显示文件内容
执行权限: 所有用户
所在路径: /uss/bin/tac
语法:tac [文件名]
如: tac /etc/issuc
more 文件处理命令
所在路径: /bin/more
执行权限: 所有用户
功能: 分页显示文件内容
语法: more [文件名]
(空格)或f 翻页
Enter 换行
q或Q 退出
如 : more /etc/serivces
less 文件处理命令
所在路径 :/usr/bin/less
执行权限: 所有用户
语法 : less [文件名]
功能: 分页显示文件内容(可按pageUp向上翻页 向上键 查看上一行)
如 less /etc/service 同样可以使用空格键 和Enter键 但使用less 命令 后可以接着输入 /+关键字 进行搜索 然后按n(next)键继续向下搜索
head 文件处理命令
所在路径: /usr/bin/head
执行权限: 所有用户
语法: head [文件名]
功能: 显示文件前几行
-n 指定行数
如 : head -n 20 /etc/services
head /etc/services 默认10行
tail 文件处理命令
所在路径:/usr/bin/tail
执行权限:所有用户
语法:tail [文件名]
功能: 显示文件后几行
-n 指定行数
-f 动态显示文件末尾内容
如 : tail -n 18 /etc/services
ln命令(link)
所在路径 /bin/ln
执行权限 : 所有用户
语法 : 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
软连接 以l开头 作用类似于Windows中的快捷方式 软连接的权限是源文件决定的 权限为三个rwx
硬链接 类似拷贝 可以挺过i节点来区分软连接和硬链接文件 源文件和硬链接文件的i节点是一样的 在Linux中通过i节点来区分不同的文件 源文件和硬链接文件的i节点相同因此他们是引用同一个文件 这也是为什么会同步更新的原因
特点 : 源文件和硬链接会同步更新 作用就更新是cp -p +同步
如果其中一个文件删除或丢失另外文件依然存在
不能扩分区(软连接可以扩分区)
不能针对目录使用(软连接可以)
更改文件属性
1、chgrp:更改文件属组
语法:
chgrp [-R] 属组名 文件名
参数选项
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件属主,也可以同时更改文件属组
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
进入 /root 目录(~)将install.log的拥有者改为bin这个账号:
[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
将install.log的拥有者与群组改回为root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
3、chmod:更改文件9个属性
Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
- r:4
- w:2
- x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:
chmod [-R] xyz 文件或目录
选项与参数:
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
- -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么命令如下:
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那如果要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。
符号类型改变文件权限
还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:
- (1)user
- (2)group
- (3)others
那么我们就可以使用 u, g, o 来代表三种身份的权限!
此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:
chmod | u g o a |
+(加入) -(除去) =(设定) |
r w x |
文件或目录 |
如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
# touch test1 // 创建 test1 文件
# ls -al test1 // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:
# chmod a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1