ls命令
ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。
语法
ls(选项)(参数)
选项
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-A:显示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列显示输出结果。这是默认选项;
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表; -f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件; --file-type:与“-F”选项的功能相同,但是不显示“*”;
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-t:用文件和目录的更改时间排序;
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
--full-time:列出完整的日期与时间;
参数
目录:指定要显示列表的目录,也可以是具体的文件。
实例
显示当前目录下非影藏文件与目录
[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog satools
显示当前目录下包括影藏文件在内的所有文件列表
[root@localhost ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc install.log .mysql_history satools .tcshrc .vimrc
.. .bash_history .bash_profile .cshrc install.log.syslog .rnd .ssh .viminfo
输出长格式列表
[root@localhost ~]# ls -1
total 36
-rw-------. 1 root root 1057 Jul 1 21:25 anaconda-ks.cfg
-rw-r--r--. 1 root root 21682 Jul 1 21:25 install.log
-rw-r--r--. 1 root root 5890 Jul 1 21:24 install.log.syslog
显示文件的inode信息
索引节点(index inode简称为“inode”)是Linux中一个特殊的概念,具有相同的索引节点号的两个文本本质上是同一个文件(除文件名不同外)。
[root@localhost ~]# ls -i -l
total 36
2097161 -rw-------. 1 root root 1057 Jul 1 21:25 anaconda-ks.cfg
2097154 -rw-r--r--. 1 root root 21682 Jul 1 21:25 install.log
2097155 -rw-r--r--. 1 root root 5890 Jul 1 21:24 install.log.syslog
水平输出文件列表
[root@localhost /]# ls -m
bin, boot, data, dev, etc, home, lib, lib64, lost+found, media, mnt, opt, proc, root, sbin, selinux, srv, sys, tmp, usr, var
修改最后一次编辑的文件 最近修改的文件显示在最上面。
[root@localhost /]# ls -t
tmp root etc dev lib boot sys proc data home bin sbin usr var lost+found media mnt opt selinux srv misc
显示递归文件
[root@localhost ~]# ls -R
.: anaconda-ks.cfg install.log install.log.syslog satools ./satools: black.txt freemem.sh iptables.sh lnmp.sh mysql php502_check.sh ssh_safe.sh
打印文件的UID和GID
[root@localhost /]# ls -n
total 98
dr-xr-xr-x. 2 0 0 4096 Jul 2 04:43 bin
dr-xr-xr-x. 5 0 0 1024 Jul 1 21:28 boot
drwxr-xr-x. 4 0 0 4096 Jul 2 13:12 data
drwxr-xr-x 18 0 0 3700 Jul 2 13:58 dev
drwxr-xr-x. 81 0 0 4096 Jul 2 13:58 etc
drwxr-xr-x. 3 0 0 4096 Jul 2 13:25 home
dr-xr-xr-x. 12 0 0 4096 Jul 2 04:43 lib
dr-xr-xr-x. 9 0 0 12288 Jul 2 04:43 lib64
drwx------. 2 0 0 16384 Jul 1 21:21 lost+found
drwxr-xr-x. 2 0 0 4096 Sep 23 2011 media
drwxr-xr-x. 2 0 0 4096 Sep 23 2011 mnt
drwxr-xr-x. 3 0 0 4096 Jul 1 21:24 opt
dr-xr-xr-x 94 0 0 0 Jul 2 2017 proc
dr-xr-x---. 2 0 0 4096 Jul 1 22:15 root
dr-xr-xr-x. 2 0 0 12288 Jul 2 04:43 sbin
drwxr-xr-x. 2 0 0 4096 Jul 1 21:21 selinux
drwxr-xr-x. 2 0 0 4096 Sep 23 2011 srv
drwxr-xr-x 13 0 0 0 Jul 2 2017 sys
drwxrwxrwt. 4 0 0 4096 Jul 2 16:01 tmp
drwxr-xr-x. 13 0 0 4096 Jul 1 21:21 usr
drwxr-xr-x. 20 0 0 4096 Jul 1 21:24 var
列出文件和文件夹的详细信息
[root@localhost /]# ls -l
total 98
dr-xr-xr-x. 2 root root 4096 Jul 2 04:43 bin
dr-xr-xr-x. 5 root root 1024 Jul 1 21:28 boot
drwxr-xr-x. 4 root root 4096 Jul 2 13:12 data
drwxr-xr-x 18 root root 3700 Jul 2 13:58 dev
drwxr-xr-x. 81 root root 4096 Jul 2 13:58 etc
drwxr-xr-x. 3 root root 4096 Jul 2 13:25 home
dr-xr-xr-x. 12 root root 4096 Jul 2 04:43 lib
dr-xr-xr-x. 9 root root 12288 Jul 2 04:43 lib64
drwx------. 2 root root 16384 Jul 1 21:21 lost+found
drwxr-xr-x. 2 root root 4096 Sep 23 2011 media
drwxr-xr-x. 2 root root 4096 Sep 23 2011 mnt
drwxr-xr-x. 3 root root 4096 Jul 1 21:24 opt
dr-xr-xr-x 94 root root 0 Jul 2 2017 proc
dr-xr-x---. 2 root root 4096 Jul 1 22:15 root
dr-xr-xr-x. 2 root root 12288 Jul 2 04:43 sbin
drwxr-xr-x. 2 root root 4096 Jul 1 21:21 selinux
drwxr-xr-x. 2 root root 4096 Sep 23 2011 srv
drwxr-xr-x 13 root root 0 Jul 2 2017 sys
drwxrwxrwt. 4 root root 4096 Jul 2 16:01 tmp
drwxr-xr-x. 13 root root 4096 Jul 1 21:21 usr
drwxr-xr-x. 20 root root 4096 Jul 1 21:24 var
列出可读文件和文件夹详细信息
[root@localhost /]# ls -lh
total 98K
dr-xr-xr-x. 2 root root 4.0K Jul 2 04:43 bin
dr-xr-xr-x. 5 root root 1.0K Jul 1 21:28 boot
drwxr-xr-x. 4 root root 4.0K Jul 2 13:12 data
drwxr-xr-x 18 root root 3.7K Jul 2 13:58 dev
drwxr-xr-x. 81 root root 4.0K Jul 2 13:58 etc
drwxr-xr-x. 3 root root 4.0K Jul 2 13:25 home
dr-xr-xr-x. 12 root root 4.0K Jul 2 04:43 lib
dr-xr-xr-x. 9 root root 12K Jul 2 04:43 lib64
drwx------. 2 root root 16K Jul 1 21:21 lost+found
drwxr-xr-x. 2 root root 4.0K Sep 23 2011 media
drwxr-xr-x. 2 root root 4.0K Sep 23 2011 mnt
drwxr-xr-x. 3 root root 4.0K Jul 1 21:24 opt
dr-xr-xr-x 94 root root 0 Jul 2 2017 proc
dr-xr-x---. 2 root root 4.0K Jul 1 22:15 root
dr-xr-xr-x. 2 root root 12K Jul 2 04:43 sbin
drwxr-xr-x. 2 root root 4.0K Jul 1 21:21 selinux
drwxr-xr-x. 2 root root 4.0K Sep 23 2011 srv
drwxr-xr-x 13 root root 0 Jul 2 2017 sys
drwxrwxrwt. 4 root root 4.0K Jul 2 16:01 tmp
drwxr-xr-x. 13 root root 4.0K Jul 1 21:21 usr
drwxr-xr-x. 20 root root 4.0K Jul 1 21:24 var
显示文件夹信息
[root@localhost /]# ls -ld /etc/
drwxr-xr-x 75 root root 4096 Oct 16 04:02 /etc/
按时间列出文件和文件夹详细信息
[root@localhost /]# ls -lt
total 98
drwxr-xr-x 13 root root 0 Jul 2 2017 sys
dr-xr-xr-x 94 root root 0 Jul 2 2017 proc
drwxrwxrwt. 4 root root 4096 Jul 2 16:01 tmp
drwxr-xr-x 18 root root 3700 Jul 2 13:58 dev
drwxr-xr-x. 81 root root 4096 Jul 2 13:58 etc
drwxr-xr-x. 3 root root 4096 Jul 2 13:25 home
drwxr-xr-x. 4 root root 4096 Jul 2 13:12 data
dr-xr-xr-x. 2 root root 12288 Jul 2 04:43 sbin
dr-xr-xr-x. 2 root root 4096 Jul 2 04:43 bin
dr-xr-xr-x. 9 root root 12288 Jul 2 04:43 lib64
dr-xr-xr-x. 12 root root 4096 Jul 2 04:43 lib
dr-xr-x---. 2 root root 4096 Jul 1 22:15 root
dr-xr-xr-x. 5 root root 1024 Jul 1 21:28 boot
drwxr-xr-x. 3 root root 4096 Jul 1 21:24 opt
drwxr-xr-x. 20 root root 4096 Jul 1 21:24 var
drwxr-xr-x. 13 root root 4096 Jul 1 21:21 usr
drwxr-xr-x. 2 root root 4096 Jul 1 21:21 selinux
drwx------. 2 root root 16384 Jul 1 21:21 lost+found
drwxr-xr-x. 2 root root 4096 Sep 23 2011 media
drwxr-xr-x. 2 root root 4096 Sep 23 2011 mnt
drwxr-xr-x. 2 root root 4096 Sep 23 2011 srv
按修改时间列出文件和文件夹详细信息
[root@localhost /]# ls -ltr
total 98
drwxr-xr-x. 2 root root 4096 Sep 23 2011 srv
drwxr-xr-x. 2 root root 4096 Sep 23 2011 mnt
drwxr-xr-x. 2 root root 4096 Sep 23 2011 media
drwx------. 2 root root 16384 Jul 1 21:21 lost+found
drwxr-xr-x. 2 root root 4096 Jul 1 21:21 selinux
drwxr-xr-x. 13 root root 4096 Jul 1 21:21 usr
drwxr-xr-x. 20 root root 4096 Jul 1 21:24 var
drwxr-xr-x. 3 root root 4096 Jul 1 21:24 opt
dr-xr-xr-x. 5 root root 1024 Jul 1 21:28 boot
dr-xr-x---. 2 root root 4096 Jul 1 22:15 root
dr-xr-xr-x. 12 root root 4096 Jul 2 04:43 lib
dr-xr-xr-x. 9 root root 12288 Jul 2 04:43 lib64
dr-xr-xr-x. 2 root root 4096 Jul 2 04:43 bin
dr-xr-xr-x. 2 root root 12288 Jul 2 04:43 sbin
drwxr-xr-x. 4 root root 4096 Jul 2 13:12 data
drwxr-xr-x. 3 root root 4096 Jul 2 13:25 home
drwxr-xr-x. 81 root root 4096 Jul 2 13:58 etc
drwxr-xr-x 18 root root 3700 Jul 2 13:58 dev
drwxrwxrwt. 4 root root 4096 Jul 2 16:01 tmp
dr-xr-xr-x 94 root root 0 Jul 2 2017 proc
drwxr-xr-x 13 root root 0 Jul 2 2017 sys
按照特殊字符对文件进行分类
[root@localhost nginx-1.2.1]# ls -F
auto/ CHANGES CHANGES.ru conf/ configure* contrib/ html/ LICENSE Makefile man/ objs/ README src/
列出文件并标记颜色分类
[root@localhost nginx-1.2.1]# ls --color=auto
auto CHANGES CHANGES.ru conf configure contrib html LICENSE Makefile man objs README src
cd命令
cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。
语法
cd (选项) (参数)
选项
-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
- 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。
实例
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
cp命令
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
语法
cp(选项)(参数)
选项
-a:此参数的效果和同时指定”-dpR”参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
参数
- 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
- 目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
实例
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:
cp ../mary/homework/assign .
所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。 将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1
将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中 cp -r /usr/men /usr/zh 交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中
[root@yuqing data]# cp a.txt c.txt
cp: overwrite `c.txt'? y
我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:
cp aaa/* /bbb
复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
cp -r aaa/* /bbb
这次依然需要按Y来确认操作,但是没有忽略子目录。
cp -r -a aaa/* /bbb
依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。
\cp -r -a aaa/* /bbb
成功,没有提示按Y、传递了目录属性、没有略过目录。