[转载]Linux常用命令(2)

原文地址:Linux常用命令(2)作者:简单爱

 

find
find命令的作用是在目录中搜索文件,它的使用权限是所有用户。
find [path][options][expression]
path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。
-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。
-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。
-mindepth levels:表示至少查找到开始目录的第level层子目录。
-mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。
-version:打印版本。
[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。
—name:支持统配符*和?。
-atime n:搜索在过去n天读取过的文件。
-ctime n:搜索在过去n天修改过的文件。
-group grpoupname:搜索所有组为grpoupname的文件。
-user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。
-size n:搜索文件大小是n个block的文件。
-print:输出搜索结果,并且打印。

find命令查找文件的几种方法:
(1)根据文件名查找
例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:
find / -name lilo.conf
find命令后的“/”表示搜索整个硬盘。
(2)快速查找文件
根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:
find /etc -name smb.conf
这样,使用“快速查找文件”方式可以缩短时间。
(3)根据部分文件名查找方法
有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:
find / -name ´*abvd*´
输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。
(4) 使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。
find /etc -size +500000c -and -mtime +1

mv
mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。
mv[options] 源文件或目录 目标文件或目录
-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。
-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
(1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中:
$ mv /usr/cbu/ * .
(2)将文件cjh.txt重命名为wjz.txt:
$ mv cjh.txt wjz.txt 
ls
ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。
ls [options][filename]
-a, --all:不隐藏任何以“.” 字符开始的项目。
-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。
--author:印出每个文件著作者。
-b, --escape:以八进制溢出序列表示不可打印的字符。
--block-size=大小:块以指定<大小>的字节为单位。
-B, --ignore-backups:不列出任何以 ~ 字符结束的项目。
-f:不进行排序,-aU参数生效,-lst参数失效。
-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。
-g:like -l, but do not list owner。
-G, --no-group:inhibit display of group information。
-i, --inode:列出每个文件的inode号。
-I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。
-k:即--block-size=1K。
-l:使用较长格式列出信息。
-L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。
-m:所有项目以逗号分隔,并填满整行行宽。
-n, --numeric-uid-gid:类似-l,但列出UID及GID号。
-N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。
-p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。
-Q, --quote-name:将项目名称括上双引号。
-r, --reverse:依相反次序排列。
-R, --recursive:同时列出所有子目录层。
-s, --size:以块大小为序。
ls命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色,其中蓝色表示是目录,绿色表示是可执行文件,红色表示是压缩文件,浅蓝色表示是链接文件,加粗的黑色表示符号链接,灰色表示是其它格式文件。ls最常使用的是ls- l,
cat
cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。
cat [options] 文件1 文件2……
-n:由第一行开始对所有输出的行数编号。
-b:和-n相似,只不过对于空白行不编号。
-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。
(1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令

$ cat README 
(2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中:
$ cat README INSTALL File1
(3)cat还有一个重要的功能就是可以对行进行编号,这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。
使用cat命令/etc/named.conf文件进行编号
对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:
$ cat -b /etc/named.conf

ln
ln命令用来在文件之间创建链接,它的使用权限是所有用户。
ln [options] 源文件 [链接名]
-f:链结时先将源文件删除。

-d:允许系统管理者硬链结自己的目录。
-s:进行软链结(Symbolic Link)。
-b:将在链结时会被覆盖或删除的文件进行备份。
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
上面我们介绍了Linux文件处理命令,下面介绍几个实例,大家可以动手练习一下刚才讲过的命令。
1.利用符号链接快速访问关键目录

符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中。比如,Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也非常不容易记忆)。
为了解决这个问题,可以在主目录中创建一个符号链接,这样在需要进入该目录时,只需进入这个链接即可。
为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下可以使用以下命令:
$ ln -s /usr/local/httpd/htdocs gg
这样每次进入gg目录就可访问Web服务器的文档,以后如果不再访问Web服务器的文档时,删除gg即可,而真正的Web服务器的文档并没有删除。
2.使用dd命令将init.rd格式的root.ram内容导入内存
dd if=/dev/fd0 of=floppy.fd
dd if=root.ram of=/dev/ram0 #
3.grep命令系统调用
grep是Linux/Unix中使用最广泛的命令之一,许多Linux系统内部都可以调用它。
(1)如果要查询目录列表中的目录,方法如下:
$ ls -l | grep ´∧d´
(2)如果在一个目录中查询不包含目录的所有文件,方法如下:
$ ls -l | grep ´∧[∧d]´
(3)用find命令调用grep,如所有C源代码中的“Chinput”,方法如下:
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} ;-print

PWD  显示当前的绝对路径

cd ..  退回上一层目录

cd ../.. 退回上两层目录

cd /home/alex3531/     移动到用户alex3531的主目录

cd -     移动到自己的主目录

ls -l    列出当前目录中的所有格式,包括当前目录(.)和父目录(..),包括长度、拥有者和权限,称为长列表格式。

touch

在目标目录中生成空文件aquota.user或aquota.group

# touch /home/aquota.user /home/aquota.group

改变现有文件的时间标志,使用不带开关的Touch命令时,文件的最后访问时间变成当前时间。

# touch /root/f0601.tif

CP命令:

cp file1 file2       /将file1的内容复制到目标文件file2中,目标文件得到新的生成日期和inode编号。

cp file* Dir1       /将多个文件复制到一个目录

cp -f file1 file2    /如果文件file2已经存在,则这个命令覆盖其内容时不发出提示。

cp -i file1 file2    /如果文件file2已经存在,则这个命令覆盖其内容时会先发出提示。

cp -p file1 file2   /将file1内容复制到目标文件file2中,目标文件保持原有的生成日期和inode编号。

cp -r Dir1 Dir2    /将目录Dir1及其子目录内容复制到Dir2.(递归效果)

cp -u file1 file2   / 如果文件file2已经存在,但file1更新,则这个命令覆盖其内容是不发出提示。

说明:从一个分区向另一个分区复制文件时,不能使用cp -p file1 file2命令。

MV命令:如果要在Linux中更名文件,则要移动文件。

mv file1 file2          /将文件从file1变成file2,如果源与目标文件在同一卷中,则文件的inode号不变。

mv file* Dir1           /将多个文件移动到一个目录。

mv -f file1 file2       /如果文件file2已经存在,则这个命令覆盖其内容时不发出提示。

mv -i file1 file2       /如果文件file2已经存在,则这个命令覆盖其内容时会先发出提示。

RM命令:用于删除文件与目录

rm file1      /删除file1而不提示确认。但这个命令不会覆盖alias rm='rm -i',其要求确认。

rm -d Dir1    /删除Dir1而不提示确认,但这个命令不会覆盖alias rm='rm -i',其要求确认。

rm -i file1   /提示用户确认之后删除file1

rm -f file2   /如果文件file2已经存在,则这个命令覆盖其内容时不发出提示,甚至覆盖alias rm='rm -i'

rm -r *       /递归删除文件,如果当前目录中还有子目录,则也删除其中的文件和目录。但这个命令不会覆盖alias rm='rm -i',其要求确认。

ln  文件连接命令

如果你和同时都在使用文件project,这个可以在主目录中生成一个连接文件。

命令格式:

假设project文件在/home/jm目录中,要生成mj的主目录中文件连接,使用下列命令:

# ln /home/jm/project /home/mj/project (硬链接)

# ln -s /home/jm/project /home/mj/project (软链接)

mkdir和rmdir命令

mkdir -p Dir1/Dir2      /生成目录Dir2。如果Dir1不存在,则-p开关让Linux也生成这个目录。两者都作为当前目录的子目录。

mkdir -m 755 /usr/Dir3  /生成目录Dir3,作为/usr的子目录。权限(755)是拥有者rwx,组中的其他成员和别人为rx

rmdir -p Dir1/Dir3      /删除目录Dir1和Dir3

 

Linux常用命令

(1)命令规则、路径和文件

命令规则:命令动词   [参数]   [操作对象]

路径:绝对路径、相对路径

文件:命名规则

文件通配符:* 匹配多个字符

?匹配单个字符

[abc] 匹配abc中任意一个字符

[!abc] 匹配abc之外的任意一个字符

(2)文件目录操作命令

ls  touch  cp  mv  rm  ln

ls ----list 列文件或目录

用法:ls 参数:

-a:显示所有文件,包括隐藏文件

-l:以长格式显示

-F:附加文件类别信息

-d:显示目录

-t:按修改时间先后显示

-R:显示目录及下级子目录结构

范例:

ls –a                      ls –alR                  ls –F      

 

touch: 生成一个空文件或修改文件的时间

范例:

touch * :将当前目录下所有文件时间修改为当前系统时间

touch –d 20010602 test:将文件test的时间修改为20010602

touch test2:如果abc存在,则修改为当前系统时间,如果不存在,则生成一个为当前时间的空文件

 

cp – copy file

用法:cp –afpx source target

-a:尽可能保持文件的结构和属性

-p:保持原始文件日期

-f :如果目标文件已经存在,则覆盖它

-i :提示是否覆盖现有的普通目标文件

-R:包含子目录

范例:

cp ls.txt mydir1

cp –a mydir1 mydir2

cp /etc/syslog.conf  ./

cp -a /etc/sound/  /home/so/

 

mv – move file

用法:mv –b source target

-b:给被覆盖的文件建立一个备份

范例:

  mv  abc bcd                    mv  abc mydir/              mv  -b abc mydir/

 

rm – remove

rm –irf 文件或目录

i:交互模式

r:删除目录及以下所有内容

f:强制删除

注意:Root用户在删除文件时要特别小心、权限问题

 

cat  more  less  head  tail

cat:输出文本文件内容(文本文件合并)

范例: cat tt.txt

      cat   txta  txtb  > txt

 

more:按页显示文件

范例:more tt.txt

 

less:按页显示文件,可以使用翻页键

范例:less tt.txt

 

head:显示文件的前?行

范例:head –20 /etc/passwd

 

tail:显示文件的后?行

范例:tail –20 /etc/passwd                  tail +20 /etc/passwd

 

pwd  cd  mkdir  rmdir

cd – change directory

用法:cd [目录]  作用:切换路径

范例:cd ..                  cd /                cd ../usr

 

pwd – print work directory

用法:pwd

作用:显示当前工作目录

范例:配合cd

 

mkdir创建和删除目录

mkdir 用法: mkdir  目录名

作用:创建目录新的目录

范例:mkdir abc

rmdir

用法: rmdir目录名

作用:删除空目录

范例:rmdir  abc

 

find  grep

find作用:查找文件或目录

用法:find 查找路径  匹配条件 

动作 常用匹配条件

name ‘字符串’

lname ‘字符串’

user 用户名

group 组名

perm xxxx

links n

atime n

mtime n

grep功能:在文件中查找匹配的字符串

格式:grep  [参数] “待查字符串” 文件

例子: grep ‘abc’  myfile

       grep ‘abc’  *

       grep  -B 4 ‘abc’ *

grep  -2 ‘abc’  *.txt

 

tar  gzip  compress

压缩与解压缩-常用压缩工具

gzip,gunzip      .gz

zip,unzip        .zip

tar             .tar

compress       .Z

bzip2          .bz2

 

sort  paste

sort:将文本文件排序

范例

sort passwd

sort –n test :将test按照数字大小排序

sort test1 test2 test3:将文件test1,test2,test3的内容联合排序

paste:将不同文件合并

范例:paste test1 test2 > test3

 

(3)信息显示命令

dmesg显示机器引导时内核显示的状态信息

file :测试文件类型

stat:显示文件访问、修改、变更时间、大小、属主和组以及许可模式等信息范例: stat abc.txt 

who  w :查看其他登录的用户

who和w使用范例

who

who -wi 

w

whoami:查看登录用户自己的信息

hostname:查看主机名

uname:显示系统信息

du:报告指定的文件(目录)已使用的磁盘空间的总量

df:报告文件系统磁盘空间的使用情况

free:查看当前内存和交换空间的使用情况

 

(4)用户通信与网络命令

write:向另外一个用户发信息。以CTRL+D作为结束

使用举例 : $ write webmaster

wall:向所有用户广播信息。

格式:wall [message] [文件名]

$ wall Happy new year!

mesg:是否接受其它用户发来的信息 mesg [y|n] 

talk:适用于双向通信的工具 ,格式:talk 用户名

mail:字符界面下的MUA 

格式:mail [选项] [用户地址]

使用:阅读邮件   {mail        ( h   f )}

发送邮件   {mail username@domain}

删除邮件   {mail        ( d   u )}

保存邮件到文件  {mail    ( s  filename)}

保存到   {mail    ( s  n+filename)}

将信的内容保存邮件到文件或文件夹(w)

从文件中读取邮件  {mail -f filename}

从文件夹中读取邮件  {mail -f  +filename}

回复邮件    {mail    ( r  n)}

ftp:客户端程序,常用子命令:

               open close asc bin

               dir/mdir   ls   pwd cd 

               get/put mget/mput newer

               delete/mdelete mkdir/rmdir  rename

               lcd  !cmd

               system bye/quit  help/? 

lynx:字符界面的浏览器

(5) 其他命令:

          clear:清屏

          wc:文本文件中单词的计数(word count)

         date:显示和更改系统日期

         cal:显示日历

su:切换登录用户

passwd:更改用户密码

help:用于查看Linux内置命令的帮助信息

man:列出指定命令的帮助手册

 

7、Shell的高级使用

(1)重定向:

标准输入、输出:Study、 Stout、Stderr

输出重定向:> 、>>

错误输出重定向:2> 、&>

输入重定向:< 、<<!…………!

(2)管道:将一个命令的输出传送给令一个命令,作为另一个命令的输入

使用方法:命令1|命令2|命令3……|命令n

使用举例:$ ls –Rl /etc |more

$ cat /etc/passwd | wc

$ cat /etc/passwd | grep lrj

$ ps –aux |tail +2 |more

 

(3)命令替换

`cmd`或$(cmd)

例如:$wall  `date`

$cd `pwd`

 

(4)命令执行顺序:命令间隔符说明

;   用;间隔的各命令按顺序依次执行

&&  前后命令的执行存在“逻辑与”关系,只有&&前面的命令执行成功后,它后面的命令才被执行

||    前后命令的执行存在“逻辑或”关系,只有||前面的命令执行失败后,它后面的命令才被执行

几个命令间隔符同时出现在同一个命令行上时,其优先级为: ;的优先级最低  ||和&&具有相同的优先级 ,同优先级,按从左到右的结合原则执行命令行 ,使用()可以组合命令行中的命令,改变执行顺序。

命令的多种执行顺序举例:

$ date ;pwd

顺序执行date和pwd命令。

$ mail jjh < message && rm message

若文件message被mail发送出去,就把它删除,否则不删除。

$ write jjh < report || mail jjh < report

若对方拒绝对话,就将信息发送到他的信箱里。

$ date ; cat file |wc

只有cat命令的信息通过管道送给wc命令。

$ (date; cat file) |wc

   date和cat命令的信息都通过管道送给wc命令。

 

(5)文件系统管理的常用命令

df:    显示文件系统的统计数据

du:   显示硬盘使用情况

ln:    创建链接文件

find :查找文件

dd:  文件拷贝(diskdump),将指定的输入文件拷贝到输出文件上去

几个参数  if:输入文件   of:输出文件 bs:块字节大小  count:块数

原文地址:https://www.cnblogs.com/liuzhuqing/p/7481095.html