Linux常用命令

命令

1.man

man命令是Linux的帮助命令,通过man命令可以查
看命令的帮助,配置文件帮助和编程帮助等信息。

例:man 1 passwd :查看passwd的命令帮助
    man 5 passwd :查看passwd配置文件的帮助
    更多用法可以使用man man命令查看
    
man命令快捷键:
    
    上下键就是向上或者向下一行
    pageUp|pageDown向上一个屏幕或者向下一个屏幕
    d|u向下或者向上半个屏幕
    G|gg跳转页面到man最下面或最上面
    ”/关键字“:搜索关键字,关键字会高亮显示,
    n向下匹配,N向上匹配,“q”退出帮助。

2.wc

“wc”是统计文件容量信息的命名。

例如:

    "wc -l /etc/passwd"统计“passwd文件的行数”,
    “wc -c /etc/passwd”统计文件的字节数
    “-w”统计字数
    “-m”统计字符数

3.pwd

“pwd”命令可以查看当前所在的目录

4、cd

“cd”是切换工作目录的命令,后可跟绝对路径或相对路径

例如:
    “cd 目录”可以切换到指定目录,如切换到目录“/etc”.
    "cd -":可以切换到之前所在的目录
    “cd ~”:可以切换到自己的home目录
    “cd ~username”:可以切换到指定用户的home目录
    “cd ..”:进入当前目录的上级目录
    “cd ../..”:返回上两级目录

5.ls

“ls”命令可以列出目录或者文件的信息

“ls”后面如果没有目标那么就默认为当前目录
“ls”后面加一个目录或者文件,如“ls test”则是列出test目录下的内容,
参数“-d”表示列出目录本身
参数“-l”表示列出目录或文件里内容的属性
参数“-ld”列出目录本身属性
参数“-a”显示目录中的所有内容,包括“.”开头的隐藏文件。
参数“-R”表示递归显示目录中的内容。
参数“-F”查看目录中的文件
参数“*[0-9]*”显示包含数字的文件名和目录名

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:列出完整的日期与时间;
    --color[=WHEN]:使用不同的颜色高亮显示不同类型的。
参数
目录:指定要显示列表的目录,也可以是具体的文件。

6.cp

cp file1 file2 复制一个文件
cp dir/*. 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1.复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录

7.rm

rm命令可以删除一个目录中的一个或多个文件
或目录,也可以将某个目录及其下属的所有文件
及其子目录均删除掉。

注意: 使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。

rm命令可以用-i选项,这个选项在使用文件扩展
名字符删除多个文件时特别有用,使用这个选项
,系统会要求你逐一确定是否要删除。这时,必
须输入y并按Enter键,才能删除文件,如果仅按E
nter键或其他字符,文件不会删除。

语法:

rm (选项)(参数)

选项:

-d:直接把欲删除的目录的硬链接数据删除成0,删除该目录
-f:不提示,强制删除文件或目录
-i:删除已有文件或目录之前先询问用户
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理
--preserve-root:不对根目录进行递归操作
-v:显示指令的详细执行过程
参数:
参数为文件或者文件名

例子:

删除第一个字符为‘-’的文件(例如“-foo”),要使用下面这种方法
    
    rm -- -foo
    rm ./-foo

通常使用rm删除文件可以恢复原状,如果想删除的文件不能还原,使用shred

删除.c结尾的文件,删除前逐一询问确认:

    rm -i *.c
    
删除test子目录及子目录中所有文档

    rm -r test
    
将test子目录和子目录中所有文档删除,并且不用一一确认
    rm -rf test

8.rmdir命令

rmdir命令用来删除空目录,利用rmdir命令可以
从一个目录中删除一个或多个空的子目录

注意:子目录被删除之前应该是空目录,应该首先使用rm命令删除所有文件,并且当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不可能是被删除目录的子目录。

虽然可以使用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做有很大的危险性。

语法
rmdir(选项)(参数)
选项:
-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
-v或-verboes:显示命令的详细执行过程;
--help:显示命令的帮助信息;
--version:显示命令的版本信息。
参数
目录列表:要删除的空目录列表。当删除多个
空目录时,目录名之间使用空格隔开。
实例

删除子目录os_1和其父目录bin

cd /usr/meng/test
rmdir -p bin/os_1

9.cp命令

cp命令用来将一个或多个源文件或目录复制到
指定的目的文件或目录,它可以将单个源文件复
制成一个指定文件名的具体文件或者已经存在的
目录下。产品命令还支持同时复制多个文件,当
一次复制多个文件时,目标文件参数必须是一个
已经存在的目录,否则将出现错误。
语法:
cp [option] [source] [dest]
选项
-a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
-i:询问,如果目标文件已经存在,则会询问是否覆盖;
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
-s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
-r:递归复制,用于复制目录;
-u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。

例子:

复制文件
ubuntu@ubuntu:~/Public$ touch 1.txt  #新建一个文件
ubuntu@ubuntu:~/Public$ cp 1.txt a1/ #复制到a1文件夹
ubuntu@ubuntu:~/Public/a1$ ls  查看a1是否有1.txt文件
11.txt  1.txt  a11

复制目录  复制目录只需使用“-r”选项即可
ubuntu@ubuntu:~/Public$ cp -r a1 a2/
ubuntu@ubuntu:~/Public$ cd a2
ubuntu@ubuntu:~/Public/a2$ ls
a1
ubuntu@ubuntu:~/Public/a2$ cd a1
ubuntu@ubuntu:~/Public/a2/a1$ ls
11.txt  1.txt  a11

10 touch命令

touch有两个功能:
    一,是用于把已存在的文件的时间标签更新为系统当前的时间
    二,是用来创建新的空文件
语法:
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
参数说明:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。
实例

使用指令"touch"修改文件"testfile"的时间属性为当前系统时间,输入如下命令:

$ touch testfile                #修改文件的时间属性 

首先,使用ls命令查看testfile文件的属性,如下所示:

$ ls -l testfile                #查看文件的时间属性  
#原来文件的修改时间为16:09  
-rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile  

执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示:

$ touch testfile                #修改文件时间属性为当前系统时间  
$ ls -l testfile                #查看文件的时间属性  
#修改后文件的时间属性为当前系统时间  
-rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile

使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令:

$ touch file            #创建一个名为“file”的新的空白文件

11.find

find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索
文件,还可以按照权限、大小、时间、inode
号等来搜索文件。但是 find 命令是直接在硬盘
中进行搜索的,如果指定的搜索范围过大,find
命令就会消耗较大的系统资源,导致服务器压力
过大。所以,在使用 find 命令搜索时,
不要指定过大的搜索范围。
语法
find 搜索路径 [选项] 搜索内容
1.按照文件名搜索
-name:按照文件名搜索
-iname:按照文件名搜索,不区分文件名大小
-inum:按照inode号搜索
inode号通过ls -l 文件名 命令 获得

例子:

[root@localhost ~]# find /-name yum.conf
/etc/yum.conf
#在目录下査找文件名是yum.conf的文件
find 命令有一个小特性,就是搜索的文件名必须和你的搜索内容一致才能找到。如果只包含搜索内容,则不会找到
2.按照文件大小搜索
-size[+-]大小:按照指定大小搜索文件
这里的"+“的意思是搜索比指定大小还要大的文件,”-" 的意思是搜索比指定大小还要小的文件
[root@localhost ~]# ll -h install.log
-rw-r--r--.1 root root 25K 1月 14 2014 install.log #在当前目录下有一个大小是25KB的文件
[root@localhost ~]#
[root@localhost ~]# find.-size 25k
./install.log
#当前目录下,査找大小刚好是25KB的文件,可以找到
[root@localhost ~]# find .-size -25k

find命令-size选项默认是按照512Byte去搜索的

b' for 512-byte blocks (this is the default if no suffix is used)
#这是默认单位,如果单位为b或不写单位,则按照 512Byte搜索
'c' for bytes
#搜索单位是c,按照字节搜索
'w' for two-byte words
#搜索单位是w,按照双字节(中文)搜索
'k'for Kilobytes (units of 1024 bytes)
#按照KB单位搜索,必须是小写的k
'M' for Megabytes (units of 1048576 bytes)
#按照MB单位搜索,必须是大写的M
'G' for Gigabytes (units of 1073741824 bytes)
#按照GB单位搜索,必须是大写的G

3.按照修改时间搜索

Linux中的文件有访问时间(atime),数据修改时间(mtime),状态修改时间(ctime)这三个时间,我们可以按照时间来搜索文件

选项:
-atime [+-]时间: 按照文件访问时间搜索
-mtime [+-]时间: 按照文改时间搜索
-ctime [+-]时间: 按照文件修改时间搜索
这三个时间的区别我们在 stat 命令中已经解释过了,这里用 mtime 数据修改时间来举例,重点说说 "[+-]"时间的含义。
-5:代表@内修改的文件。
5:代表前5~6天那一天修改的文件。
+5:代表6天前修改的文件。

每次笔者讲到这里,"-5"代表 5 天内修改的文件,而"+5"总有人说代表 5 天修改的文件。要是笔者能知道 5 天系统中能建立什么文件,早就去买彩票了,那是未卜先知啊!所以"-5"指的是 5 天内修改的文件,“5"指的是前 5~6 天那一天修改的文件,”+5"指的是 6 天前修改的文件。我们来试试:

[root@localhost ~]#find.-mtime -5
#查找5天内修改的文件

find 不仅可以按照 atmie、mtime、ctime 来査找文件的时间,也可以按照 amin、mmin 和 cmin 来査找文件的时间,区别只是所有 time 选项的默认单位是天,而 min 选项的默认单位是分钟。

查看当前目录下所有文件的大小:“ll -h”

4.按照权限搜索

选项:

-perm 权限模式:査找文件权限刚好等于"权限模式"的文件
-perm -权限模式:査找文件权限全部包含"权限模式"的文件
-perm +权限模式:査找文件权限包含"权限模式"的任意一个权限的文件
【例 1】"-perm权限模式"。

这种搜索比较简单,代表査找的权限必须和指定的权限模式一模一样,才可以找到。

[root@localhost test]#find.-perm 444
./test2
[root@localhost test]#find.-perm 200
./test4
#按照指定权限搜索文件,文件的权限必须和搜索指定的权限一致,才能找到
【例 2】"-perm-权限模式"。

如果使用"-权限模式",是代表的是文件的权限必须全部包含搜索命令指定的权限模式,才可以找到。

[root@localhost test]#find .-perm -200
./test4 <-此文件权限为200
./test3 <-此文件权限为600
./testl <-此文件权限为755
#搜索文件的权限包含200的文件,不会找到test2文件,因为test2的权限为444,不包含200权限

因为 test4 的权限 200(-w-------)、test3 的权限 600(-rw-------)和 test1 的权限 755(-rwxr-xr-x) 都包含 200(–w-------) 权限,所以可以找到;而 test2 的权限是 444 (-r–r--r–),不包含 200 (–w-------)权限,所以找不到,再试试:

[root@localhost test]# find .-perm -444
.
./test2 <-此文件权限为444
./test1 <-此文件权限为755
#搜索文件的权限包含444的文件

上述搜索会找到 test1 和 test2,因为 test1 的权限 755 (-rwxr-xr-x)和 test2 的权限 444 (-r–r--r–)都完全包含 444 (-r–r--r–)权限,所以可以找到;而 test3 的权限 600 (-rw-------)和 test4 的权限 200 (-w-------)不完全包含 444 (-r–r--r–) 权限,所以找不到。也就是说,test3 和 test4 文件的所有者权限虽然包含 4 权限,但是所属组权限和其他人权限都是 0,不包含 4 权限,所以找不到,这也是完全包含的意义。

【例 3】"-perm+权限模式"

刚刚的"-perm-权限模式"是必须完全包含,才能找到;而"-perm+权限模式"是只要包含任意一个指定权限,就可以找到。我们来试试:

[root@localhost test]# find .-perm +444
./test4 <-此文件权限为200
./test3 <-此文件权限为600
./testl <-此文件权限为755
#搜索文件的权限包含200的文件,不会找到test2文件,因为test2的权限为444,不包含200权限。

因为 test4 的权限 200 (–w-------)、test3 的权限 600 (-rw-------)和 test1 的权限 755 (-rwxr-xr-x)都包含 200(–w-------)权限,所以可以找到;而 test2 的权限是 444 (-r–r--r–),不包含 200 (–w-------)权限,所以找不到。

按照所有者和所属组搜索

find 搜索路径 [选项] 搜索内容

选项:

-uid 用户 ID:按照用户 ID 査找所有者是指定 ID 的文件
-gid 组 ID:按照用户组 ID 査找所属组是指定 ID 的文件
-user 用户名:按照用户名査找所有者是指定用户的文件
-group 组名:按照组名査找所属组是指定用户组的文件
-nouser:査找没有所有者的文件

这组选项比较简单,就是按照文件的所有者和所属组来进行文件的査找。在 Linux 系统中,绝大多数文件都是使用 root 用户身份建立的,所以在默认情况下,绝大多数系统文件的所有者都是 root。例如:

[root@localhost ~]#find.-user root

#在当前目录中査找所有者是 root 的文件

由于当前目录是 root 的家目录,所有文件的所有者都是 root 用户,所以这条搜索命令会找到当前目录下所有的文件。

按照所有者和所属组搜索时,"-nouser"选项比较常用,主要用于査找垃圾文件。在 Linux 中,所有的文件都有所有者,只有一种情况例外,那就是外来文件。比如光盘和 U 盘中的文件如果是由 Windows 复制的,在 Linux 中査看就是没有所有者的文件;再比如手工源码包安装的文件,也有可能没有所有者。

除这种外来文件外,如果系统中发现了没有所有者的文件,一般是没有作用的垃圾文件(比如用户删除之后遗留的文件),这时需要用户手工处理。搜索没有所有者的文件,可以执行以下命令:

[root@localhost ~]# find/-nouser

按照文件类型搜索

find 搜索路径 [选项] 搜索内容

选项:

-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件

这个命令也很简单,主要按照文件类型进行搜索。在一些特殊情况下,比如需要把普通文件和目录文件区分开,比如需要把普通文件和目录文件区分开,使用这个选项就很方便。

[root@localhost ~]# find /etc -type d
#查找/etc/目录下有哪些子目录

逻辑运算符

[root@localhost ~]#find 搜索路径 [选项] 搜索内容

选项:

-a:and逻辑与
-o:or逻辑或
-not:not逻辑非
1) -a:and逻辑与

find 命令也支持逻辑运算符选项,其中 -a 代表逻辑与运算,也就是 -a 的两个条件都成立,find 搜索的结果才成立。

举个例子:

[root@localhost ~]# find.-size +2k -a -type f
#在当前目录下搜索大于2KB,并且文件类型是普通文件的文件

在这个例子中,文件既要大于 2KB,又必须是普通文件,find 命令才可以找到。
再举个例子:

[root@localhost ~]# find.-mtime -3 -a -perm 644
#在当前目录下搜索3天以内修改过,并且权限是644的文件
  1. -o:or逻辑或

-o 选项代表逻辑或运算,也就是 -o 的两个条件只要其中一个成立,find 命令就可以找到结果。例如:

[root@localhost ~]#find.-name cangls -o -name bols
./cangls
./bols
#在当前目录下搜索文件名要么是cangls的文件,要么是bols的文件

-o 选项的两个条件只要成立一个,find 命令就可以找到结果,所以这个命令既可以找到 cangls 文件,也可以找到 bols 文件。

  1. -not:not逻辑非

    -not是逻辑非,也就是取反的意思。举个例子:
    [root@localhost ~]# find.-not -name cangls
    #在当前目录下搜索文件名不是cangls的文件

其他选项

1) -exec选项

这里我们主要讲解两个选项"-exec"和"-ok",这两个选项的基本作用非常相似。我们先来看看 "exec"选项的格式。

[root@localhost ~]# find 搜索路径 [选项] 搜索内容 -exec 命令2 {} \;

首先,请大家注意这里的"{}“和”;“是标准格式,只要执行”-exec"选项,这两个符号必须完整输入。

其次,这个选项的作用其实是把 find 命令的结果交给由"-exec"调用的命令 2 来处理。"{}"就代表 find 命令的査找结果。

我们举个例子,刚刚在讲权限的时候,使用权限模式搜索只能看到文件名,例如:

[root@localhost test]#find.-perm 444
./test2

如果要看文件的具体权限,还要用"ll"命令査看。用"-exec"选项则可以一条命令搞定:

[root@localhost test]# find.-perm 444 -exec ls -l {}\;
-r--r--r-- 1 root root 0 6月 17 11:05 ./test2
#使用"-exec"选项,把find命令的结果直接交给"ls -l"命令处理

“-exec"选项的作用是把 find 命令的结果放入”{}"中,再由命令 2 直接处理。在这个例子中就是用"ls -l"命令直接处理,会使 find 命令更加方便。

2) -ok选项

“-ok"选项和”-exec"选项的作用基本一致,区别在于:"-exec"的命令会直接处理,而不询问;"-ok"的命令 2 在处理前会先询问用户是否这样处理,在得到确认命令后,才会执行。例如:

[root@localhost test]# find .-perm 444 -ok rm -rf {} \;
<rm…./test2>?y  <-需要用户输入y,才会执行
#我们这次使用rm命令来删除find找到的结果,删除的动作最好确认一下

tail命令

tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为“tail[选项][文本]”。
有时我们可能会遇到这样的一种情况,比如查看文本内容的最后20行,这时就需要用到tail命令了。tail命令的操作与head命令非常相似,只需执行“tail -n 20”文件名“命令就可以达到这样的效果”。tail命令最强的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,命令格式为“tail -f 文件名”。

语法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ] 
参数解释:
-f 该参数用于监视File文件增长。 
-c Number 从 Number 字节位置读取指定文件 
-n Number 从 Number 行位置读取指定文件。 
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件
假设包括中文字,假设指定-c参数,可能导致
截断,但使用-m则会避免该问题。 
-b Number 从 Number 表示的512字节块位置读取指定文件。 
-k Number 从 Number 表示的1KB块位置读取指定文件。

例:

tail -n 20 filename
显示filename最后20行
tail -f filename
#监视filename文件尾部内容,默认10行,相当
于增加参数-n 10 刷新在屏幕上退出按Ctrl+C
tail -r -n 10 filename
逆序显示filename最后10行
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值