• [转载]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:块数

  • 相关阅读:
    我开发过程中用到的工具
    我最近写的DataGrid合并/删除相同列通用函数,跟大家分享
    开源项目- Archive Explorer
    SQLite准备出3.0了!
    软件缺陷管理指南 3
    介绍一些.net好站点
    几个著名java开源缓存系统的介绍
    SQL中的Where,Group By,Order By和Having的用法/区别
    Unix/Linux中Cron的用法
    java中判断字符串是否为纯数字
  • 原文地址:https://www.cnblogs.com/liuzhuqing/p/7481095.html
Copyright © 2020-2023  润新知