Linux常用命令——文件目录处理命令详解(ls、mkdir、cd、pwd、rmdir、cp、mv、rm、touch、cat、more、less、head、tail、ln)

1. Linux命令的基本格式

(1)命令提示符

登录Linux系统后,我们可以看到如下内容: [root@localhost ~]#

这就是 Linux 系统的命令提示符。其中:

  • []:这是提示符的分隔符号,没有特殊含义。
  • root:显示的是当前的登录用户,使用 root 用户登录。
  • @:分隔符号,没有特殊含义。
  • localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
  • ~:代表用户当前所在的目录,~表示用户当前所在的目录是家目录。
  • #:命令提示符,如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $。

(2)命令的基本格式

[root@localhost ~]# 命令 [选项] [参数]

例如:ls  -la  /etc

  • 命令格式中的 [] 代表可选项,也就是有些命令可以不写选项或参数,也可以执行;
  • 命令的选项用于调整命令功能,而命令的参数是这个命令的操作对象,一般文件、目录、用户和进程等可以作为参数被命令操作;

2. 内部命令,外部命令和查看命令的帮助

(1)内部命令与外部命令的区别

  • 内部命令存在于Linux系统的Shell中,而非磁盘中;Shell被Linux系统加载到内存中,内部命令处于随时调用状态,用户可直接使用
  • 外部命令以文件形式存在:通常存放在硬盘中,主要在“/bin,/sbin”等目录中;
  • 在Linux系统中绝大多数命令是外部命令;

(2)常见的帮助命令

2.1> man命令:可以查看命令或配置文件的帮助信息;

[root@redhat tmp]# man ls
[root@redhat tmp]# man yum.conf
#注:使用man查看配置文件的帮助信息时,不需用使用绝对路径,只需要写配置文件名即可

2.2> help命令:显示 Shell 内置命令的帮助信息;

[root@redhat tmp]# which cd
/usr/bin/which: no cd in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin)
[root@redhat tmp]# help cd
cd: cd [-L|-P] [dir]
    Change the shell working directory.
......
#注:使用which命令或者whereis命令查找不到的命令为内部命令

2.3> whatis命令:简单查看命令的帮助信息;

[root@redhat tmp]# whatis ls
ls                   (1)  - list directory contents
ls                   (1p)  - list directory contents

2.4> apropos命令:简单查看配置文件的帮助信息;

[root@redhat tmp]# apropos yum.conf
yum.conf [yum]       (5)  - Configuration file for yum(8)

3. Linux常用命令

(1)ls命令:显示当前目录下的文件

ls 是最常见的目录操作命令,主要是显示目录下的内容。命令的基本信息如下:

  • 命令名称:ls
  • 所在路径:/bin/ls
  • 执行权限:所有用户
  • 功能描述:显示目录下的内容

1.1> " -a "选项:-a 选项中的 a 是 all 的意思,也就是显示全部的文件,包括被隐藏的文件。

在 Linux中以"."开头的文件是隐藏文件,只有通过"-a"选项才能査看。 隐藏文件不是为了把文件藏起来不让其他用户找到,而是为了告诉用户这些文件都是重要的系统文件,如非特殊需求,尽量不要修改文件的内容;

[root@redhat ~]# ls
anaconda-ks.cfg  install.log.syslog  z       模板  图片  下载  桌面
install.log      j                   公共的  视频  文档  音乐
[root@redhat ~]# ls -a
.                .esd_auth        install.log          .viminfo
..               .gconf           install.log.syslog   z
.abrt            .gconfd          j                    公共的
anaconda-ks.cfg  .gnome2          .local               模板
[root@redhat ~]# 

1.2>  " -l "选项:显示文件的详细信息,包括:权限(所有者,所属组,其他人权限),引用计数,所有者,所属组,大小,文件修改时间,文件名;

注:在权限前面  —表示文件;d 表示目录;l 表示软链接;

[root@redhat ~]# ls -l
总用量 69420
-rw-------. 1 root root     1472 3月  11 18:43 anaconda-ks.cfg
-rw-r--r--. 1 root root    47869 3月  11 18:43 install.log
-rw-r--r--. 1 root root    10609 3月  11 18:41 install.log.syslog
-rw-r--r--. 1 root root 35491840 3月  12 23:50 j
-rw-r--r--. 1 root root 35491840 3月  12 23:49 z
drwxr-xr-x. 2 root root     4096 3月  11 18:50 公共的
drwxr-xr-x. 2 root root     4096 3月  11 18:50 模板

1.3> " -d "选项:" -l "选项可以目录中每个文件的详细信息,但是显示不出来目录的详细信息,如果想显示目录本身的信息,就必须加入"-d"选项。

[root@redhat ~]# ls -ld
dr-xr-x---. 31 root root 4096 3月  13 05:07 .
[root@redhat ~]# 

1.4> " -h "选项:习惯以人们的习惯显示文件的大小。" ls -l "显示的文件大小是字节,但是我们更加习惯的是千字节用 KB 显示,兆字节用 MB 显示,而"-h"选项就是按照人们习惯的单位显示文件大小的。

[root@redhat ~]# ls -lh
总用量 68M
-rw-r--r--. 1 root root  34M 3月  12 23:50 j
-rw-r--r--. 1 root root  34M 3月  12 23:49 z
drwxr-xr-x. 2 root root 4.0K 3月  11 18:50 公共的
drwxr-xr-x. 2 root root 4.0K 3月  11 18:50 模板

1.5> " -i "选项:每个文件都有一个被称作 inode(i 节点)的隐藏属性,可以看成系统搜索这个文件的 ID,而"-i"选项就是用来査看文件的 inode号的。

[root@redhat ~]# ls -i
43515913 anaconda-ks.cfg     43516028 test2.sh   43515927 模板  43515926 下载
43515906 install.log         43516188 test2.sh~  43515932 视频  43515930 音乐

(2)mkdir命令:创建目录(文件夹)

mkdir命令主要功能是创建目录,基本信息如下:

  • 命令名称:mkdir。
  • 所在路径:/bin/mkdir。
  • 执行权限:所有用户。
  • 功能描述:创建空目录。

2.1> 新建一个空目录:mkdir 目录名;

[root@redhat ~]# mkdir /tmp/dir1
[root@redhat ~]# ls /tmp
dir1

2.2> 如果需要建立一系列的新目录,则需要加入"-p"选项,递归建立才可以进行创建 ;

[root@redhat ~]# mkdir /tmp/dirs/dirs1
mkdir: 无法创建目录"/tmp/dirs/dirs1": 没有那个文件或目录
[root@redhat ~]# mkdir -p /tmp/dirs/dirs1
[root@redhat ~]# ls /tmp/dirs
dirs1

2.3> 使用mkdir,可以同时创建多个目录;

[root@redhat ~]# mkdir /tmp/dirs/yuwen /tmp/dirs/shuxue
[root@redhat ~]# ls /tmp/dirs
dirs1  shuxue  yuwen

(3) cd命令:切换目录

cd 命令的主要功能是是切换所在目录,命令的基本信息如下:

  • 命令名称:cd。
  • 所在路径:Shell内置命令。
  • 执行权限:所有用户。
  • 功能描述:切换所在目录。

3.1> cd命令用来切换用户工作目录到一个指定的目录下,这个指定的目录你可以使用绝对路径或者是相对路径,(绝对路径代表从根目录开始,相对路径代表以当前目录为起点),并且切换目录之后,在前面的提示符中只保留了最近一级的目录;

[root@redhat ~]# cd /tmp/dirs/yuwen
[root@redhat yuwen]# cd /etc
[root@redhat etc]# cd /tmp/dirs/shuxue
[root@redhat shuxue]# 

3.2> cd 命令可以识别一些特殊符号,用于快速的切换所在目录:

  • cd:不加任何参数,会切换到登录用户的主目录;
  • cd ~ :代表home directory(家目录或者叫用户目录);
  • cd -:代表上次所在目录;
  • cd .. :代表上级目录;
  • cd . :代表当前目录;
  • cd ../..  返回上两级目录
[root@redhat 桌面]# cd
[root@redhat ~]# cd -
/root/桌面
[root@redhat 桌面]# cd .
[root@redhat 桌面]# cd ..
[root@redhat ~]# cd ~
[root@redhat ~]# 

(4)pwd:显示用户当前的工作目录

pwd命令的主要功能是显示当前目录,命令的基本信息如下:

  • 命令名称:pwd。
  • 所在路径:/bin/pwd。
  • 执行权限:所有用户。
  • 功能描述:显示当前目录。

以绝对路径的形式呈现工作目录

[root@redhat 桌面]# cd /etc
[root@redhat etc]# pwd
/etc
[root@redhat abrt]# pwd
/etc/abrt

(5)rmdir命令:删除空目录(文件夹)

rmdir命令主要功能是删除目录,基本信息如下:

  • 命令名称:rmdir。
  • 所在路径:/bin/rmdir。
  • 执行权限:所有用户。
  • 功能描述:删除空目录。

删除一个空目录:rmdir 目录名;

[root@redhat ~]# rmdir /tmp/dirs/yuwen
[root@redhat ~]# ls /tmp/dirs
dirs1  shuxue

注:rmdir 命令只能删除空目录,如果目录中有内容,就会报错; 所以,不论删除的是文件还是目录,经常使用 rm 命令。

(6)cp命令:复制操作

cp 命令的功能是用于复制,基本信息如下:

  • 命令名称:cp;
  • 所在路径:/bin/cp;
  • 格式:cp [选项] 源文件 目标文件
  • 执行权限:所有用户;
  • 功能描述:复制文件和目录;

6.1> cp命令复制文件,也可以进行更名复制,如果复制的目标文件存在,则会提示是否覆盖,因为 cp 命令默认执行的是“cp -i”的别名;

[root@redhat ~]# cp /etc/grub.conf /tmp
[root@redhat ~]# ls /tmp
dir1  dirs  grub.conf  orbit-root
[root@redhat ~]# cp /etc/grub.conf /tmp
cp:是否覆盖"/tmp/grub.conf"? y
[root@redhat ~]# cp /etc/grub.conf /tmp/grub_copy.conf
[root@redhat ~]# ls /tmp
dir1  dirs  grub.conf  grub_copy.conf  orbit-root

6.2> cp可以一次复制多个文件;

[root@redhat ~]# cp /etc/csh.cshrc /etc/auto.net /tmp/dir1
[root@redhat ~]# ls /tmp/dir1
auto.net  csh.cshrc

6.3> -r 选项:递归复制,用于复制目录;

[root@redhat ~]# cp /etc/yum /tmp
cp: 略过目录"/etc/yum"
[root@redhat ~]# cp -r /etc/yum /tmp
[root@redhat ~]# ls /tmp
dir1  dirs  grub.conf  grub_copy.conf  orbit-root  yum

6.4> -p 选项:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);

[root@redhat ~]# ls -lh /etc/csh.login
-rw-r--r--. 1 root root 794 8月  20 2013 /etc/csh.login

[root@redhat ~]# cp /etc/csh.login /tmp
[root@redhat ~]# ls -lh /tmp/csh.login
-rw-r--r--. 1 root root 794 3月  23 23:46 /tmp/csh.login

[root@redhat ~]# cp -p /etc/csh.login /tmp
cp:是否覆盖"/tmp/csh.login"? y
[root@redhat ~]# ls -lh /tmp/csh.login
-rw-r--r--. 1 root root 794 8月  20 2013 /tmp/csh.login

 (7)mv命令:剪切和更名

mv命令的功能是用来剪切和更名的,基本信息如下:

  • 命令名称:mv。
  • 所在路径:/bin/mv。
  • 语法:mv  [原文件或目录]  [目标目录]
  • 执行权限:所有用户。
  • 功能描述:移动文件或改名

7.1> 剪切文件或目录(不需要加-r);

[root@redhat ~]# mv /tmp/csh.login /root
[root@redhat ~]# mv /tmp/dir1 /root
[root@redhat ~]# ls /root
anaconda-ks.cfg  dir1         install.log.syslog  模板  图片  下载  桌面
csh.login        install.log  公共的              视频  文档  音乐

7.2> 剪切的同时进行改名;

[root@redhat ~]# mv /root/dir1 /root/mv_dir
[root@redhat ~]# ls /root
anaconda-ks.cfg  install.log         mv_dir  模板  图片  下载  桌面
csh.login        install.log.syslog  公共的  视频  文档  音乐

7.3> 使用"-v"选项来査看详细的移动信息;

[root@redhat tmp]# mv -v grub.conf /root/
"grub.conf" -> "/root/grub.conf"

(8)rm命令:删除文件或目录

rm命令不仅可以删除文件,也可以删除目录。命令的基本信息如下:

  • 命令名称:rm
  • 所在路径:/bin/rm。
  • 执行权限:所有用户。
  • 功能描述:删除文件或目录。

8.1> 删除文件,rm 文件名; rm 命令默认执行的是“rm -i” 命令,所以会提示是否删除;

[root@redhat tmp]# rm grub_copy.conf 
rm:是否删除普通文件 "grub_copy.conf"?y

8.2> 删除多个文件时,如果不想进行提示,则可以强制删除,使用 -f 参数;

[root@redhat tmp]# ls
auto.net  dirs  grub.conf  orbit-root  yum
[root@redhat tmp]# rm auto.net grub.conf 
rm:是否删除普通文件 "auto.net"?n
rm:是否删除普通文件 "grub.conf"?n
[root@redhat tmp]# rm -f auto.net grub.conf 
[root@redhat tmp]# ls
dirs  orbit-root  yum

8.3>删除目录,需要加入-r选项,如果要删除的目录下面有很多子文件时,可以强制删除,否则就会一直提示是否删除该文件;

[root@redhat tmp]# rm -r etc
rm:是否进入目录"etc"? y
rm:是否删除普通文件 "etc/aliases"?y
rm:是否进入目录"etc/iproute2"? y
rm:是否删除普通文件 "etc/iproute2/rt_dsfield"?^C
[root@redhat tmp]# rm -rf etc
[root@redhat tmp]# ls
orbit-root  yum

(9)touch命令:创建空文件或修改文件的时间戳

touch命令的作用是创建空文件或修改文件的时间戳,命令的基本信息如下:

  • 命令名称:touch。
  • 所在路径:/bin/touch。
  • 执行权限:所有用户。
  • 功能描述:创建空文件或修改文件的时间戳。

如果文件不存在,则会建立空文件;如果文件已经存在,则会修改文件的时间戳(访问时间、数据修改时间、状态修改时间都会改变)。

[root@redhat 桌面]# touch test
[root@redhat 桌面]# ls -l test
-rw-r--r--. 1 root root 0 3月  13 18:37 test
[root@redhat 桌面]# touch test
[root@redhat 桌面]# ls -l test
-rw-r--r--. 1 root root 0 3月  13 18:38 test

(10)cat命令:显示文件内容

cat 命令的基本信息如下:

  • 命令名称:cat。
  • 所在路径:/bin/cat。
  • 执行权限:所有用户。
  • 功能描述:显示文件内容。

cat命令可以显示文件的内容,也可以给内容加上行号,不管文件内容多少,都会一次性的显示,当文件内容比较长的时候,就不适合用cat命令显示,因为cat命令会显示最后一屏的内容,不能看到前面的内容;

[root@redhat tmp]# cat /etc/issue
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel \r on an \m

[root@redhat tmp]# cat -n /etc/issue
     1	Red Hat Enterprise Linux Server release 6.5 (Santiago)
     2	Kernel \r on an \m
     3	

(11)more命令:分页显示文件内容

当文件过大时, cat 命令就不适合使用,就可以使用more 命令分屏显示文件内容;基本信息如下:

  • 命令名称:more。
  • 所在路径:/bin/more。
  • 执行权限:所有用户。
  • 功能描述:分屏显示文件内容。

more命令可以分屏显示文件内容,进入more命令的浏览状态以后,可以使用空格(或f)进行翻页,使用enter进行换行,q退出浏览;但是使用more命令浏览文件内容时,浏览过的内容就不能再次查看,只能向下翻页,不能向上翻页;

[root@redhat tmp]# more /etc/services 
# /etc/services:
# $Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $
#
.......
#       http://www.iana.org/assignments/port-numbers
--More--(0%)

(12)less命令:分页显示文件内容(可向上向下翻页)

当文件过大时, 使用less 命令分屏显示文件内容,可向上向下翻页;基本信息如下:

  • 命令名称:less。
  • 所在路径:/bin/less。
  • 执行权限:所有用户。
  • 功能描述:分屏显示文件内容(可向上向下翻页)。

less命令可以分屏显示文件内容,进入less命令的浏览状态以后,可以使用空格(或f)进行翻页,上箭头向上查看,使用enter进行换行,q退出浏览等,除此之外,还可以进行搜索, / 要搜索的内容,搜素的内容就会被标记出来,可以按n进行下一个查找;

[root@redhat tmp]# less /etc/services 
# unfortunately the poppassd (Eudora) uses a port which has already
# been assigned to a different service. We list the poppassd as an
# alias here. This should work for programs asking for this service.
# (due to a bug in inetd the 3com-tsmux line is disabled)
......

(13)head命令:显示文件前几行的内容

head 是用来显示文件开头的命令,基本信息如下:

  • 命令名称:head。
  • 所在路径:/usr/bin/head。
  • 执行权限:所有用户。
  • 功能描述:显示文件开头的内容

13.1> head命令默认显示文件的前10行,-n参数可以指定具体的行数;

[root@redhat tmp]# head /etc/services 
# /etc/services:
# $Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2009-11-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports

[root@redhat tmp]# head -n 4 /etc/services 
# /etc/services:
# $Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $
#
# Network services, Internet style

13.2> -v参数可以显示文件名;

[root@redhat tmp]# head -v -n 4 /etc/services 
==> /etc/services <==
# /etc/services:
# $Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $
#
# Network services, Internet style

(14)tail命令:显示文件后几行的内容

tail 命令的基本信息如下:

  • 命令名称:tail。
  • 所在路径:/usr/bin/tail。
  • 执行权限:所有用户。
  • 功能描述:显示文件后几行的内容。

14.1> tail命令默认显示文件的后10行,-n参数可以指定具体的行数;-v参数可以显示文件名;

[root@redhat tmp]# tail -n 4 /etc/services 
com-bardac-dw   48556/tcp               # com-bardac-dw
com-bardac-dw   48556/udp               # com-bardac-dw
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
[root@redhat tmp]# tail -v -n 4 /etc/services 
==> /etc/services <==
com-bardac-dw   48556/tcp               # com-bardac-dw
com-bardac-dw   48556/udp               # com-bardac-dw
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject

14.2> 选项 -f 可以动态显示文件末尾的内容;

(15)ln命令:生成链接文件

ln 命令的基本信息如下:

  • 命令名称:ln。
  • 所在路径:/bin/ln。
  • 执行权限:所有用户。
  • 功能描述:在文件之间建立链接。

15.1> 软链接:类似于Windows快捷方式,是一个符号链接,便于管理和规划,而且软链接的权限是rwxrwxrwx,权限前面是l,除此之外,软链接很小(类似于快捷方式),并且有箭头会指向原文件;如果原文件被删除,软链接就失效了(显示没有那个文件或目录);

[root@redhat 桌面]# ln -s /etc/issue /tmp/issue_soft
[root@redhat 桌面]# ls -l /etc/issue
-rw-r--r--. 2 root root 75 10月 30 2013 /etc/issue
[root@redhat 桌面]# ls -l /tmp/issue_soft 
lrwxrwxrwx. 1 root root 10 3月  24 01:45 /tmp/issue_soft -> /etc/issue

15.2> 硬链接:硬链接与原文件除了所在文件夹信息不同,其他任何信息都相同,类似于保存了文件属性的拷贝,但也有不同,硬链接可以与原文件保持同步更新,如果原文件被删除了,硬链接文件依然可以访问,不受影响;

[root@redhat 桌面]# ln  /etc/issue /tmp/issue_hard
[root@redhat 桌面]# ls -l /etc/issue
-rw-r--r--. 2 root root 75 10月 30 2013 /etc/issue
[root@redhat 桌面]# ls -l /tmp/issue_hard 
-rw-r--r--. 2 root root 75 10月 30 2013 /tmp/issue_hard

15.3> 软链接与原文件的 i 结点不同,但硬链接文件与原文件的 i 结点相同;一个文件只有一个i 结点,但一个i 结点不一定只对应一个文件;

[root@redhat 桌面]# ls -i /etc/issue /tmp/issue_hard /tmp/issue_soft 
54395563 /etc/issue  54395563 /tmp/issue_hard  38273166 /tmp/issue_soft

15.4> 硬链接不能跨分区,也不能针对目录使用;

[root@redhat 桌面]# ln  /etc/issue /boot/issue_hard
ln: 创建硬链接"/boot/issue_hard" => "/etc/issue": 无效的跨设备连接
[root@redhat 桌面]# ln -s /etc/issue /boot/issue_soft
[root@redhat 桌面]# ls -l /boot/issue_soft 
lrwxrwxrwx. 1 root root 10 3月  24 02:07 /boot/issue_soft -> /etc/issue

[root@redhat 桌面]# ln  /etc /tmp/issue_hard
ln: "/etc": 不允许将硬链接指向目录
[root@redhat 桌面]# ln -s  /etc /tmp/etc_soft
[root@redhat 桌面]# ls -l /tmp/etc_soft 
lrwxrwxrwx. 1 root root 4 3月  24 02:10 /tmp/etc_soft -> /etc

猜你喜欢

转载自blog.csdn.net/qq_38684504/article/details/88428920