Linux常用命令-文件处理命令

1. 命令格式与目录处理命令

命令格式: 命令 [-选项] [参数]

如: ls -la /etc

说明:

  • 选项是用来调整命令的功能的。
  • 参数是用来指定命令的操作对象的。
  • 个别命令并不严格遵循此格式。
  • 当需要用到多个选项时,可以写在一起。
  • 简化选项与完整选项。简化选项一般用 - 标识,完整选项一般用 – 标识,如 -a 等同于 –all。
  • 所有以文件或目录为操作对象的命令,操作对象可以有绝对路径和相对路径两种写法,如果是相对路径,则是相对于当前目录而言。
1.1 目录处理命令:ls
命令名称:ls
英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录或文件的信息
常用选项:-aldhi
-a 显示目录中的所有内容(包括隐藏文件)
-l 以长格式显示详细的信息
-d 显示目录本身的信息而非目录中的文件信息
-h 以易于人们阅读的格式显示文件的大小
-i 显示文件的inode号,文件的i节点号就是文件的唯一标识符,相当于身份证号
操作对象:文件或文件夹(目录),如果没有指定操作对象,默认是当前目录

Linux系统中的隐藏文件都是以 . 开头进行命名的。

-l 选项虽然可以显示出文件的详细信息(包括大小),但默认是以字节为单位来显示,而且,如果显示的是目录中文件夹的大小,通常是不准确的。它统计的文件夹的大小实际上是文件夹自身占用的大小以及文件夹内包含的文件名和一级子文件夹名所占用的大小之和,这个值一般是远小于真实的文件夹的大小。

ls -l 命令等同于 ll 命令。

-h 选项是以1000为基底进行单位换算的,而非1024。

如果想查看真实的文件夹的大小,可以使用 du 命令,如:

du -sh /tmp     查看文件夹tmp的总大小(以易于阅读的格式位显示容量)
du -sh          查看当前文件夹的总大小(以易于阅读的格式显示容量)

小技巧:

大多数命令都可以用man命令或–help查看命令的帮助信息。如:man ls 或 ls –help

ls 命令用法示例:

[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog
[root@localhost ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  install.log  install.log.syslog  .mysql_history  .tcshrc
[root@localhost ~]# ls /
bin  boot  dev  etc  home  lib  lost+found  media  mnt  my_package  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
[root@localhost ~]# ls -l
总用量 24
-rw-------. 1 root root  1139 1025 21:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 12797 1025 21:46 install.log
-rw-r--r--. 1 root root  3482 1025 21:44 install.log.syslog
[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog
[root@localhost ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  install.log  install.log.syslog  .mysql_history  .tcshrc
[root@localhost ~]# ls /
bin  boot  dev  etc  home  lib  lost+found  media  mnt  my_package  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
[root@localhost ~]# ls -l
总用量 24
-rw-------. 1 root root  1139 1025 21:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 12797 1025 21:46 install.log
-rw-r--r--. 1 root root  3482 1025 21:44 install.log.syslog
[root@localhost ~]# ls -lh
总用量 24K
-rw-------. 1 root root 1.2K 1025 21:46 anaconda-ks.cfg
-rw-r--r--. 1 root root  13K 1025 21:46 install.log
-rw-r--r--. 1 root root 3.5K 1025 21:44 install.log.syslog

下面对最后一行显示信息进行详细说明。

  • 第一个字符(-)表示文件的类型(- 代表二进制文件,d 代表目录,l 代表软连接文件)。
  • 后面九个字符(rw-r–r–)表示文件的权限(r 读,w 写,x执行),每三个字符为一个部分,分别对应所有者(u)、所属组(g)、其他人(o)的的操作权限。
  • 1 表示文件被引用的次数,这个有争议,可不关注该字符。
  • root root 分别表示文件的所有者、所属组。
  • 3.5K 表示文件的大小,对于文件而言,这个值基本上是准确的,但如果是目录,就不准确了。
  • 10月 25 21:44 表示文件最后一次修改的时间。
  • install.log.syslog 表示文件名称。

ls 命令的常见用法:

ls 显示当前目录中的所有内容(不包含隐藏文件)
ls /etc 显示指定目录 /etc 中的所有内容(不包含隐藏文件)
ls -a 显示当前目录中的所有内容(包含隐藏文件)
ls -l 以长格式显示当前目录中所有内容的详细信息(不包含隐藏文件),等同于 ll
ls -lh 同上,但文件的大小会以易于阅读的格式进行显示,等同于 ll -h
ls -l /tmp/a.txt 以长格式显示文件 /tmp/a.txt 的详细信息,等同于 ll /tmp/a.txt
ls -ld /etc 以长格式显示目录 /etc 本身的详细信息,等同于 ll -d /etc
ls -i 显示当前目录中的所有内容(不包含隐藏文件),同时显示文件的inode号
1.2 目录处理命令:mkdir
命令名称:mkdir
英文原意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
功能描述:创建空目录
常用选项:-p
-p 递归创建多级空目录
操作对象:空文件夹(空目录),可同时创建多个空目录

mkdir 命令的常见用法:

mkdir test 在当前目录下新建一个test文件夹
mkdir test1 test2 在当前目录下同时创建两个文件夹
mkdir -p /a/b/c 递归创建一个多级空目录 /a/b/c
1.3 目录处理命令:cd
命令名称:cd
英文原意:change directory
命令所在路径:shell 内置命令
执行权限:所有用户
功能描述:切换目录
操作对象:目录

cd 命令的常见用法:

cd /etc 切换到指定的目录 /etc,等同于 cd /etc/,也就是说最后一个正斜线可以省略
cd 切换回当前用户的家目录
cd . 切换到当前目录,相当于没有切换目录
cd .. 切换到上一级目录

在Linux中,. 表示当前目录,.. 表示上一级目录。

1.4 目录处理命令:pwd
命令名称:pwd
英文原意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
功能描述:显示(打印)当前工作目录的完整名称

pwd 命令的常见用法:

pwd 显示当前目录的完整名称
1.5 目录处理命令:rmdir
命令名称:rmdir
英文原意:remove empty directory
命令所在路径:/bin/rmdir
执行权限:所有用户
功能描述:删除空目录
操作对象:空目录

rmdir 命令的常见用法:

rmdir test 删除当前目录下的空目录 test
rmdir /root/test 删除空目录 /root/test

由于命令 rmdir 只能用于删除空目录,空目录指的是该目录中没有任何文件,连目录文件也没有。所以,该命令并不常用。

1.6 目录处理命令:cp
命令名称:cp
英文原意:copy
命令所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或目录
常用选项:-rp
-r 递归复制目录及其目录中的所有内容
-p 保留相关属性
操作对象:文件或目录
基本语法:cp [-选项] 原文件或目录 目录文件或目录

cp 命令的常见用法:

cp /etc/grub.conf /tmp 将文件grub.conf复制到/tmp目录下
cp -p /etc/grub.conf /tmp 将文件grub.conf复制到/tmp目录下,并保留文件属性
cp /root/install.log /root/install.log.syslog /tmp 同时复制多个文件到/tmp目录下
cp /etc/grub.conf /tmp/grub.bak 将文件grub.conf复制到/tmp目录下,并重命名为grub.bak
cp -r /root/a /tmp 将目录a及其a中的所有内容都复制到/tmp目录下
cp -r /root/a /tmp/aa 复制目录a的同时进行重命名
1.7 目录处理命令:mv
命令名称:mv
英文原意:move
命令所在路径:/bin/mv
执行权限:所有用户
功能描述:移动文件或目录(可用于重命名)
操作对象:文件或目录
基本语法:mv [-选项] 原文件或目录 目录文件或目录

mv 命令的常见用法:

mv /root/a /tmp 将目录a及其内容移动到/tmp目录下
mv /root/a /tmp/aa 移动目录的同时进行重命名
mv a.txt /tmp 将当前目录下的a.txt文件移动到/tmp目录下
mv a.txt b.txt 将当前目录下的a.txt文件重命名为b.txt
mv a aa 将当前目录下的a目录重命名为aa(前提是当前目录下没有aa目录,否则就是移动到aa目录下,而不是重命名)
1.8 目录处理命令:rm
命令名称:rm
英文原意:remove
命令所在路径:/bin/rm
执行权限:所有用户
功能描述:删除文件或目录
常用选项:-rf
-r 递归删除目录及其内容
-f 强制删除(忽略确认提示)
操作对象:文件或目录
基本语法:rm [-选项] 文件或目录

rm 命令的常见用法:

rm a.txt 删除当前目录下的a.txt文件(有提示),回复y(确认删除)或者n(取消删除)
rm -f a.txt 强制删除当前目录下的a.txt文件(无提示),等同于unlink a.txt
rm -f a.txt b.txt 强制删除当前目录下的多个文件(无提示)
rm -rf /tmp/a 强制删除目录a及其内容(无提示)
rm -rf * 强制删除当前目录中的所有内容(当前目录并不会被删除)

注意:Linux系统中的删除操作不会进入回收站,文件被删除后,很难进行恢复。在进行删除时,要非常谨慎。千万不要在根目录下执行 rm -rf * 或 rm -rf / 命令。

2. 文件处理命令

2.1 文件处理命令:touch
命令名称:touch
命令所在路径:/bin/touch
执行权限:所有用户
功能描述:创建空文件
操作对象:空文件
基本语法:touch 文件

常见用法:

touch a.txt 在当前目录下创建a.txt文件
touch a.txt b.txt 在当前目录下同时创建多个文件
touch /tmp/a.txt 在/tmp目录下创建a.txt文件(使用绝对路径)

说明:
在Windows系统中,我们经常可以看到文件名或目录名带有空格,如文件夹Program Files。在Linux中,想要创建类似的文件或目录,必须用引号(单引号或双引号都行)将文件名或目录名括起来,后续对其进行操作的时候,也要用引号。这样,就会显得比较麻烦。因此,不推荐在Linux中创建带有空格的文件名或目录名。

2.2 文件处理命令:cat
命令名称:cat
命令所在路径:/bin/cat
执行权限:所有用户
功能描述:显示文件的内容
操作对象:只能是文件
基本语法:cat [-选项] 文件

常见用法:

cat a.txt 查看当前目录中的a.txt文件的内容
cat -n a.txt 查看内容并显示行号
cat -n /etc/issue 查看文件/etc/issue的内容,并显示行号
cat -A a.txt 查看文件a.txt中的所有内容,包括隐藏字符,主要是回车符$
cat a.txt | grep jack 查看文件a.txt中含有jack字符串的所有行

cat 命令并不适合查看较大文件的内容,如 cat /etc/services,由于 /etc/services 文件的内容过多,用 cat 命令查看起来就比较费劲。

2.3 文件处理命令:tac
命令名称:tac
命令所在路径:/bin/tac
执行权限:所有用户
功能描述:反向显示文件的内容
操作对象:只能是文件
基本语法:tac [-选项] 文件

常见用法:

tac /etc/issue 反向显示/etc/issue文件的内容
2.4 文件处理命令:more
命令名称:more
命令所在路径:/bin/more
执行权限:所有用户
功能描述:分页显示文件的内容(适合查看大文件)
空格或f 向下翻页
Enter 查看下一行
q或Q或Ctrl+C 退出
操作对象:只能是文件
基本语法:more 文件

常见用法:

more /etc/services 分页查看/etc/services文件的内容
2.5 文件处理命令:less
命令名称:less
命令所在路径:/usr/bin/less
执行权限:所有用户
功能描述:分页显示文件的内容(可支持向上翻页或搜索)
空格或f或PageDown 向下翻页
PageUp 向上翻页
Enter或下箭头 查看下一行
上箭头 查看上一行
q或Q 退出
操作对象:只能是文件
基本语法:less 文件

常见用法:

less /etc/services 分页查看/etc/services文件的内容

用 less 命令分页查看文件时,在浏览状态下,输入 /关键词 (比如 /service)就可以对某个关键词进行查看,如果匹配到了多个,可以用 n 跳到下一个匹配项。

2.6 文件处理命令:head
命令名称:head
命令所在路径:/usr/bin/head
执行权限:所有用户
功能描述:只显示文件的前面几行内容(默认显示前10行)
操作对象:只能是文件
基本语法:head -n 行数 文件

常见用法:

head /etc/services 默认显示文件/etc/services的前10行内容
head -n 10 /etc/services 显示文件/etc/services的前10行内容
2.7 文件处理命令:tail
命令名称:tail
命令所在路径:/usr/bin/tail
执行权限:所有用户
功能描述:只显示文件的后面几行内容(默认显示后10行)
操作对象:只能是文件
基本语法:tail -n 行数 文件

常见用法:

tail /etc/services 默认显示文件/etc/services的后10行
tail -n 10 /etc/services 显示文件/etc/services的后10行
tail -f /var/log/messages 动态显示文件/var/log/messages的后10行内容

tail -f 一般用于动态查看日志文件的后10行内容,输入该命令后,会进入浏览界面,如果文件的内容发生了变化,浏览界面的内容也会及时动态更新。可用Ctrl+C命令退出浏览界面。

3. 链接命令

3.1 文件处理命令:ln
命令名称:ln
英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户(个别选项只有超级用户才能使用)
功能描述:创建硬链接或符号链接(符号链接也叫软链接)
操作对象:文件或目录
基本语法:ln [-选项] 原文件 目标文件

说明: 如果不加选项,默认就是创建硬链接。

常见用法:

ln -s /etc/issue /tmp/issue.s 给/etc/issue文件创建一个软链接文件/tmp/issue.s
ln /etc/issue /tmp/issue.h 给/etc/issue文件创建一个硬链接文件/tmp/issue.h

现在,我们来查看一下/tmp目录中文件的详细信息。

[root@localhost tmp]# ll /tmp
总用量 4
-rw-r--r--. 2 root root 47 1023 2014 issue.h
lrwxrwxrwx. 1 root root 10 1113 19:20 issue.s -> /etc/issue

可以发现,软链接issue.s的文件类型是l(即软链接),且该文件的权限是最大权限,它指向的原文件是/etc/issue,简单地说,软链接就类似于Windows系统中的快捷方式。

软链接的特点:

  • 软链接也叫符号链接,它的文件类型是l,它有明确的指向。
  • 软链接的文件权限是最大权限(rwxrwxrwx)。
  • 软链接只是原文件的一个快捷方式,大小很小,一般只有10个字节,操作软链接时,实际上操作的是它指向的原文件,因此,原文件的权限大小决定你是否可以操作该文件。
  • 如果原文件被删除,那么软链接就会失效,因为它无法找到指向的原文件。
  • 软链接可以跨分区,也可以给目录创建软链接。

硬链接的特点:

  • 硬链接和原文件的所有属性都一样(除了路径和名称),它们也会同步更新,只要其中一个发生了变化,另外一个也会同步更新。
  • 给原文件创建硬链接,相当于 cp -p 操作,不同的是,硬链接会和原文件同步更新,且硬链接和原文件的i节点号相同。
  • 如果原文件被删除,对硬链接没有影响。
  • 硬链接不能跨分区,也不能给目录创建硬链接。

判断一个文件是否是软链接很容易,那么,如何判断一个文件是否是硬链接?答案是:通过inode(i节点)号,因为硬链接和原文件的inode号一模一样。

[root@localhost tmp]# ls -i /etc/issue /tmp/issue.h /tmp/issue.s
262635 /etc/issue  262635 /tmp/issue.h  165745 /tmp/issue.s

在实际的操作中,硬链接用得比较少,而软链接就用得很多。因为,我们经常需要给一个文件(或目录)创建一个快捷方式。例如,给/tmp目录创建一个软链接。

ln -s /tmp /root/tmp.s

你可能感兴趣的:(Linux,Linux,基础知识,linux,文件处理命令,ls,mkdir,cp)