4.1 文件处理命令
4.1.1 命令格式与目录处理命令ls
ls
目录查询
命令名称:ls
英文原意:list
-
ls -a
显示所有文件,包括隐藏文件(隐藏文件一般由.
开头,如.anaconda
);-a
的全称为--all
-
ls -l
查询文件的详细信息(long) -
ls -l /etc
该目录下的数据,但不是目录本身 -
ls -ld /etc
查看某个目录本身的详细信息,而不是它底下的数据 -
ls -i
该目录下所有文件对应的 i 节点(inode)
指定查询任意目录:ls /
查询根目录
-rw-r--r--
文件类型&权限
- 文件类型
- 以
-
开头代表 二进制文件 - 以
d
开头代表 目录 - 以
l
开头代表 软链接文件
- 以
- 权限
rw-
r--
r--
- 三种权限:
r
读,w
写,x
执行 - 分别对应:u 所有者 user(文件创建者,只有一个),g 所属组 group(定义一组用户能对该文件有什么样的权限,只有一个),o 其他人 other
- 三种权限:
文件类型及权限 索引次数 所有者 所属组 文件大小(字节(用ls -lh可以以人类方式显示)) 最近修改时间 文件名
-rw-------. 1 root root 1205 3月 3 08:10 anaconda-ks.cfg
-rw-r--r--. 1 root root 24772 3月 3 08:10 install.log
4.1.2 目录处理命令
mkdir
创建目录
命令名称:mkdir
英文原意:make directories
功能:创建目录
命令所在路径:/bin/mkdir
执行权限:所有用户
语法:mkdir [目录名] 在已存在的目录下创建新文件夹
mkdir -p 递归创建:在创建目录的同时创建子目录
[]# mkdir /tmp/xiaodianying % 可以创建目录:只能在已存在的目录下创建新文件夹
[]# mkdir /Japan/boduo % 无法创建目录:无法在不存在的目录下创建新文件夹
[]# mkdir -p /tmp/Japan/buoduo % 可以创建目录:递归创建
[]# mkdir /tmp/Japan/cangjing /tmp/Japan/longze % 可以创建目录:同时创建多个目录
[]# mkdir xiaodianying % 参数中未指定绝对路径,在当前目录下创建
cd
切换目录
命令名称:cd
英文原意:change directory
功能:切换到指定目录
命令所在路径:shell 内置命令
执行权限:所有用户
语法:cd [目录名]
[]# cd /temp/Japan/cangjing % 提示符里会保存最近一级目录的名称
[]# cd . % 当前目录
[]# cd .. % 回到当前目录的上一级目录
% dos里cd和..之间不需要空格,Linux里必须要有空格
pwd
显示当前目录
命令名称:pwd
英文原意:print working directory
功能:显示当前目录
命令所在路径:/bin/pwd
执行权限:所有用户
语法:pwd
[]# pwd % 在命令行中输入pwd就能显示当前目录的绝对路径
rmdir
删除空目录
命令名称:rmdir
英文原意:remove empty directories
功能:删除空目录(无法删除包含文件或目录的非空目录,届时需要使用 rm
)
命令所在路径:/bin/rmdir
执行权限:所有用户
语法:rmdir [目录名]
[]# rmdir /tmp/Japan/boduo % 可以删除
[]# rmdir /tmp % 删除失败:目录非空
cp
复制
命令名称:cp
英文原意:copy
功能:复制文件或目录
命令所在路径:/bin/rmdir
执行权限:所有用户
语法:cp [源文件] [目标目录] 复制文件
cp -r 复制目录
cp -p 保留文件属性(如最近修改时间)
[]# cp /etc/grub.conf /tmp % 复制文件时不需要加选项
[]# cp -r /tmp/Japan/cangjing /root % 复制目录时需要加选项 -r
[]# cp /root/install.log /root/install.log.syslog /tmp % 同时复制多个文件或目录
[]# cp -p /root.install.log /tmp % 保留文件属性
[]# cp -r /tmp/Japan/longze /root/video18+ % 复制目录longze到root的同时,修改目录名称为video18+
mv
剪切
命令名称:mv
英文原意:move
功能:剪切文件/目录;改名(即剪切到同样的目录下,并改名)
命令所在路径:/bin/mv
执行权限:所有用户
语法:mv [原文件或目录] [目标目录]
[]# mv /tmp/Japan/cangjing /root % 把目录cangjing剪切到目录root下
[]# mv /tmp/Japan/longze /root/nvshen % 同样可以在剪切的同时,修改目录名称
% 同样可以同时剪切多个目录
[]# mv /root/cangjing /root/canglaoshi % 改名
rm
删除
命令名称:rm
英文原意:remove
功能:删除文件/目录
命令所在路径:/bin/rm
执行权限:所有用户
语法:rm [文件] 删除文件(系统会询问是否删除)
rm -f 强制执行(直接删除,系统不会询问)
rm -r 删除目录
建议:
-
删除任何文件之前,做好备份。养成日常备份的习惯
-
发现误删除后,尽量不要对硬盘做过多的读写操作,包括查找等。读写操作次数越多,恢复数据的可能性越小
-
有专业的数据恢复公司,但价格很高
-
千万不要打
# rm -f /
…把整个系统干掉了
4.1.3 文件处理命令
touch
创建空文件
命令名称:touch
功能:创建空文件
命令所在路径:/bin/touch
执行权限:所有用户
语法:touch [文件名]
建议:除了斜杠/外都可以使用,但是不建议使用空格、星号之类的符号
[]# touch lovestories.list % 在当前目录下创建文件lovestories.list
[]# touch /root/lovestories.list % 在指定目录创建文件
[]# touch program files % 无法创建带空格的文件,只会创建program和files两个文件
[]# touch "program files" % 如果要创建带有空格的文件,需要用引号将文件名括起来
% 但是不建议使用带空格的文件名,因为后续查找、复制等操作都需要用引号括起来,很麻烦
cat
显示文件内容
命令名称:cat
功能:显示文件内容
-n 显示行号
命令所在路径:/bin/cat
执行权限:所有用户
语法:cat [文件名]
[]# cat /etc/issue % 显示issue文件的内容
[]# cat -n /etc/services % 显示issue文件的内容,并标注行号
tac
显示文件内容(反向列示)
命令名称:tac (cat倒着写)
功能:显示文件内容(反向列示)
-n 显示行号
命令所在路径:/usr/bin/tac
执行权限:所有用户
语法:tac [文件名]
[]# tac /etc/issue
more
分页显示文件内容
命令名称:more
功能:分页显示文件内容(有进度条)
命令所在路径:/bin/more
执行权限:所有用户
语法:more [文件名]
空格或f 翻页(一页一页翻)
B 返回上一页
Enter 换行(一行一行看)
q或Q 退出
Linux的帮助信息就是调用more来浏览
[]# more /etc/services
less
分页显示文件内容(上翻,搜索)
命令名称:less
命令所在路径:/usr/bin/less
执行权限:所有用户
功能:分页显示文件内容(无进度条,可上下翻页,可搜索)
语法:less [文件名]
PgUp和PgDn 翻页
↑ 和 ↓ 一行一行翻
也可以用空格、f、Enter
在浏览状态里输入 / [关键词]
,系统会高亮出来,按 n
(next)向下查找
[]# less /etc/services
head
显示文件前面几行
命令名称:head
命令所在路径:/usr/bin/head
执行权限:所有用户
功能:显示文件前面几行
-n 指定行数(不指定则默认显示前10行)
语法:head [文件名]
[]# head /etc/services % 默认显示前10行
[]# head -n 18 /etc/services % 显示前18行
tail
显示文件前面几行
命令名称:tail
命令所在路径:/usr/bin/tail
执行权限:所有用户
功能:显示文件后面几行
-n 指定行数(不指定则默认显示后10行)
-f 动态显示文件末尾内容(如监控阿帕奇web服务器日志)
语法:tail[文件名]
[]# tail -n 18 /etc/services % 显示后18行
4.1.4 链接命令 ln
ln
生成链接文件
命令名称:ln
英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户
功能:生成链接文件
语法:ln [源文件] [目标文件] 创建硬连接
-s [源文件] [目标文件] 创建软连接
[]# ln -s /etc/issue /tmp/issue.soft % 创建/etc/issue的软连接/etc/issue.soft
[]# ln /etc/issue /tmp/issue.hard % 创建/etc/issue的硬连接/etc/issue.hard
(a) 软连接
对比源文件和软连接文件的详细信息:
[]# ls -l /etc/issue
-rw-r--r--. 2 root root 47 6月 26 2012 /etc/issue
[]# ls -l /tmp/issue.soft
lrwxrwxrwx. 1 root root 10 3月 7 23:39 /tmp/issue.soft -> /etc/issue
软连接特征:
- 软连接文件的文件类型和权限标识都是
lrwxrwxrwx
,但用户是否有操作权限由源文件决定 - 软连接类似于Windows中的快捷方式,点击快捷方式后执行的是源文件
- 软连接有箭头指向源文件
/tmp/issue.soft -> /etc/issue
- 软连接文件size很小,只是符号链接
(b) 硬链接
对比源文件和硬连接文件的详细信息:
[]# ls -l /etc/issue
-rw-r--r--. 2 root root 47 6月 26 2012 /etc/issue
[]# ls -l /tmp/issue.hard
-rw-r--r--. 2 root root 47 6月 26 2012 /etc/issue.hard
硬链接特征:
-
拷贝
cp -p
+ 同步更新,如echo"www.lampbrother.net">>/etc/issue
-
删除源文件后,软连接无法定位到源文件(
ls
中源文件名变红),而硬链接依然可以访问 -
通过 i 节点识别:硬链接文件的 i 节点与源文件的相同
- (一个文件一定有一个 i 节点,但一个 i 节点不一定只对应一个文件)
- 删除其中一个文件,另外一个依然存在(可以用做多人协同工作+备份)
-
硬链接不能跨分区,软连接可以
-
[]# ln /tmp/ossie.bak /boot/issue.bak.hard % 报警:无效的跨设备连接 []# ln -s /tmp/ossie.bak /boot/issue.bak.soft % 软连接可以跨分区创建快捷方式
-
[]# ln /tmp /root/tmp.hard % 报警:不允许将硬链接指向目录 []# ln -s /tmp /root/tmp.soft % 软连接可以创建目录快捷方式
-