Ch4.1 Linux 文件处理命令

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  % 软连接可以创建目录快捷方式
      
上一篇:黄衫女子,黄衫好.png


下一篇:03-webdriver支持的浏览器