linux基本命令_常用linux命令的基本使用 - CSDN
  • Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。   1、显示日期的指令: date     2、显示日历的指令:cal     3、简单...

     

    Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。

     

    1、显示日期的指令: date

     


     

    2、显示日历的指令:cal

     

     

    3、简单好用的计算器:bc

     

     

    怎么10/100会变成0呢?这是因为bc预设仅输出整数,如果要输出小数点下位数,那么就必须要执行 scale=number ,那个number就是小数点位数,例如:

     

     

    4、重要的几个热键[Tab],[ctrl]-c, [ctrl]-d 

     

    [Tab]按键---具有『命令补全』不『档案补齐』的功能

     

    [Ctrl]-c按键---让当前的程序『停掉』

     

    [Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit

     

    5、man

    退出用q,

    man -f man

     

     

    6、数据同步写入磁盘: sync

     

    输入sync,那举在内存中尚未被更新的数据,就会被写入硬盘中;所以,这个挃令在系统关机戒重新启劢乀前, 径重要喔!最好多执行几次!

     

     

    7、惯用的关机指令:shutdown

     

     

    此外,需要注意的是,时间参数请务必加入指令中,否则shutdown会自动跳到 run-level 1 (就是单人维护的登入情况),这样就伤脑筋了!底下提供几个时间参数的例子吧:

     

     

    重启,关机: reboot, halt,poweroff

     

     

    8、切换执行等级: init

     

    Linux共有七种执行等级:

     

    --run level 0 :关机

     

    --run level 3 :纯文本模式

     

    --run level 5 :含有图形接口模式

     

    --run level 6 :重新启动

     

     

    使用init这个指令来切换各模式:

     

    如果你想要关机的话,除了上述的shutdown -h now以及poweroff之外,你也可以使用如下的指令来关机:  

     

     

    9、改变文件的所属群组:chgrp

     

     

    10、改变文件拥有者:chown

     

    他还可以顸便直接修改群组的名称

     

     

    11、改变文件的权限:chmod

     

     

    权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。

     

    --数字类型改变档案权限:

     

     

     

    --符号类型改变档案权限:

     

     

    12、查看版本信息等

     

     

    13、变换目录:cd

     

     

    14、显示当前所在目录:pwd

     

     

    15、建立新目录:mkdir

     

     

    不建议常用-p这个选项,因为担心如果你打错字,那么目录名称就回变得乱七八糟的

     

    16、删除『空』的目录:rmdir

     

     

    17、档案与目录的显示:ls

     

     

    18、复制档案或目录:cp

     

     

    19、移除档案或目录:rm

     

     

    20、移动档案与目录,或更名:mv

     

     

    21、取得路径的文件名与目录名:basename,dirname

     

     

    22、由第一行开始显示档案内容:cat

     

     

    23、从最后一行开始显示:tac(可以看出 tac 是 cat 的倒着写)

     

     

    24、显示的时候,顺道输出行号:nl

     

     

    25、一页一页的显示档案内容:more

     

     

    26、与 more 类似,但是比 more 更好的是,他可以往前翻页:less

     

     

    27、只看头几行:head

     

     

    28、只看尾几行:tail

     

     

    29、以二进制的放置读取档案内容:od

     

     

    30、修改档案时间或新建档案:touch

     

     

    31、档案预设权限:umask

     

     

    32、配置文件档案隐藏属性:chattr

     

     

    33、显示档案隐藏属性:lsattr

     

     

    34、观察文件类型:file

     

     

    35、寻找【执行挡】:which

     

     

    36、寻找特定档案:whereis

     

     

    37、寻找特定档案:locate

     

     

    38、寻找特定档案:find

     

     

    39、压缩文件和读取压缩文件:gzip,zcat

     

     

    40、压缩文件和读取压缩文件:bzip2,bzcat

     

     

    41、压缩文件和读取压缩文件:tar

     

     

     

    展开全文
  • Ubuntu的图形界面使用起来非常方便,但是要想对Linux熟练掌握,就必须学会它的操作命令。虽然可能会花费一些时间,不过从长远的角度来说,这的确是一件事半功倍的事情,它会让我们更了解Linux,更灵活地去使用Linux...

    Ubuntu的图形界面使用起来非常方便,但是要想对Linux熟练掌握,就必须学会它的操作命令。虽然可能会花费一些时间,不过从长远的角度来说,这的确是一件事半功倍的事情,它会让我们更了解Linux,更灵活地去使用Linux。
    Ubuntu提供了很多命令,不过在本章中不做全部介绍,只是先介绍一些常用命令,其他则分散到各个章节中。初学Linux一定要特别注意,学习命令并不意味着要掌握全部命令和每个命令的全部选项,这并不是必要的。先掌握最常用命令的最常用选项就好,下面就让我们来体会一下Ubuntu命令的强大功能。

    7.1  基本命令

    Ubuntu的命令较多,但是对于一些常用的系统操作,无非就是一些创建、查看、移动、复制等,本小节先熟悉一下这些基本命令。在学习这些基本命令之前,应该先了解一下Linux的一些特性和在Linux中命令的执行方式。

    在Linux中,所有设备都是用文件名来表示的,就像我们在分区时所了解的那样,这与我们所熟悉的Windows系统有很大不同,Linux中并没有所谓C盘、D盘之类的说法,并且在Linux中只有文件和目录(相当于Windows中的文件夹),所有文件和目录都以倒树状结构挂载在“/”(读做根目录)目录下,也正是因此Linux系统的管理员称为root(树根),如图7-1所示。这稍后在第12章“文件系统管理”一章还会详细介绍,现在大家只是有个概念即可。

    图7-1  Linux文件系统结构
    当使用命令行进行操作时,首先要知道命令行的环境所代表的含义,如下所示:
    [root@localhost: /etc #
    我一下  |      |      | 
    用户名 主机名 当前目录
    需要说明的一点是,对于普通用户来说,提示符“#”显示为“$”。在Linux中如果要执行一个命令则可以通过如下方式:
    # 命令名  [-选项]  参数


    需要注意的是,命令名、选项或者参数之间都是至少要有一个空格,多个空格没有关系,选项不是必需的。当有多个选项时,可以写在一起。因为Linux基本是由C语言编写的,所以无论命令名或选项,Linux都是严格区分大小写的。

    在了解了以上基本的内容后,下面就来详细地介绍Linux的基本命令

    7.1.1  列出文件清单命令:ls

    ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:

     # ls  [-选项]  [文件名或者目录名]

    进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。它有很多的命令选项,并且选项之间可以互相组合使用,我们只列出其中常见的一些,见表7-1。

    表7-1  ls命令的选项说明

     

    在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:

    # ls /etc
    

    如果想要列出当前目录下所有文件,则可以使用下列命令:

    # ls -a 
    
    结果图7-2所示。
     
    图7-2  ls -a命令执行结果

    读者可能会发现里面有很多以“.”为开头的文件或者目录,在Linux中,如果一个文件名(目录名)以“.”开头则表示它是隐藏文件(目录)。并且在默认情况下,蓝色代表一个目录,白色代表一个普通文件。

    提示:

    在Ubuntu中,在默认情况下蓝色代表目录,白色代表普通文件,红色代表压缩文件或者软件包,绿色代表可执行文件,浅蓝色代表链接文件,黄色代表设备文件等。但是这并不是在所有情况下都是有效的,之所以能以颜色区分,是因为在执行命令“ls -l”时,实际上是执行了“ls --color=auto”命令,可以使用alias命令进行查看,这种设置命令别名的方式在第9章会详细介绍。如果要想确切地知道到底是文件还是目录,可以通过ls –l命令,首行字母为“d”则为目录,首行字母为“-”的即为文件,首行字母为“l”的为软链接文件

    7.1.2  改变当前路径命令:cd

    cd命令能够改变当前用户所处的位置。cd命令比较简单,其命令执行的方式为:

    # cd 路径

    使用cd命令之前,先来了解一下绝对路径和相对路径的概念。

    我们知道,Ubuntu中所有文件或者目录都挂载在“/”目录下,所以如果一个文件或者目录的详细位置是从“/”开始的话,这样的路径称为绝对路径,如/etc/init.d/lvm。如果路径不是从根写起,则称之为相对路径,例如,现在所处的位置为/etc目录中,如果现在要进入init.d目录中,则可以执行如下命令:

    # cd init.d


    这种不是从根目录写起的路径称为相对路径。

    其实这两种路径的写法都能达到同样的效果,相对路径的写法有时候更加快速、方便一些,例如,进入很深的一个目录结构中时,而绝对路径能够确保路径一定正确。

    例如,现在想从/root目录中进入到/etc目录中,可以下达命令:

    # cd /etc

    使用cd命令时,有几个特殊格式的目录表示方式需要我们了解一下,参见表7-2。

    表7-2  特殊目录的表示方法及含义

    特殊目录的表示方法

     

    .

    代表当前目录

    ..

    代表上层目录

    ~

    代表当然登录用户的宿主目录

    ~用户名

    代表进入~后用户的宿主目录

    -

    代表前一目录,即进入当前目录之前操作的目录

    上述目录操作方式如图7-3所示。

     
    (点击查看大图)图7-3  特殊目录的使用方法

    提示:

    直接在命令行中输入cd命令而不加任何参数,可以马上回到用户的主目录(home),这一点与DOS中cd命令显示当前路径不同,请一定注意。在Linux中,很多与用户自身相关的配置文件、属于自己的文档、程序、脚本和安装包等都存放在用户自己的home目录中,这个目录就相当于Microsoft Windows中的“我的文档”。所以能用cd命令直接“回家”,真的很方便

    7.1.3  查看当前路径命令:pwd

    pwd命令能够显示当前所处的路径。

    这个命令比较简单,如果有时在操作过程中忘记了当前的路径,则可以通过此命令来查看路径,其执行方式为:

    # pwd 
    /home/samlee


    第一行为运行的命令,第二行的内容为运行pwd命令后显示的信息,即显示用户当前所在的工作目录的路径为/home/samlee。

    提示:

    应该经常使用pwd命令。Linux的目录结构非常复杂,一个小小的分支就可能会有十几层目录,就好像是个森林,所以Linux不会像Windows那样把全路径写在提示符里,那样太长了。

    在目录用cd钻来钻去,很容易记不清自己到底身在何处,这时候执行命令可是有点危险的,例如,想删除一个文件,不搞清楚当前目录,可能会误删除同名的有用文件,而且没那么容易恢复。还有很多其他的情况需要使用pwd,尤其是在执行“rm –rf”这种对目录直接删除的操作时,更需要用pwd确定一下,可能每执行十几个命令就会输入一回。我们应该感谢Jim Meyering先生,他是pwd的创作者。

    7.1.4  改变文件创建时间及创建空文件命令:touch

    touch命令能够创建一个空白文件,或者改变文件的创建时间。

    touch命令的执行方式为:

    # touch 文件名

    一般来说,建立一个文件都会使用一个文本编辑器(如第8章要介绍的vi编辑器),但是也可以使用touch命令来创建一个空白的文件。

    例如,现在要在/home目录下创建一个名为test的空白文件,可以执行命令:

    # touch /home/test


    实际上,对于touch命令来说,其最主要的功能是改变文件的时间,那么一个文件拥有哪些时间属性呢?对于一个文件来说,主要有三种时间属性,分别为:

    (1)mtime:这个时间记录的是文件内容被修改的时间。

    (2)ctime:这个时间记录的是文件的属性(所有者、所属组、文件名)或者权限被修改的时间。

    (3)atime:这个时间记录的是文件的内容被读取的时间。

    下面我们举个例子来说明,现在我们在/home目录下创建了一个文件file,然后分别查看其三个时间,命令操作如图7-4所示。

     
    (点击查看大图)图7-4  显示文件的三种时间状态
    通过图7-4我们可以看到,在刚开始创建文件时候三种时间是相同的,在默认情况下使用ls –l命令查看到的是文件内容修改的时间(即mtime),如果在不同时间内分别对其进行编辑内容,修改文件所有者和读取内容操作后,三个时间即会发生变化,具体命令以后会详细讲解,在此只需要观察一下命令结果即可,如图7-5所示。
     
    (点击查看大图)图7-5  文件的三种时间状态发生变化后效果
    通过图7-5可以看到,我们通过不同时间内的不同操作后,file文件的三种时间分别发生了变化,如果现在我们想让其变成与当前时间相同,则可以使用touch命令,执行结果如图7-6所示。
     
    (点击查看大图)图7-6  使用touch命令改变时间状态

    这样就将file文件的时间变成了当前的时间。

    touch 命令的参数不多,常见的有以下几个,见表7-3。

    表7-3  touch命令选项

     

    7.1.5  创建目录命令:mkdir

    mkdir 命令能够创建一个目录。mkdir 命令的执行方式为:

    # mkdir 目录名

    其实一个目录就是一个特殊类型的文件,就如同Windows中的文件夹一样,目录里面既可以有文件,也可以有子目录,就是因为有目录的存在,Linux才能够以一种目录树的结构对文件系统进行管理。

    例如现在要建立一个directory目录,则可以执行命令:

    # mkdir directory


    创建完目录后可以使用ls –l命令去查看目录是否建立成功。如果directory所在行的第一个字母为d,则说明建立成功。

    有时候我们需要一次性地建立多级目录,则可以使用-p参数:

    # mkdir -p /home/dir1/dir2/dir3


    7.1.6  删除空目录命令:rmdir

    rmdir命令能够删除一个空目录。rmdir命令的执行方式为:

    # rmdir 目录名

    对于目录来说,如果里面为空的时候可以使用rmdir命令来删除,并且此命令只能用来删除空目录,如果是非空目录,则需要使用下面要介绍的rm 命令。

    例如我们要删除/home/directory这个空目录,则可以执行命令:

    # rmdir /home/directory


    提示:

    rmdir可以删除的是非空目录,被删的目录下不能有文件或子目录。如果只是有子目录存在,还可以用-p来删除;如果含有文件,那么-p选项也无能为力了。只有使用“rm –rf”大法,才能“连根拔起”。


    7.1.7  除文件(目录)命令:rm

    rm命令能够删除一个文件或者目录。rm命令的执行方式为:

    # rm  [-选项] 文件名或者目录名 

    对于Ubuntu来说,这个命令是比较危险的一个命令,因为一旦使用了这个命令删除的文件如果再进行了磁盘写操作后将无法再恢复。在其他版本的一些Linux中,默认情况下给rm命令加上了一个i选项,可以在删除前对操作进行确认,建议当学习完Shell一节后也利用命令别名使其拥有这一特性。

    刚才介绍的rmdir命令只能删除一个空目录,而rm命令不但能删除任何目录,而且可以删除文件。

    例如,现在在/home目录下分别建立一个文件file和一个目录directory,并且在目录directory下建立file1文件,操作如下:

    # touch /home/file
    # mkdir /home/directory
    # touch /home/directory/file1


    现在分别将file文件和directory目录删除,操作如下:

    # rm /home/file
    # rm -r /home/directory

    现在就可以将file文件和directory目录删除了,注意,当使用rm命令删除目录时,应该加上-r选项,否则系统会显示不能删除目录的信息。rm命令选项如表7-4所示。

    如果我们要在每一次执行此命令前都要进行确认操作是否进行,则可以加上-i 选项:

    # rm -i /home/file

    表7-4  rm命令选项

     

    7.1.8  复制命令:cp

    cp命令能够复制一个文件或者生成一个不同名但是内容相同的文件。

    cp命令的执行方式:

    如果是复制文件,则执行方式为:

     # cp源文件名  目标路径
    
    如果是生成不同名但是内容相同的文件,则下达方式为:
     # cp源文件名  目标文件名
    例如,现在需要将/etc/passwd文件复制到/home目录中,可以执行如下操作:
    # cp /etc/passwd  /home
    这时在/home目录中即有一个文件passwd,现在想生成一个passwd_new文件,要求内容与passwd文件内容相同,则可以执行命令:
    # cp passwd passwd_new
    

    这样就生成了一个passwd_new文件,其内容与passwd文件内容相同。以后当配置DNS服务器的时候,就可以采用同样的方法生成不同的区域数据文件,然后只需要对每个文件里面的不同部分进行修改就可以了,避免了每生成一个文件都要重新写一遍的麻烦。

    cp命令的选项非常多,表7-5将其常用的一些列出。

    表7-5  cp命令选项

     

    7.1.9  移动文件(目录)命令:mv

    mv命令用来移动一个文件(目录)或者是给文件(目录)改名。

    mv命令的执行方式为:

    如果是移动文件,则执行方式为:

    # mv要移动的文件 目标路径
    如果是给文件改名,则执行方式为:
    # mv原文件名 新文件名
    例如,在/目录下有一个文件为test,要将其移动到/home目录中,可以执行如下操作:
    # mv /test /home
    此时就将test文件移动到/home目录中了,现在需要将其改名为test_new,则可以执行如下操作:
    # mv /home/test  /home/test_new

    这样就将test文件成功改名为test_new。


    7.1.10  显示文件内容命令:cat

    cat命令能够显示一个文件的内容。

    cat命令的执行方式为:

     # cat 文件名
    cat命令的常见用法是查看一个文件的内容,例如,现在想查看一下/etc/passwd文件的内容,可以执行命令:
     # cat /etc/passwd 
    这样不用打开文件就可以看到passwd文件的内容了,但是cat命令的一个缺点是它在显示文件内容时不能做任何停留,所以如果遇到了一个文件内容超过整个屏幕的时候我们只能看到其最后部分,解决的办法是使用管道符(见第9章)和分屏显示命令:
    # cat /etc/passwd | more 
    还可以通过cat命令和输出重定向命令将一个文件的内容输出到另一个文件中去,即我们常说的将两个文件进行合并:
    # cat /etc/passwd >> /home/passwd_bak

    这样passwd文件的内容就会追加到passwd_bak文件中,从而达到两个文件合并的目的。


    7.1.11  从头开始查看文件内容命令:head

    head命令能够从头开始显示文件内容,并且能够设定查看的行数。

    head命令的执行方式为:

    # head [-n] 文件名

    n为数字,即设定的行数。

    head命令能够从文件开始处查看一个文件的指定的行数,如想要查看/etc/passwd文件的前五行,可以执行命令:

    # head -5 /etc/passwd 

    如果没有指定行数的话,默认是显示前十行。


    7.1.12  tail命令

    tail命令能够从文件结尾开始显示文件内容,并且指定查看的行数。

    tail命令的执行方式:

    # tail [-n] 文件名 
    tail命令能够从一个文件的结尾处向上查看一个文件的指定的行数,它正好与head命令相反,是倒序进行查看的,如想要查看/etc/passwd文件的后面5行,可以执行命令:
    # tail -5 /etc/passwd 

    与head命令一样,如果没有指定行数的,默认是显示后面十行。



    7.1.13  分屏显示文件命令:more(less)

    more命令能够对文件内容或者查询结果进行分屏显示。more命令的执行方式为:

     # more 文件名 
    more命令可以单独使用,也可以和配合管道符使用。它的主要作用是能够将屏幕输出的结果分屏显示。例如使用cat命令查看/etc/passwd文件时,只能看到最后的内容,为了能够看到文件所有内容,可以执行命令:
    # more /etc/passwd
    或者是配合管道符命令:
    # cat /etc/passwd | more

    这时就可以分屏来查看文件内容了,可以通过回车键向下一行行滚动,但是它的缺点是不能够进行向上滚动,如果想向上翻屏,需要使用less命令,less命令的用法与more命令完全相同,唯一不同点是less命令能够向上翻屏。可以通过上下箭头进行上下一行行滚动,也可以通过page up/page down命令向上/向下进行一屏一屏滚动。

    7.2  文件处理命令

    Linux提供了一些用于处理文件的命令,使用它们,能够完成很多只有高级文本编辑器才能完成的功能,本节对其常用的一些进行介绍。

    7.2.1  文件比较命令:diff

    diff命令能够比较两个文件的差异,diff命令的执行方式为:

     # diff  [-选项]  文件一  文件二 
    如果想比较出两个文件内容的不同,使用diff命令非常方便。例如,现在将/etc/passwd文件复制到/home目录下,并且将其复制生成文件passwd_new,再将passwd_new文件进行修改,然后使用diff命令比较出两个文件的不同,操作如下:
    # cp /etc/passwd 
    # cp /home/passwd /home/passwd_new
    # diff /home/passwd /home/passwd_new

    这样就很容易看到两个文件的不同了。

    diff命令后还可以加一个目录名和文件名或者两个都是文件名,换句话说,如果上述命令执行方式处的文件一(或者是文件二)是目录,文件二(或者是文件一)不是目录,这样diff就会在目录中找到与文件名相匹配的文件进行比较,例如:

    # diff /home file

    这样diff会在/home目录中找到是否有file文件,然后与后面的file文件进行内容比较。


    7.2.2  排序命令:sort

    sort命令能够对文件内容或者查询结果进行排序。

    sort命令的执行方式为:

    # sort [-选项] 文件名

    sort命令可以对指定文件中的所有行进行排序,它的排序是根据从指定的行抽取的一个或者多个关键字来进行排序的。

    例如,现在想根据/etc/passwd文件中的第三列来将passwd文件进行排序后输出,应该下达如下命令:

     # sort -t “:” -k 3 /etc/passwd 

    其中-t选项指定了每列的分割符,-k选项指定了以第几列进行排序。

    sort命令选项很多,表7-6列出了其常用选项:

    表7-6  sort命令选项

      

    7.2.3  统计命令: wc

    wc命令可以对文件的行数、单词数和字符数进行统计。

    wc命令执行方式为:

    # wc [-选项]  文件名 
    wc命令是一个对文件进行统计的非常好的命令,例如,现在需要统计当前系统内有多少用户,因为/etc/passwd文件中保存了所有的用户,并且每个用户的信息为一行,所以可以执行命令:
    # wc -l /etc/passwd
    

    这样就能够得到当前Ubuntu系统中的用户数,wc命令还经常和管道符进行联合使用,对前一个命令的查询结果进行统计。
    sort命令的常用选项如表7-7所示。

    表7-7  wc命令选项


    7.3  设置权限命令

    在Linux中,一个用户对一个文件(目录)是否有权利去使用,是根据此文件(目录)设置的权限所决定的。Ubuntu中的每个用户都至少属于一个组。

    现以一个班级为例说明用户与组的关系。我们可以把班级里的每个学生看成是Ubuntu里的一个用户,现班级规定,每个人必须参加一个兴趣小组,甲同学参加了科技小组,那么他就是科技小组这个“组”里的成员,乙同学参加了书法小组,那么他就是书法小组这个“组”里成员,对于科技小组来说,组里的自己的私有物品也只有自己能够使用,如果书法小组的人想使用科技小组里成员的物品的话,需要科技小组的成员的物品所有者同意才可,但是由于科技小组里的成员都是一个小组,所以可能他们互相之间的使用物品的权限要比外组的成员要大一些。可以用图7-7表示。

     
    图7-7  用户与组的关系

    可以看到,一个用户既可以属于一个组,也可以属于多个组,而每个组里成员的各自物品都可以根据自己的规定来让同组的成员和不在此组里的成员使用,实际上,这就是Linux最基本的权限模型。

    Linux中的一个文件在正常情况下是属于一个用户所有,将此用户称为文件的所有者(也可以称为属主),而将一些用户统一分在一个组里,设定此组对文件操作的权限,这个组为文件的所属组,既不是文件的所有者,也不是文件的所属组里的用户我们统一称为其他人。

    了解了这些基本概念后,我们就来学习一下设定权限的相关命令。需要说明的是,对于超级用户(UID为0)来说,它拥有所有权限

    7.3.1  设定权限命令 chmod(1)

    chmod命令能够对文件设定权限。

    在Linux中,文件(目录)的权限分为可读、可写、可执行三类权限,其中可读用字母r表示,可写用字母w表示,可执行用字母x表示。

    1.对于文件来说

    可读是指可以查看文件内容,例如,使用vi或者cat命令能够查看文件内容。

    可写是指可以修改文件内容并且保存修改后的结果,如使用vi命令能够修改文件内容后保存。

    可执行指的是能够运行此文件,在Linux中,一个是否能够执行不决定于其扩展名,而是看其是否被设定了可执行权限,当然前提是本身一定是个二进制文件或者脚本文件。例如普通文本文件即使设定了可执行权限后也无法执行。

    2.对于目录来说

    可读是指能使用ls命令显示目录下的内容。

    可写指的是能够在此目录下建立和删除文件。在Linux中,一个文件是否能够被删除,是决定于其所在目录是否对命令执行者设定可写权限,而与文件本身权限无关,文件本身权限只是对文件本身内容或者是否能执行进行限制。

    可执行指的是能够在目录下运行命令,所以如果想让一个用户能够进入此目录,必须对此目录在相应的权限位上设定可执行权限。
    在对文件和目录设定之前,来看一下如何查看文件的权限。

    在Linux中,使用ls -l命令查看权限属性。对于/etc/passwd文件,使用ls -l命令后结果如图7-8所示。

     
    (点击查看大图)图7-8  /etc/passwd文件权限

    下面介绍每列含义:

    (1)第一列:文件类型和权限,这部分稍后重点介绍。

    (2)第二列:i节点,即硬链接数,在文件系统部分还会介绍。

    (3)第三列:文件的属主,即文件的所有者,有时候我们将一个文件复制给另一用户,要记得将文件的属主也要改变,否则可能会发生文件权限不对的错误。

    (4)第四列:文件的属组,即文件的所属组,即在此组里的用户对文件有拥有不同的权限。

    (5)第五列:文件的大小,大小以字节显示。

    (6)第六列:最近一次文件内容的修改时间,即mtime。

    (7)第七列:文件或者目录名。

    现在重点来解释第一列,/etc/passwd文件使用ls -l命令后,查询结果的第一列如下:

     -rw-r--r-- 
    

    可以看到,这部分还可以细分为十列,实际上可以将这十列分为两部分,第一列为第一部分,代表了文件的类型,文件的类型主要有以下几种:

    (1)-表示是普通文件

    (2)d表示是目录

    (3)l表示是链接文件

    (4)b表示是块设备文件,例如硬盘的存储设备等

    (5)c表示是字符设备文件,如键盘等

    (6)s表示是套接字文件,此主要跟网络程序有关

    (7)p表示是管道文件

    这样根据文件类型就可以判断一个文件到底是文件还是目录,或者是哪种类型的文件,即使文件不以颜色显示也没有关系了。
    第二列至第十列为第二部分,这部分一共9列,每三列为一组,共分为三组,由左至右分别代表了属主的权限,属组的权限,其他人的权限。如对于刚才我们查询的结果来说,/etc/passwd文件属主为root,属于root组,各部分权限分别为:

    属主的权限为:rw-

    属组的权限为:r--

    其他人的权限为:r--

    我们发现,每组正好由三列组成,依次代表了可读权限、可写权限、可执行权限。也就是说,如果属主对文件拥有可读权限,则在属主权限位上的第一列就用r表示,而“-”代表没有相关的权限。由此我们可以得到/etc/passwd文件的权限:

    root(属主)用户对passwd文件拥有可读(r)可写(w)权限。

    root(属组)组里的用户对passwd文件拥有可读权限。

    既不是root用户也不属于root组的用户对文件拥有可读权限。

    下面我们使用chmod命令来设定文件的权限。

    chmod 命令的格式为:

    chmod  [选项]  权限  文件名(目录名)
    

    使用chmod命令设定权限的方法有两种:数字和字符。

    1.数字方式设定权限

    文件的权限共有三种:可读(r)、可写(w)、可执行(x),使用数字4代表读权限;2代表写权限;1代表可执行权限;0表示没有相应的权限,所以,如果用户拥有哪个权限,就将其代表的数字相加,最后相加的和即为用户的权限。比如说,还是以passwd文件为例,我们知道root(属主)用户对文件拥有的权限为rw-,所以使用数字来代表即为:

     4(r) + 2(w) + 0(-)= 6 
    依此类推,能够得到属组和其他人的权限;
     属组的权限:4(r) + 0(-) + 0(-) = 4
    其他人的权限:4(r) + 0(-) + 0(-) = 4
    即644为此文件的权限,其中第一个数字是代表属主所拥有的全部权限,第二个数字是代表属组里的用户所拥有的权限,第三个数字代表其他人所拥有的权限。下面举例说明如何使用chmod命令进行设定权限,使用Ubuntu用户创建一个文件file,因为在默认情况下在Ubuntu中创建的用户都是属于users组的,所以我们希望此文件权限为:
    ubuntu(属主)用户可读可写
    users(属组)里的用户只能够读。
    其他人没有任何权限,即不能读,写和执行
    由上面的方法我们能够得到此文件的权限数字为
    属主:4(读) + 2 (写) + 0(执行) = 6
    属组:4(读) + 0(写) + 0(执行) = 4
    其他人:0(读) + 0(写) + 0 (执行)= 0
    命令执行结果如图7-9所示。
     
    (点击查看大图)图7-9  使用chmod设定权限
    使用chmod命令以数字方式设定文件或者目录的权限,设定后以前的权限无论是什么都会以后设定的为准。

    7.3.1  设定权限命令 chmod(2)

    2.字符方式设定权限

    还可以使用字符方式设定权限,使用字符方式能够很方便地对文件的权限进行修改和设定。字符方式各符见表7-8。

    表7-8  字符方式设定权限

     

    使用字符方式设定权限,有时可以在原来的权限基础上进行修改,现在举例说明:使用Ubuntu用户创建文件file,然后执行以下操作:

    (1)将其权限设定为所有人都只读

    (2)将文件属主增加可写权限

    (3)将其他人的可读权限去除

    执行结果如图7-10所示。

     
    (点击查看大图)图7-10  使用字符方式设定权限
    也可以将第二个要求和第三个要求同时完成,两个设定之间只需用“,”隔开。即可以如下操作:
    # chmod u+w,o-r file
    可以使用-R选项进行多级目录的权限设定。例如:
    # chmod -R 755 /home

    这样就可以将/home目录以及其目录下的所有文件和目录权限都设定为755。

    7.3.2  更改属主(属组)命令:chown

    chown命令可以更改一个文件(目录)的属主或者属组。

    chown命令的执行方式为:

    # chown  [选项]  属主[.属组]   文件名
    

    使用chown命令,能够将一个文件的属主或者属组进行或者同时进行改变。同时改变时,属主和属组之间使用“.”隔开,还可以使用-R选项同时将目录下的所有文件和目录的属主和属组进行修改。

    例如,现在使用root用户创建一个文件,然后执行下列操作:

    (1)将其文件属主改为ubuntu用户

    (2)将其属组改为users组

    (3)将属主和属组同时改为root

    执行命令结果见图7-11。

     
    (点击查看大图)图7-11  使用chown命令

    在本例中使用root账号进行操作,防止来回在不一样的用户间进行切换,由上面的命令可知,单独改变文件的属组时,需要在属组组名前面加上“.”。对于root用户来说,一般情况下,文件的权限对其不起作用,特殊情况会在高级权限设定时讲解。

    7.3.3  更改文件属组命令:chgrp

    chgrp命令能够改变文件(目录)的属组。

    chgrp命令的执行方式为:

    # chgrp  [选项]  属组 文件名

    chgrp命令只是单纯的修改文件的属组,例如:

    # chgrp users file

    此命令的执行结果是将file文件的属组改为了users。

    提示:

    chgrp与chown命令的用法基本是一致的,用法也比较简单。可以用-R参数把一个目录下的所有内容都改变用户和组。

    7.4  文件查找命令

    相信每个人都有过在计算机查找一些文件的经历,对于记忆力不是很好的笔者更是经常如此,相信大家对Windows的搜索功能还是记忆犹新,其实Ubuntu也提供了功能非常强大的查找命令,下面我们就来体会一下。

    7.4.1  按路径进行查找的命令:which

    which命令能够按PATH变量所规定的路径进行查找。

    which命令的执行方式为:

    # which 命令名

    系统默认是有很多系统变量存在的,其中有一个变量PATH,它定义了执行命令时命令所要查找的路径,例如,执行passwd命令给用户改密码时,系统会自动去PATH变量所规定的路径下去搜寻是否有此命令,如果有,则执行,否则将提示命令不存在,这也是为什么有些Linux初学者明明在当前目录下执行此目录里的命令而出现系统提示命令不存在(此时若要执行可以下达命令./命令名)。

    这点与Windows有很大不同,其实Windows也是有PATH变量存在的,当初笔者曾经在工作的时候安装UG软件,结果安装完成后总是无法运行UG程序,最后将UG程序的路径给放到PATH变量里才正常运行。

    由上可以看出,PATH变量是存放命令的,而which是按PATH变量规定的路径来找,所以which主要是用来查找命令的,并且查找到后将命令的绝对路径给显示出来。

    例如,现在想知道which命令本身的绝对路径,可以下达命令:

    # which  which
    这样查询到的结果为:
    /usr/bin/which

    Which命令一般只查询到第一个匹配的结果,如果想将所有匹配的结果全部显示出来可以加上-a参数。

    7.4.2  按资料库查找的命令:whereis

    whereis命令能够将不但能查询出命令,还能查询出Ubuntu资料库里记载的文件。

    whereis命令的下达方式为:

    #whereis [选项]文件名

    与which不同的是,whereis不但能够找到可执行的命令,而且将所有包含文件名字符串的文件全部查找出来,而且速度非常快,远远快于我们将要介绍的虽然强大但速度却有些慢的find命令。这是因为Ubuntu会将它里面所有的资料都记录在一个资料库里,而whereis命令查找时并不会在整个磁盘上进行查找,而只在此资料库里进行查找。

    例如使用whereis命令来执行搜寻passwd,得到的结果如图7-12所示。

      
    (点击查看大图)图7-12  使用whereis命令


    可以看到,不但找到了passwd命令,连passwd文件等也找到了。

    whereis命令常见选项如表7-9所列。

    表7-9   whereis命令选项

     


    7.4.3  查找所有匹配的文件的命令:locate

    locate命令能够将所有与被查询的文件名相同的文件查询出来。

    locate命令的执行方式为:

    # locate 文件名

    locate命令的下达方式比较简单,直接加上要查询的文件名即可,因为它也是从资料库进行查询,所以速度也比较快,但是因为资料库的信息由crond进程控制更新,所以有时会发生刚安装完的软件查询不到的现象。

    7.4.4  功能强大的查找命令:find

    find命令能够按多种方式指定查询条件,然后进行查询出指定的文件。

    说明:因为find命令功能强大,而且能够设定查询条件,里面涉及的权限和文件类型的相关知识,所以大家可以在学完相应的章节后再来学习find命令。

    find命令的执行方式:

    # find 查找的路径 [选项] [对查询到结果执行的命令]

    find命令能够按照用户给定的条件进行查找,并且可以指定查找的路径,它甚至可以在整个文件系统内或者在具有网络文件系统(NFS)的情况下进行查找。

    为了方便起见,我们将根据find 命令的选项进行分类说明。

    1.根据文件时间状态进行查找

    大家还记得介绍touch命令时提到的与文件有关的三个时间吧,所以根据文件时间状态进行查找主要有以下几项:

    -atime(+ | -)n:此选项代表查找出n天以前被读取过的文件。
    -mtime(+ | -)n:此选项代表查找出n天以前文件内容发生改变的文件。
    -ctime(+ | -)n:此选项代表查找出n天以前的文件的属性发生改变的文件。
    -newer file:此选项代表查找出所有比file新的文件。
    -newer file1! –newer file2:此选项代表查找比file1
    文件时间新但是没有file2时间新的文件。

    说明:

    n为数字,如果前面没有+或者-号,代表的是查找出n天以前的,但是只是一天之内的范围内发生变化的文件。

    如果n前面有+号,则代表查找距离n天之前的发生变化的文件。如果是减号,则代表查找距离n天之内的所有发生变化的文件。

    -newer file1 ! –newer file2中的!是逻辑非运算符。

    下面举例说明,现在想查询一下所有在最近三天之内内容发生变化的文件,可以执行:

    # find / -mtime -3 
    如果想查找在/home目录下查找比file1新但是没有file2新的文件,则执行命令:
    #find /home -newer file1 ! –newer file2

    2.根据用户或者组进行查找

    系统记录一个用户实际上记录的是它的UID号,而记录组则是记录的GID号,所以根据用户或者组进行查找的选项为:

     -user 用户名:根据文件的属主名查找文件。
    -group 组名:根据文件的属组名查找文件。
    -uid n:根据文件属主的UID进行查找文件。
    -gid n:根据文件属组的GID进行查找文件。
    -nouser:查询文件属主在/etc/passwd文件中不存在的文件。
    -nogroup:查询文件属组在/etc/group文件中不存在的文件。

    说明:

    关于用户的UID和GID的说明请查阅用户管理一章。

    有时我们可能使用一个用户建立了一些文件,当此用户被删除后,他所建立的文件就成了无属主的文件了,所以我们应该用-nouser来查询,-nogroup与之相同。

    下面举例说明,现在想查找所有在/home目录中属主是Ubuntu用户的文件,应执行命令:

    # find /home -user ubuntu
    
    查找出/etc/下所有不属于任何人的文件,应执行命令:
    # find /etc -nouser
    

    3.根据文件的权限或者大小名字类型进行查找

    Linux里的文件是否能够执行与它的扩展名无关,主要是看它是否设置了可执行权限。所以根据文件权限我们也可以设定查找条件:

    -name文件名:按找文件名进行查找。
    -type文件类型:按文件类型进行查找。
    -size[+| -]n(c|k):按照文件尺寸进行查找。
    -perm[+| -]文件权限:按照文件权限进行查找。

    说明:

    文件类型可以通过ls -l命令进行查询,“-”代表普通文件,“d”代表目录。“b”代表设备文件,“c”代表字符设备文件,具体每部分的含义详见文件系统一章。

    按文件大小进行查询时,默认的单位是块,因为绝大多数人习惯使用字节或者K等单位,所以我们用“c”表示字节,用“k”表示1024字节。前面如果有“+”号代表大于n所指定的大小,“-”代表小于n所指定的大小,没有的话表示正好等于n所指定的大小。

    关于文件的权限设定请参照文件系统章节中权限设定部分,在此不再详述。但需要注意的是此权限应该是4位,即加上了特殊权限位的部分。如果文件权限前面有“+”号,则表示所查找的文件的权限中有前面权限条件的任意一个即可,如果是“-”号,则表示所查找的文件的权限中至少要包含前面权限的所有,比权限条件多没有关系,但一定不能少于权限条件。

    下面举例说明,现在想找出/etc目录内所有的文件大小超过1MB的文件,则执行命令:

    # find /etc -size +1000000c  
    

    在此处1000000c也可以用1000K来表示。

    如果想要找出系统内所有具有SUID位的文件,则执行命令:

    # find / -perm -4000  
    

    因为找到的文件必须要具有SUID位,所以要用”-4000”,如果是用“+4000”的话,意思是一个文件只要拥有上述任意一个条件就会被显示出来。

    如果想查系统内所有具有SUID,SGID或者黏滞位的文件找出来,可以执行命令:

    # find / -perm +7000
    

    这条命令将会把系统内的任意一个只要具有SUID或者SGID或黏滞位的文件都列出来。

    4.多个查找选项的应用

    有时候需要查找同时符合两个条件,这时需要-a或者-o选项:

     -o:逻辑或,两个条件只要满足一个即可。
    -a:逻辑与,两个条件必须同时满足。
    # find  /etc -size +2048 -a -size -20480  
    在/etc目录下查找大于1MB小于10MB的文件。
    # find  /etc -name inittab -o -name grub.conf 
    

    查找/etc目录下文件名为inittab或文件名为grub.conf的文件。

    5.对查找到结果的处理

    有时候我们对于查找到的结果需要对其进行进一步的操作,这就需要使用-exec或者-ok选项,或者使用-print选项。其使用的格式为:

    # find 查找的路径 [选项] [对结果处理的命令]
    
    前三部分就是在前面三节介绍的设定不同的条件,而对结果进行处理的格式为:
    -exec  shell命令  {}  \; 
    

    其中-exec就是代表要执行shell命令,后面加的是shell指令,再后面的“{}”表示的是要对前面查询到的结果进行查询,最后的“\;”表示命令结束。需要注意的是“{}”和“\”之间是要有空格的。而-ok选项与-exec的唯一区别就是它在执行shell命令的时候会事先进行询问,-print选项是将结果显示在标准输入上。

    例如现在我们想查找系统内所有具有SUID位的文件,并且将结果保存在/root/SUID_file中,则执行命令:

    # find / -perm -4000 -exec  ls –l > /root/SUID_file  {} \; 

    这样就能够保存结果了,其中的“>”命令是输出重定向,可参考shell基础一章。

    其实对于find命令来说它的选项非常多,在此并没有完全列出,另外find命令也可以与通配符进行配合使用,例如,下面的命令就查找/home目录下所有以“.txt“为结尾的文件:

    # find /home -name  “*.txt” -ok rm {} \;
    

    7.5  压缩解压命令

    经常在工作中使用U盘的朋友可能总会遇到U盘空间不足的情况,或者有时候我们要在一个网络带宽一般的网络里发送邮件的话,可能一两兆的大小会让我们付出漫长的等待代价,这样就必须要学会一些文件的压缩命令来解决以上的这些问题。Linux也为提供了很多的压缩和解压的命令。

    7.5.1  压缩命令:gzip

    gzip命令能够压缩和解压以.gz为结尾的文件。

    gzip命令的执行方式为:

    # gzip  [-选项] 文件名

    gzip命令是Linux比较常见的压缩命令之一,它能够产生以.gz为后缀名的压缩文件。

    例如现在我们要对/home/file文件进行压缩,执行命令:

    # gzip /home/file

    压缩完成后会发现原来的file文件已经变成了file.gz文件,原文件已经消失。

    还可以在压缩过程中指定压缩的百分比,gzip命令提供了1-9级的压缩比,1的压缩比最差,但是压缩速度比较快,而9的压缩比最好,但是速度比较慢,默认的级别是6,例如:

    # gzip -1 file
    gzip命令不但能够压缩文件,还可以将压缩的文件(.gz)解开,例如:
    # gzip -d file.gz

    gzip命令的常见选项见表7-10。

    表7-10  gzip命令选项

    gzip命令选项

    选项说明

    -d

    解压

    -nn=1-9

    指定压缩级别

    提示:

    严格来说,gzip是一个程序,对于Ubuntu本身来说,扩展名是毫无意义的,例如一个文件的扩展名为.exe不一定就是一个可执行的程序,但是对于某些特定的程序来说,这些程序要通过指定的扩展名来打开指定的文件,而这些与Ubuntu系统本身并无关系。

    7.5.2  查看压缩文件内容命令:zcat

    zcat命令能够不用将.gz的压缩文件解压就能查看里面的内容。

    zcat命令执行方式为:

    # zcat 压缩文件名
    
    例如,现在不想使用gzip命令将file.gz文件解压,但是想查看其中的内容,可以执行命令:
    # zcat file.gz

    7.5.3  解压.zip文件命令:unzip

    unzip命令能够将被winzip压缩的文件解压。

    unzip命令的执行方式为:

    # unzip [-选项]  压缩文件名.zip
    例如想将file1.zip文件在当前目录下解压,则执行命令为:
    # unzip  file1.zip
    如果只想查看压缩文件里的文件目录,但是并不想解压,则执行命令为:
    # unzip -v file1.zip
    将file1.zip文件在/home/zip目录中进行解压,但是如有相同的文件则并不覆盖原文件,执行命令为:
    #unzip -n file1.zip -d /home/zip 


    unzip命令的选项见表7-11。

    表7-11  unzip命令选项

    unzip命令的选项

    参数说明

    -v

    查看文件目录列表,但不解压

    -d

    将文件解压到指定目录中

    -n

    不覆盖原来已经存在的文件

    -o

    覆盖已存在的文件并且不需要用户确认


    7.5.4  压缩命令:bzip2

    bzip2命令能够压缩和解压以.bz2结尾的文件。

    bzip2命令的执行方式为:

    # bzip2 [-选项]  文件名

    bzip2命令生成的压缩的文件的扩展名为.bz2。

    例如现在想将/home/file1进行压缩,则执行命令为:

    # bzip2 file1
    这样就生成了一个file1.bz2文件,原文件已经消失,与gzip命令一样,bzip2命令也可以在压缩前选择压缩比的操作,其常见选项与gzip相同,在此不再累述。

    7.5.5  查看压缩文件内容命令:bzcat

    bzcat命令也比较简单,不对.bz2文件进行解压就能查看里面内容。

    命令执行方式为:

    # bzcat 压缩文件名

    7.5.6  打包并压缩命令:tar

    tar命令能够对一个文件或者目录内容进行打包压缩后备份。

    tar命令的执行方式为:

    # tar [-选项] [要打包的文件名或者目录名] [要解压或解包的文件或者目录名]

    tar命令常常用来对文件或者目录做备份。无论是刚才的gzip命令,还是bzip2命令,都会发现它们只能对单一文件进行压缩,而即使是同时输入两个文件名,也只能是生成两个单独的压缩文件,而我们经常需要对很多文件或者目录同时进行压缩并且希望生成同一个文件,这样就得先通过tar命令将需要同时进行备份的内容放到同一文件里,称之为“.tar”文件,但是此时仅仅是相当于把不同文件放到了一个大文件中,并没有压缩,当然可以将打包和压缩的动作一次性完成。并且利用tar命令还可以在压缩文件中增加新文件或者改变文件。tar命令选项众多,最常用的请见表7-12。

    表7-12  tar命令选项列表

    tar命令的选项

    选项说明

    -c

    创建新的打包文件

    -x

    .tar文件解包

    续表

    tar命令的选项

    选项说明

    -z

    打包后直接用gzip命令进行压缩,或者解压文件。

    -j

    打包后直接用bzip2命令进行压缩,或者解压文件

    -t

    查看一个打包文件里的文件目录

    -f

    使用文件或者设备(这个选项基本上是必选的)

    -k

    如果在还原时有相同的文件存在则不进行覆盖

    -v

    在打包压缩或者解包解压后将文件的详细清单是否显示出来

    -N

    在此选项后加日期,如果文件日期比-N选项后面
    加的日期还要新才会被加进压缩包中

    例如,现在想将/etc/passwd文件和/etc/shadow文件打包后压缩成user.tar.gz文件,可以执行如下操作:

    # tar czvf  /home/user.tar.gz  /etc/passwd /etc/shadow

    这时发现/etc/passwd文件和/etc/shadow文件还存在,并没有像gzip命令一样压缩后原文件就没有了,同时会看到由于使用v选项,在打包压缩后将压缩的文件清单也显示在了屏幕上,还可以使用-t选项进行查看包里文件,如图7-13所示。
     
    (点击查看大图)图7-13  使用tar命令查看打包文件内容

    如果想对其进行解压解包的话,就可以使用如下命令:

    #tar czvf  /home/user.tar.gz  /etc/passwd /etc/shadow

    这样就可以恢复压缩文件里的文件了。

    通过以上的例子可以看出,如果要是创建文件的话,一般是cvf三个参数。如果压缩的话,一般再加上z或者j参数即可,但是后面的文件的扩展名也要相应地变成.tar.gz或者是.tar.bz2。而如果解包的话一般用xvf三个参数,同时还解压就需要加上z或者j参数了。

    如果只想备份/usr/src目录下的比2007/1/1还新的文件,那么就执行如下命令:

    # tar -N  ‘2007/1/1’  czvf  usr.tar.gz  /usr/src

    7.6  关机重启命令

    相信读者在前几个小节里大量命令的“洗礼”下,可能需要关闭计算机休息一下了,不过先别急,因为Ubuntu可不是随便就能关机的。我们知道,Ubuntu是一个多人多工的操作系统,这就意味着可能同一时间不止一个人在系统上操作,而且在Ubuntu后台还在默默地运行着很多的工作,关机很可能造成其他人工作的丢失,所以需要好好了解一下关机的命令。

    7.6.1  关闭计算机命令:shutdown

    shutdown命令能够安全地关闭计算机。

    shutdown命令执行方式为:

    # shutdown  [选项]  [时间]  [警告信息]

    shutdown命令其实就是向系统发出一个信号,这个信号能够通知init进程改变运行级别,(系统一共有7个运行级别,具体见第14章“Ubuntu引导流程”一章),而init根据传来的信号的不同就切换到相应的级别中。

    例如,现在想让系统在5分钟后关机,可以执行命令:

    # shutdown -h +5

    想让系统在晚上6点准时关机,则可以执行命令:

    # shutdown -h 18:00

    如果想让系统在10分钟后重启,并且通知所有当前登录用户,以使其能够保存工作,可执行命令:

    # shutdown  -r  +10  “this system will be reboot after 10minutes”

    shudown的选项很多,表7-13列出了其常用选项:

    表7-13  shutdown命令选项

    shutdown命令的选项

    选项说明

    -r

    将系统服务停掉然后重启

    -h

    将系统服务停掉,然后关机

    -c

    取消已经在运行的shutdown命令内容

    7.6.2  系统关机命令:halt

    halt命令能够关闭计算机。

    halt命令的执行方式为:

    # halt [选项] 

    halt命令其实就是相当于执行了shutdown  -h一样,它也是停掉系统服务后然后关机。

    例如使用halt命令关机:

    # halt 
    另外可以执行-f选项不调用shutdown命令来使其强行关机。

    7.6.3  切换启动级别命令:init

    init命令能够切换Ubuntu的运行级别。

    init命令的执行方式为:

    # init   运行级别
    Ubuntu一共有7个运行级别,其中0级别为关机,6级别为重启,具体可以通过/etc/inittab文件查询,所以如果想使用init命令来关机,只需要下达命令:
    # init 0

    7.6.4  关机命令:poweroff

    poweroff命令比较简单,它也是能够关闭计算,执行方式为:

    # poweroff


    7.6.5  重启系统命令:reboot

    reboot命令能够重新启动系统。

    reboot命令的执行方式为:

    # reboot



    展开全文
  • linux基本命令大全

    2019-11-28 08:56:03
    基本命令 关机:shutdown -h halt init 0 poweroff 重启:shutdown -r reboot init 6 pwd:查看工作目录 ls:查看指定目录的内容 -l:列表显示 -a:显示所有,包括隐藏文件 -h:人性化的显示 -d:只显示目录,不查看...

    基本命令
    关机:shutdown -h halt init 0 poweroff
    重启:shutdown -r reboot init 6
    pwd:查看工作目录
    ls:查看指定目录的内容
    -l:列表显示
    -a:显示所有,包括隐藏文件
    -h:人性化的显示
    -d:只显示目录,不查看内容
    cd:切换工作目录
    .:当前目录
    ..:上一级目录
    ~:用户家目录
    -:上次切过来的目录
    目录结构:
    linux目录与win完全不同,是从'/'开始的,只有他没有上一级目录,因此也叫根目录
    详细介绍:
    /bin:大部分的系统命令
    /boot:启动相关目录
    /dev:设备文件目录,linux下一切设备皆文件
    /etc:配置文件目录
    /home:普通用户的家目录,一个用户对应一个文件夹
    /lib:库文件
    /lib64:64位库文件
    /lost+found:系统异常时临时保存数据,用于恢复等操作
    /media:媒体目录
    /mnt:挂载目录,通用挂载点
    /opt:安装系统非必须软件目录
    /proc:虚拟文件系统,会映射硬件信息
    /root:root用户的家目录
    /sbin:超级用户才能执行的命令目录
    /selinux:linux一套安全机制,非常复杂,通常不用
    /srv:存放本机或本机服务器的数据或服务
    /sys:类似于/proc,也是虚拟文件系统,可以映射系统信息
    /tmp:临时文件,可能随时销毁
    /usr:存放用户安装的应用程序
    /var:系统产生的不可自动销毁的文件,如:日志、缓存等
    1、vim终端编辑器
    介绍:vim是对vi的扩展,被誉为终端编辑器之神
    安装:yum install -y vim
    工作模式:正常模式、插入模式、编辑模式
    正常模式:使用vim打开文件时的默认模式
    vim filename 打开文件,若文件不存在则新建
    esc:切换到正常模式
    shift + zz:保存退出
    常用操作:
    vim filename +n 打开文件,定位到第n行
    vim filename + 打开文件,定位到末尾
    gg 定位到首行
    G 定位到尾行
    ngg 定位到第n行
    ^ 定位到行首
    $ 定位到行尾
    yy 复制光标所在行
    p 粘贴
    nyy 复制光标开始的n行
    dd 删除光标所在行
    ndd 删除光标开始的n行
    u 撤销操作
    ctrl + r 反撤销操作 
    插入模式:就是可以编辑文件内容的模式,在正常模式下输入以下字符进入:
    i:在光标处插入
    I:在行首插入
    a:在光标下一个字符处插入
    A:在行尾插入
    o:下光标下一行插入空行
    O:下光标上一行插入空行
    s:删除光标所在字符并插入
    S:删除光标所在行并插入
    编辑模式:是对整个文件进行的操作,如:保存,退出
    在正常模式下输入':'即可进入编辑模式
    :w 保存
    :q 退出
    :wq 保存退出,等价于 shift + zz
    :x 保存退出,等价于:wq
    :q! 强制退出
    :set nu 显示行号
    :set nonu 隐藏行号
    :行号 定位到指定行号
    /内容 查找指定内容,n下翻,N上翻
    :%s/原内容/新内容 使用新内容替换原内容,全部替换
    :m,ns/原内容/新内容 使用新内容替换原内容,替换m到n行
    友情提醒:若非正常关闭vim,则会生成临时文件(隐藏的),需要删除
    2、文件及文件夹
    touch:创建普通文件
    rm:删除文件,-f表示强制删除,-r表示递归删除
    cp:拷贝文件,若目标目录写上文件名可以顺便把名字改了,-r可以操作目录
    mv:移动文件,若目标目录写上文件名可以顺便把名字改了
    mkdir:创建文件夹,-p创建中间目录
    rmdir:删除文件夹,只能删除空目录
    3、查看文件
    cat:从上到下查看文件,全部内容
    tac:从下到上查看文件,全部内容
    head:查看开头的指定行内容,默认10行,head -3 1.txt
    tail:查看末尾的指定行内容,默认10行,tail -5 1.txt
    more:逐渐查看文件,回车下翻一行,空格下翻一屏,看到结尾会自动结束,q退出查看
    less:逐渐查看文件,回车下翻一行,空格下翻一屏,看到结尾不会自动结束,可以上下翻
    nl:功能同cat,会多显示行号
    wc:统计文件信息,显示结果:行数 | 单词数 | 字节数
    说明:more/less更多用法是结合管道使用,ls /etc | more
    4、用户及用户组
    whoami:查看当前用户
    useradd:创建用户
    -d:指定家目录
    -u:指定用户id(uid)
    -g:指定所属组id(gid)
    -s:指定shell解释器

        说明:uid和gid要使用大于500的数字,小于500的被系统占用
    passwd:设置指定用户的密码,若不指定设置当前用户的密码
    userdel:删除用户,-rf删除用户相关目录,否则需要手动删除
    groupadd:创建用户组
    groupdel:删除用户组
    gpasswd:将用户添加到某个组,从某个组删除
            gpasswd -a test hello   将test用户添加到hello组
            gpasswd -d test hello   将test用户从hello组中删除
    chgrp:改变文件所属组,chgrp hello 1.txt
    chown:改变文件拥有者[及组],chown root[:root] 1.txt
    chsh:修改用户的shell解释器,chsh test -s /sbin/nologin
    su -  : 切换到指定用户,若不加'-',只会切换目录及用户身份,不会切换执行环境
            若不指定用户。默认切换到root用户
    涉及文件:
        /etc/passwd:存放用户信息
        /etc/group:存放用户组信息
        /etc/shadow:存放用户密码
    用户身份:
        #:root用户
        $:普通用户

    5、文件权限管理
    说明:在linux下,文件的权限有:所有者、所属组、其它的区分
    权限:权限有:读(r)、写(w)、执行(x),ls -l即可查看
    rwxr-xr--
    修改:使用chmod命令修改文件的权限
    格式:chmod [身份] [修改] [权限] 文件
    身份:
    u:用户
    g:组
    o:其它
    a:所有身份
    修改:
    +:添加
    -:去掉
    =:设置
    权限:
    r:读
    w:写
    x:执行
    简洁写法:chmod 0755 1.txt
    所有者可读可写可执行、所属组可读可执行、其它可读可执行 
    6、软硬链接文件
    说明:ls -l 结果的第一列就是文件类型
    类型:
    -:普通文件
    d:目录文件
    l:软链接
    命令:ln [-s] 原文件 目标文件
    分类:软链接、硬链接(很少用到)
    创建:不加参数-s创建的链接就是硬链接,添加-s参数创建的就是软链接
    例子:ln -s 1.txt 2.txt
    7、文件查找
    tree:查看目录结构,-L指定层级深度,tree / -L 2
    find:查找文件
    -name:指定名字,find / -name 1.txt
    -type:指定类型,(b/c/d/p/l)
    -size:指定大小,单位K/M/G,+表示大于,-表示小于,find / -size +1G
    -perm:指定权限
    -user:指定用户
    -group:指定组
    -maxdepth:指定最大层级深度
    whereis:查找程序,不要使用find(效率太低)
    which:专门用来查找命令
    alias:给某个命令起别名,alias ls='ls --color=auto'
    unalias:取消别名
    grep:正则匹配查找
    -i:忽略大小写
    -n:显示行号
    例子:
    grep root /etc/passwd 在 /etc/passwd文件中查找包含root的行
    ls /bin | grep '^m' 查找/bin目录下以m开头的文件

    其它:
    命令 [选项] [参数]
    出问题查看帮助文档
    1、内部帮助文档:命令 --help/-h
    2、外部帮助文档:man 命令

     


     

    前端每日一题,带你走入高级前端之路!每天早上9点左右更新题目及前一天的答案!

    github地址:https://github.com/qappleh/Web-Daily-Question/

     

    推荐web程序员必备微信号 

    深圳湾码农

    微信号:ydhlwnxs

    推荐理由:web开发人员都在关注的公众号,在多学一点知识,就可以少写一行代码!专注于技术资源分享,经验交流,最新技术解读,另有海量免费电子书以及成套学习资源,关注深圳湾码农,做技术得先驱者。

     ▼长按下方↓↓↓二维码识别关注

    展开全文
  • 本文主要介绍Linux中常用的基本命令,简单实用,以供大家参考,如有错误,欢迎大家指出。下面开始介绍。 一、查看哪个用户登录的系统 1、users命令 2、whoami命令或者who am i命令 二、查看哪些用户在系统上...

    本文主要介绍Linux中常用的基本命令,简单实用,以供大家参考,如有错误,欢迎大家指出。下面开始介绍。

    一、查看哪个用户登录的系统

    1、users命令

    2、whoami命令或者who am i命令

    二、查看哪些用户在系统上工作

    1、who命令

    2、w命令

    三、查看登录Linux系统所使用的终端

    1、tty命令

    四、显示操作系统的信息

    1、uname命令:uname [选项]

    其中,常用的“选项”如下:

    -r:显示操作系统发布的版本信息

    -s:显示操作系统名

    -m:显示机器硬件名

     

    -p:显示中央处理器类型

    --all/-a:显示所有信息

    -n:显示所用系统的主机名(也可用hostname命令)

     

    -n-i或者-ni:显示所用系统的主机名和硬件平台名

        注意:可以使用help方法查看uname的所有可用选项。如下所示:

       

    五、显示日历、日期、时间等

    1、date命令:显示日期和时间,在其后加-R,可以显示时区

    2、cal命令:显示日历

    例1:cal 8 2018:显示2018.08月的日历

    例2:cal 2018:显示2018年的日历

    六、清除屏幕显示的信息

    1、clear命令

    2、Ctrl+L

    七、切换用户与退出用户

    1、su命令:切换用户

    例如:su – root:切换到root用户

    2、exit:退出当前用户

    八、用户密码

    1、passwd username:修改某用户的密码

    2、passwd –S username或者passwd --status username:获取某用户的密码状态

    九、显示某命令的简单说明

    1、whatis [命令]

    2、man –f [命令]

    十、查看某命令的帮助文档

    1、[命令] --help

    2、man [命令]

    例如:man date(注意:系统会进入一个Man Pages界面,man命令使用简述见十一)

    十一、man命令使用简述

    1、上下左右键进行移动,Home键跳转到第一页,End键跳转到最后一页。

    2、:处输入/string,表示向下搜索string字符串。

    3、:处输入?string,表示向前搜索string字符串。

    4、q键退出Man Pages。

    5、搜索没记全的命令:man -k [命令关键字]

    十二、使用info命令获取帮助:info [命令]

    注意:输入info [命令]之后,会进入一个Info Pages页面,q键退出此页面。

    十三、查看当前目录的绝对路径

    1、pwd命令

    十四、切换命令的几个特殊含义

    1、cd .:切换到当前目录

    2、cd ..:切换到上一层目录

    3、cd -:切换到之前的工作目录,相当于撤销操作

    十五、复制命令:cp [选项] [文件] [复制后的文件]

    常用的选项如下所示:

    1、-i:防止不小心覆盖已经存在的文件或目录,在覆盖之前给出提示信息。

    2、-r:递归的复制目录。

    3、-p:保留一些特定的属性,如时间戳等。

    4、-f:强制覆盖原有的文件。

    十六、移动和剪切命令:mv(使用方法与cp命令类似)

    十七、创建目录命令:mkdir

        如果创建的目录有很多个,可以加-p,意思为递归创建目录。

    十八、创建文件命令:touch

    在创建文件的过程中,如果文件名或者目录名已经存在,touch将该文件或目录的时间戳改为当前访问时的时间和日期。

    十九、删除文件命令:rm [选项] [要删除的文件]

    常用的选项如下所示:

    1、-i:防止不小心删除有用的文件,在删除之前给出提示。

    2、-r:递归的删除目录。

    3、-f:强制删除。

    注意:rmdir命令只能删除空目录,rm –r命令可以删除目录及子目录。

    二十、确定文件中数据的类型

    1、file命令

    二十一、浏览正文文件内容

    1、cat [文件]

    2、cat –A [文件]:显示文件内容的同时还将显示文件中看不见的换行字符。

    3、cat > [文件]:新建文件并输入内容。

    4、head [文件]:默认显示文件的前十行

    5、head –n10 [文件]:使用-n可以指定显示的行数,也可以—lines或者-代替。

    6、tail [文件]:默认显示文件最后10行

        注意:使用-可以自定义显示的行数,使用-f或者—follow可以当正文信息发生变化时将变化的信息展示出来。

    二十二、显示文件行、单词和字符数:wc命令

    常用的选项如下所示:

    1、-l:仅显示行数

    2、-w:仅显示单词数

    3、-c:仅显示字符数

    二十三、浏览大文件:more命令

    进入后,屏幕底部将会出现--More--(n%)”,n%是指已经显示文件内容地百分比。

    1、空格键:向下移动一个屏幕;

    2、Enter键:一次移动一行;

    3、b键:往回移动一个屏幕;

    4、h键:显示一个帮助菜单;

    5、/string:向前搜索string;

    6、n键:发现某个字符串的下一个出现;

    7、q键:退出More Pages。

    8、v键:在当前启动vi命令。

    二十四、type识别bash的内置命令:type [选项] [命令名]

    常用的选项如下所示:

    1、-t:显示文件的类型(file为外部命令;alias为别名;builtin为bash的内置命令)

    2、-a:列出所有包含指定命令名的命令,也包括别名。

    3、-P:显示完整的文件名(外部命令),或者为内部命令。

    二十五、列出某命令的类型相关信息

    1、which命令

    2、whatis命令

    二十六、通配符

    1、*:将匹配0个(即空白)或多个字符;

    2、?:将匹配任何一个字符而且只能是一个字符;

    3、[a-z]:将匹配字符a-z范围内的所有字符;

    4、[^a-z]:匹配所有字符但是a-z范围内的除外;

    5、[xyz]:匹配方括号中的任意一个字符;

    6、[^xyz]:匹配不包括方括号中的字符的所有字符。

    二十七、列出曾经使用过的命令:history命令

    history命令显示结果的最左边是命令的编号,可以使用命令编号重新执行对应的命令。例如执行第1050行,!1050

    现在想把上面命令中的-w改为-c执行可以使用下面的命令:^-w^-c

    二十八、{}命令

    1、同时创建多个文件:touch {a,b}.{csv,txt}

    二十九、将一个命令的输出作为另一个命令的参数

    1、echo “This computer system’s name is `hostname`”

    2、echo “This computer system’s name is $(hostname)”

    三十、使用Linux进行数学运算

    1、num1=1;num2=2

       echo $[$num1 + $num2]

    三十一、恢复一个特殊字符的原来字符:转义字符(\)

    1、echo “$678”

       echo “\$678”

    2、\也可以用作换行

    三十二、单引号和双引号的区别

    1、单引号:禁止所有的命令行扩展功能

    2、双引号:禁止所有的命令行扩展功能,但以下特殊符号除外:$,`,\,!。

    三十三、几个常用的快捷键

    1、Ctrl + A:光标移动到命令行开始处;

    2、Ctrl + E:光标移动到命令行结尾处;

    3、Ctrl + U:删除到命令行开始处的所有内容;

    4、Ctrl + K:删除到命令行结尾处的所有内容;

    5、Ctrl + 箭头:向左向右移动一个字。

    三十四、搜索文件和目录:find命令

    1、find pathnames expressions actions各选项含义如下:

    (1)pathnames:搜寻起始的绝对路径或相对路径;

    (2)expessions:由一个或多个选项定义的搜寻条件;

    (3)actions:当文件被定位之后需要进行的操作。默认打印出所有满足条件的路径到屏幕上。

    2、在find命令中,可以使用如下的表达式(expressions)

    (1)-name文件名:查找与指定文件名相匹配的文件。在文件名中可以使用元字符(通配符),但是他们要放在双引号之内。

    (2)-size[+/-]n:查找大小大于+n、小于-n或等于n的文件。默认情况下,n代表512字节大小的数据块的个数。

    (3)-atime[+/-]n:查找访问时间超过/低于/等于n天的文件。

    (4)-mtime[+/-]n:查找更改时间超过n天不到n天或正好等于n天的文件。

    (5)-user loginID:查找属于loginID名(用户)的所有文件。

    (6)-type:查找某一类型的文件,如f(文件)或d(目录)。

    (7)-perm:查找所有具有某些特定的访问许可位的文件。

    3、find命令中可以使用如下的动作表达式(actions)

    (1)-exec 命令 {} \;:在每一个所定位的文件上运行指定的命令。(反斜线与大括号之间必须要有一个空格)

    (2)-ok 命令 {} \;:在find命令对每一个定位的文件执行命令之前需要确认。

    (3)-print:当前路径名打印在屏幕上,默认方式。

    (4)-ls:显示当前的路径名和相关的统计信息。

    三十五、重定向到文件中

    1、>:覆盖原文件内容

    2、>>:在原文件之后追加内容

    三十六、重定向标准输出和标准错误

    1、find / -name [命令] 1 > output.std:将命令路径追加到output.std中,控制台只打印出错误信息。

    2、find / -name [命令] 2 > errors.std:将错误信息追加到errors.std中,控制台只打印出命令路径。

    3、find / -name [命令] 2 > errors 1 > output:一条命令完成以上操作。

    4、find / -name [命令] > output_errs 2 > &1或者find / -name [命令] & > output_errs:将所有信息导出到一个文件中。

    三十七、将文件中的大写字母换成小写字母

    1、tr ‘A-Z’ ‘a-z’ < [文件名]:结果直接显示在屏幕上。

    2、tr ‘A-Z’ ‘a-z’ < winsql.sql > unixsql.sql:将winsql.sql中的大写字母换成小写字母后追加写入到unixsql.sql中。

    3、tr –d “\r” < dept.data > dept.data.unix:删除dept.data文件每行结束符中的\r符号。并将文件存储到dept.data.unix中。

    三十八、cut命令

    剪切命令从一个文件中剪切掉某些正文字段并将它们送到标准输出显示。格式为:cut [选项] [文件名]。

    常用的选项如下所示:

    -f:说明(定义)字段列

    -c:要剪切的字段

    -d:说明(定义)字段的分隔符(默认为Tab)

    注意:可在-f/-c/-d后面指定字段,如-f2/-c4-7

    三十九、paste命令:粘贴命令

        将每一个文件中的每一行用Tab字符分隔开并排序的写到标准输出上。如果命令中没有文件名或文件名使用了-,paste命令将以标准输入读入。可以使用paste命令将多个文件合并成一个文件,如果在paste命令中使用了-d选项将更改输出的分隔符(默认是Tab)。paste命令中的选项使用方法与cut类似。

    四十、sort命令

    将正文内容进行排序并将结果送到标准输出,但是原始文件的值不会改变。其格式为:sort [选项] [文件名]。

    常用的选项如下所示:

    -r:进行反向排序(降序),r是reverse的第一个字母。

    -f:忽略字符的大小写,f是folds的第一个字母。

    -n:以数字的顺序进行排序,n是numeric的第一个字母。

    -u:去掉输出中的重复行,u是unique的第一个字母。

    -t:-t c表示以c作为分隔符。

    -k:-k n表示按照第n个字段进行排序。

    -k n1,n2:表示先按第n1个字段进行排序,当第一个字段重复时再按照第二个字段排序。

    四十一、uniq命令:去掉文件中相邻的重复行

    常用的选项如下所示:

    -c:在显示的行前冠以该行出现的次数

    -d:只显示重复行

    -i:忽略字符的大小写

    -u:只显示唯一的行,即只出现一次的行

    四十二、使用管道符(|)操作符连接两个或多个Linux操作系统命令。语句为:命令1 | 命令2……

    例如:who | wc –l

    四十三、tee命令:分流输出

    如果想将前一个命令的输出结果直接输入给后一个命令,同时还要将前面命令的结果存入一个文件,此时可以使用tee命令。

    例如:cut –f1 –d: /etc/passwd | tee p.cut | sort –r | tee p.sort | more

    解释:tee p.cut将管道送过来的数据第一列存入p.cut,同时通过管道将这些数据传到下一个命令进行反向排序,然后存入p.sort,传入到下一个命令more。

    四十四、more /etc/passwd(查看passwd下的文件内容)

     

    以冒号为分隔符对内容进行解析:

    (1)用户的名字(在创建用户时,root用户起的);

    (2)若为x,表示登录时必须使用密码,若为空,则无需提供密码;

    (3)用户的uid;

    (4)用户所属群组的gid;

    (5)有关这个用户的注释信息;

    (6)用户的home路径;

    (7)用户登录后,第一个执行的进程。

    四十五、more /etc/group(查看group下的文件内容)

    以冒号为分隔符对内容进行解析:

    (1)群组的名称;

    (2)x表示登录群组时必须使用密码;

    (3)群组的gid;

    (4)群组里还有哪些成员。

    四十六、权限

    标号

    释义

    对应的数字

    r

    读权限

    4

    w

    写权限

    2

    x

    可执行权限

    1

    -

    表示没有相应的权限

    0

    四十七、检查磁盘空间

    1、df:显示文件系统中磁盘使用和空闲区的数量

    2、du:显示磁盘使用的总量

    3、df –h:列出每个系统(磁盘)的使用情况

    对上图每一列的释义:

    Filesystem:文件系统

    Size:磁盘总空间

    Used:已使用空间

    Avail:可用空间

    Use%:使用率

    Mounted on:挂载点

    4、df –i:列出每一个文件系统的i节点的使用情况

     

    5、du –sh:某用户Home目录下所使用的全部磁盘空间信息。

    四十八、diff命令:比较两个文件的差别

    <表示第一个文件的数据行,>表示第二个文件的数据行。

    例如:diff a.txt b.txt

    四十九、压缩和解压缩:gzip/gunzip;bzip2/bunzip2

    1、gzip [选项] [压缩文件名]

    常用的选项如下所示:

    -v:在屏幕上显示出文件的压缩比,v是verbose的第一个字母。

    -c:保留原来的文件,而新创建一个压缩文件,其中压缩文件以.gz结尾。

    2、使用tar命令的同时进行压缩(tar –zcvf [待压缩的文件])和解压缩(tar –zxvf [待解压的文件] –C [解压的目录])

    z:使用gzip技术来压缩打包好的文件;

    j:使用bzip2的技术来压缩打包好的文件。

    五十、grep命令搜索文件中的内容

    grep支持以下几种正则表达式的元字符,也称通配符。

    (1)c*:将匹配0个(即空白)或多个字符c;

    (2).:将匹配任意一个字符并且只能是一个字符;

    (3)[xyz]:匹配方括号中的任意一个字符;

    (4)[^xyz]:匹配不包括方括号中字符的任意字符;

    (5)^:锁定行的开头;

    (6)$:锁定行的结尾。

    注意:在基本正则表达式中,元字符等已经失去了它们原来的意义,可以使用转义字符(\)。

    语法格式:grep [选项] [模式] [文件名]。其中“模式”是指需要过滤出来的东西。

    常用的选项如下所示:

    (1)-c:仅列出包含模式的行数;

    (2)-i:忽略模式中字母的大小写;

    (3)-l:列出带有匹配行的文件名;

    (4)-n:在每行的最前面列出行号;

    (5)-v:列出没有匹配模式的行;

    (6)-w:把表达式作为一个完整的单字来搜寻,忽略那些部分匹配的行。

    五十一、vi编辑器:vi [选项] [文件名]

    1、常用的选项如下所示:

    (1)-r:恢复一个文件;

    (2)-R:以只读方式打开一个文件。

    2、插入模式:

    (1)a:进入插入模式并在光标之后进行添加;

    (2)i:进入插入模式并在光标之前进行添加;

    (3)A:进入插入模式并在光标当前行之后进行添加;

    (4)I:进入插入模式并在光标当前行之前进行添加;

    (5)o:进入插入模式并在光标当前行之下开启新的一行进行添加;

    (6)O:进入插入模式并在光标当前行之上开启新的一行进行添加;

    3、命令行下修改、删除与复制的操作:

    (1)cc:修改光标所在行;

    (2)dd:删除光标所在行;

    (3)yy:复制光标所在行;

    (4)cl:修改光标所在字符;

    (5)dl:删除光标所在字符;

    (6)yl:复制光标所在字符;

    (7)cw:修改光标所在字;

    (8)dw:删除光标所在字;

    (9)yw:复制光标所在字;

    (10)p:将数据放置在当前行之下;(如果之前操作的数据是字符,意思为:将数据放置在光标之后)

    (11)P:将数据放置在当前行之上。(如果之前操作的数据是字符,意思为:将数据放置在光标之前)

    4、存储和退出

    (1):w:将文件存入/写入磁盘;

    (2):q:退出vi 编辑器;

    (3):wq:将文件存入磁盘并退出vi 编辑器。

    注意:可以在以上命令之后加上!,!是强制执行的意思。

    5、快速移动光标在文件中的位置

    (1)G:跳转到文件的最后一行;

    (2)nG:跳转到文件的第n行;

    (3)Ctrl+D:光标向下移动半个屏幕;

    (4)Ctrl+U:光标向上移动半个屏幕。

    五十二、使用rpm安装及移除软件

    (1)rpm –i, --install:安装软件;

    (2)rpm –U, --upgrade:升级旧版本的软件;

    (3)rpm –F, --freshen:刷新/更新旧版本的软件;

    (4)rpm –e, --erase:移除/删除软件;

    (5)rpm –qa:显示目前操作系统上安装的全部软件包;

    (6)rpm –qf [文件名]:这个文件是由哪个软件包安装的;

    (7)rpm –qi [软件包名]:显示软件包的信息;

    (8)rpm –ql [软件包名]:列出软件包中所包含的全部文件。

    (9)-vh:表示显示详细的进度。

    五十三、附录

    1、基本知识

     

    root:当前的操作用户;slave01:当前用户所在主机;opt:当前用户在哪个目录;#:root用户;$:普通用户。

    2、ls:list列出某个目录下的文件

    (1)ls –a:查看某目录下所有文件,包括隐藏。

    (2)ls –l:以长格式方式显示某个目录下的文件,也可以用ll直接显示

    3、用户和用户组

    (1)超级用户:就是root用户,root用户的UID为0;

    (2)普通用户:UID从500开始,由root创建,不止一个;

    (3)伪用户:UID在1-499之间的都是伪用户,系统指定的一些进程,给它们也分配了一部分ID号,这部分伪用户不能够真正的登录,也没有目录。

    (4)创建用户:useradd [用户名]

    (5)创建用户组:groupadd [用户组名]。(创建用户的同时,会自动创建一个与其名称一样的用户组)

    (6)修改用户密码:passwd username或者echo ‘password’ --stdin username。其中,stdin表示输入的意思。

    (7)删除用户:userdel –r username。其中,-r表示彻底删除用户包括用户主目录。

    (8)gpasswd命令:管理用户组成员,增加或者删除。-a表示为用户组加入一个已经存在的用户;-d表示将用户在组的某用户移除。

    (9)useradd –G:创建一个新用户并加入到所属组。

    4、用户文件和目录权限

    (1)drwxrwxr-x:第一个字母为d代表目录,为-代表文件;第一个rwx代表所有者的权限,用u表示;第二个rwx代表所属组的权限,用g表示;r-x代表其他用户的权限,用o表示。

    (2)权限类别

    标号

    释义

    对应的数字

    r

    读权限

    4

    w

    写权限

    2

    x

    可执行权限

    1

    -

    表示没有相应的权限

    0

    (3)chmod命令:修改文件或目录的权限命令。字母用法:chmod u+x,g+w,g-r,o+x fileName;数字用法:chmod 764 –R filename/。其中-R表示递归修改文件的权限。

    (4)chown命令:修改文件的所有者或所属用户。例如:chown username /opt/1.txt。

    (5)chgrp命令:修改文件或目录的所属组用户。例如:chgrp username /opt/1.txt。

    (6)一条命令同时修改所属用户和所属组:chown –R username:username /opt/1.txt。

    5、管道符(|)

    管道符表示将前一个命令的结果传递给后一个命令进行处理,两边都是命令。

    例如:过滤筛选(grep):cat /etc/passwd | grep ‘root’。

        注意:如果命令一行未结束的话,可以使用\进行换行。

    6、find命令注意事项

    (1)根据文件名搜索:find /etc/ -name *init???

    注释:*号表示匹配任意的字符,?表示匹配单个字符。Linux中大小写是严格区分的,-iname表示不区分大小写。

    (2)根据文件大小搜索:find /etc/ -size +2M

    (3)根据所有者查找:find /root –user root。

    (4)根据所属组查找: find /root –group root。

    (5)根据文件类型进行查找:find /etc/ -name init* -type f。其中f代表文件,d代表目录。

    7、配置sudo权限

    # visudo

    找到相关内容,编辑为:

    root ALL=(ALL) ALL

    username ALL=(root) NOPASSWD:ALL

    注释:第一个ALL是指网络中的主机,我们后面把它改成了主机名。它指明了username可以在此主机上执行后面的命令。第二个括号里的ALL是指目标用户,也就是以税的身份去执行命令,最后一个ALL指命令名。

    8、yum命令

    (1)yum list:查看yum源上拥有的软件。

    (2)yum list installed | more:查看系统中已经安装好的rpm包。

    (3)yum list updates | more:查询可以更新的软件。

    (4)yum –y install [包名]:安装某rpm包,包名不需要加.rpm的后缀。-y表示自动确认。

    (5)yum –y remove [包名]:卸载某rpm包。

    注意:推荐使用yum安装,使用rpm查询和卸载。

    9、系统管理命令

    (1)top命令:查看系统资源,相当于任务管理器,没隔三秒更新一次,q键退出。

    (2)free命令:查看内存信息。-m指的是以MB的格式显示。

    (3)df –l:查看硬盘分区的使用信息。

    (4)ps –ef:查看系统进程;jps:查看系统正在运行的Java进程。

     

    (5)kill命令:杀死正在运行的进程。例如:kill -9 [进程号]。

    (6)ifconfig命令:查看系统中所有网卡的IP、MAC信息。

    (7)netstat命令:查看网络端口。

    -t:监控tcp协议的进程

    -l:listening

    -n:显示端口号信息

    -p:显示进程的PID

     

    你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

    展开全文
  • Linux20个常用命令

    2016-11-24 17:44:22
    玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决...

            玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Linux系统的人有所不同。因为不想在使用是总是东查西找,所以在此总结一下,方便一下以后的查看。不多说,下面就说说我最常用的Linux命令。



    1、cd命令

    这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:

    cd /root/Docements # 切换到目录/root/Docements
    cd ./path          # 切换到当前目录下的path目录中,“.”表示当前目录  
    cd ../path         # 切换到上层目录中的path目录中,“..”表示上一层目录


    2、ls命令

    这是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多,下面就列出一些我常用的参数吧,如下:

    -l :列出长数据串,包含文件的属性与权限数据等
    -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
    -d :仅列出目录本身,而不是列出目录的文件数据
    -h :将文件容量以较易读的方式(GB,kB等)列出来
    -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

    注:这些参数也可以组合使用,下面举两个例子:

    ls -l #以长数据串的形式列出当前目录下的数据文件和目录
    ls -lR #以长数据串的形式列出当前目录下的所有文件


    3、grep命令

    该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,它的简单语法为

    grep [-acinv] [--color=auto] '查找字符串' filename

    它的常用参数如下:

    -a :将binary文件以text文件的方式查找数据
    -c :计算找到‘查找字符串’的次数
    -i :忽略大小写的区别,即把大小写视为相同
    -v :反向选择,即显示出没有‘查找字符串’内容的那一行
    # 例如:
    # 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色
    grep --color=auto 'MANPATH' /etc/man.config
    # 把ls -l的输出中包含字母file(不区分大小写)的内容输出
    ls -l | grep -i file


    4、find命令

    find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多,所以在这里将给把它们分类列出,它的基本语法如下:

    find [PATH] [option] [action]
    
    # 与时间有关的参数:
    -mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
    -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
    -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
    -newer file : 列出比file还要新的文件名
    # 例如:
    find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件
    
    # 与用户或用户组名有关的参数:
    -user name : 列出文件所有者为name的文件
    -group name : 列出文件所属用户组为name的文件
    -uid n : 列出文件所有者为用户ID为n的文件
    -gid n : 列出文件所属用户组为用户组ID为n的文件
    # 例如:
    find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件
    
    # 与文件权限及名称有关的参数:
    -name filename :找出文件名为filename的文件
    -size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
    -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
                 目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
    -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
    -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
    -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
    # 例如:
    find / -name passwd # 查找文件名为passwd的文件
    find . -perm 0755 # 查找当前目录中文件权限的0755的文件
    find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
    

    5、cp命令

    该命令用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下,它的常用参数如下: 

    -a :将文件的特性一起复制
    -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
    -i :若目标文件已经存在时,在覆盖时会先询问操作的进行
    -r :递归持续复制,用于目录的复制行为
    -u :目标文件与源文件有差异时才会复制
    

    例如 :

    cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
    cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中


    6、mv命令

    该命令用于移动文件、目录或更名,move之意,它的常用参数如下:

    -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    -i :若目标文件已经存在,就会询问是否覆盖
    -u :若目标文件已经存在,且比目标文件新,才会更新

    注:该命令可以把一个文件或多个文件一次移动一个文件夹中,但是最后一个目标文件一定要是“目录”。


    例如:

    mv file1 file2 file3 dir # 把文件file1、file2、file3移动到目录dir中
    mv file1 file2 # 把文件file1重命名为file2


    7、rm命令

    该命令用于删除文件或目录,remove之间,它的常用参数如下:

    -f :就是force的意思,忽略不存在的文件,不会出现警告消息
    -i :互动模式,在删除前会询问用户是否操作
    -r :递归删除,最常用于目录删除,它是一个非常危险的参数


    例如:

    rm -i file # 删除文件file,在删除之前会询问是否进行该操作
    rm -fr dir # 强制删除目录dir中的所有文件

    8、ps命令

    该命令用于将某个时间点的进程运行情况选取下来并输出,process之意,它的常用参数如下:

    -A :所有的进程均显示出来
    -a :不与terminal有关的所有进程
    -u :有效用户的相关进程
    -x :一般与a参数一起使用,可列出较完整的信息
    -l :较长,较详细地将PID的信息列出

    其实我们只要记住ps一般使用的命令参数搭配即可,它们并不多,如下:

    ps aux # 查看系统所有的进程数据
    ps ax # 查看不与terminal有关的所有进程
    ps -lA # 查看系统所有的进程数据
    ps axjf # 查看连同一部分进程树状态


    9、kill命令

    该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用,它的基本语法如下:

    kill -signal PID

    signal的常用参数如下:

    注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。

    1:SIGHUP,启动被终止的进程
    2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
    9:SIGKILL,强制中断一个进程的进行
    15:SIGTERM,以正常的结束进程方式来终止进程
    17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行

    例如:

    # 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程
    kill -SIGTERM %1 
    # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得
    kill -SIGHUP PID


    10、killall命令

    该命令用于向一个命令启动的进程发送一个信号,它的一般语法如下:

    killall [-iIe] [command name]


    它的参数如下:

    -i :交互式的意思,若需要删除时,会询问用户
    -e :表示后面接的command name要一致,但command name不能超过15个字符
    -I :命令名称忽略大小写
    # 例如:
    killall -SIGHUP syslogd # 重新启动syslogd


    11、file命令

    该命令用于判断接在file命令后的文件的基本数据,因为在Linux下文件的类型并不是以后缀为分的,所以这个命令对我们来说就很有用了,它的用法非常简单,基本语法如下:

    file filename
    #例如:
    file ./test


    12、tar命令

    该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。它的常用参数如下:

    -c :新建打包文件
    -t :查看打包文件的内容含有哪些文件名
    -x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
    -j :通过bzip2的支持进行压缩/解压缩
    -z :通过gzip的支持进行压缩/解压缩
    -v :在压缩/解压缩过程中,将正在处理的文件名显示出来
    -f filename :filename为要处理的文件
    -C dir :指定压缩/解压缩的目录dir


    上面的解说可以已经让你晕过去了,但是通常我们只需要记住下面三条命令即可:

    压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称
    查询:tar -jtv -f filename.tar.bz2
    解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
    

    注:文件名并不定要以后缀tar.bz2结尾,这里主要是为了说明使用的压缩程序为bzip2



    13、cat命令

    该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据。例如:

    cat text | less # 查看text文件中的内容
    # 注:这条命令也可以使用less text来代替


    14、chgrp命令

    该命令用于改变文件所属用户组,它的使用非常简单,它的基本用法如下:

    chgrp [-R] dirname/filename
    -R :进行递归的持续对所有文件和子目录更改
    # 例如:
    chgrp users -R ./dir # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users


    15、chown命令

    该命令用于改变文件的所有者,与chgrp命令的使用方法相同,只是修改的文件属性不同,不再详述。



    16、chmod命令

    该命令用于改变文件的权限,一般的用法如下:

    chmod [-R] xyz 文件或目录
    -R:进行递归的持续更改,即连同子目录下的所有文件都会更改
    

    同时,chmod还可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改。

    # 例如:
    chmod 0755 file # 把file的文件权限改变为-rxwr-xr-x
    chmod g+w file # 向file的文件权限中加入用户组可写权限


    18、vim命令

    该命令主要用于文本编辑,它接一个或多个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件。vim是一个非常好用的文本编辑器,它里面有很多非常好用的命令,在这里不再多说。你可以从这里下载vim常用操作的详细说明。



    19、gcc命令

    对于一个用Linux开发C程序的人来说,这个命令就非常重要了,它用于把C语言的源程序文件,编译成可执行程序,由于g++的很多参数跟它非常相似,所以这里只介绍gcc的参数,它的常用参数如下:

    -o :output之意,用于指定生成一个可执行文件的文件名
    -c :用于把源文件生成目标文件(.o),并阻止编译器创建一个完整的程序
    -I :增加编译时搜索头文件的路径
    -L :增加编译时搜索静态连接库的路径
    -S :把源文件生成汇编代码文件
    -lm:表示标准库的目录中名为libm.a的函数库
    -lpthread :连接NPTL实现的线程库
    -std= :用于指定把使用的C语言的版本
    
    # 例如:
    # 把源文件test.c按照c99标准编译成可执行程序test
    gcc -o test test.c -lm -std=c99
    #把源文件test.c转换为相应的汇编程序源文件test.s
    gcc -S test.c
    


    20、time命令

    该命令用于测算一个命令(即程序)的执行时间。它的使用非常简单,就像平时输入命令一样,不过在命令的前面加入一个time即可,例如:

    time ./process
    time ps aux

    在程序或命令运行结束后,在最后输出了三个时间,它们分别是:

    user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;

    system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;

    real:实际时间,从command命令行开始执行到运行终止的消逝时间;



    注:用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务。另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。

    展开全文
  • 一、日常使用命令/常用快捷键命令 开关机命令  1、shutdown –h now:立刻进行关机  2、shutdown –r now:现在重新启动计算机  3、reboot:现在重新启动计算机  4、su -:切换用户;passwd:修改用户密码 ...
  • linux的常见基本命令

    2018-08-15 15:04:01
    1.ls 无论你是从根目录,还是从某个文件夹下面。ls都能够列出该文件夹下所有的文件。 2.cd cd在window中也经常被使用;他是被用来进行目录之间的切换。在输入的文件名的长度达到唯一辨识时,按tab键会自动补充...
  • ls ls -a 显示指定目录下所有目录与文件,包括隐藏文件 -l 以列表的方式显示文件的详细信息 -h 配合-l以人性化的方式显示文件大小 隐藏文件和隐藏文件夹是用来配置应用的。 通配符的使用 ...*-----代表任意个数个...
  • Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解...
  • Linux基本命令 Linux的简介 Linux的厂商 Linux的目录结构 基于虚拟机的环境搭建 常用命令与示例 一、文件基本操作命令 1. ls命令 2. pwd命令 3. mkdir命令 4. cd命令 5. touch命令 6. cp命令 7. mv命令...
  • 实验一 Linux基本命令

    2017-12-24 10:18:03
    实验一 Linux基本命令: 权限管理 一、实验目的:  通过实验熟悉Linux操作系统环境,掌握Linux基于多用户的权限管理机制。 二、实验要求: (1) 掌握Linux/bash环境下命令的使用 (2) 掌握Linux用户权限管理 三、...
  •  熟悉Linux基本命令。2. 熟悉Linux操作系统。二、实验环境:一台装有Linux的机器。三、实验内容:1.文件操作命令的使用。用vi编辑器新建一个testl文件输入this is testl~!查看文件与目录ls进入Linux系统,输入ls-...
  • 要学习linux基本命令,首先要掌握cd命令的使用方法技巧。 1、命令格式 cd [目录名] 2、命令功能 切换当前目录至dirName 3、常用范例 3.1 例一:进入系统根目录 命令: cd /  说明:进入系统...
  • root是Linux中权限最高的用户。Shell脚本通常以 #!/bin/bash 起始的文本文件。其中#!位于Bash的解释器命令路径 /bin/bash 之前。脚本的运行方式分两种:1. 将脚本作为bash的命令行参数, (# + 内容 表示注释,...
  • Linux基本命令总结

    2018-03-09 00:12:16
    一、Linux权限的概念 Linux下有两种用户:普通用户和超级用户()。 普通用户:在linux下做有限的事情; 超级用户:可以在linux系统下做任何事情,不受限制。 普通用户的提示符是“$”,超级用户的命令提示符...
  • 剑指Offer——知识点储备–Linux基本命令1.linux下查看进程占用cpu的情况(top);格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 主要参数 d:指定更新的间隔,以秒计算。 q:没有任何延迟的更新。如果使用者有...
  • 问题描述最近某次,新建一个ssh客户端后,发现好多命令都不能用了比如:ls, vi, cat等,提示:-bash: XX: No such file or directory 但在其它还未关闭的ssh终端中可以使用
  • 3.linux的文件系统是一个树结构。  linux文件系统的树根成为根目录,使用符号"/"表示。  linux文件系统中使用符号".."表示上级目录。  linux文件系统中使用符号"."表示当前目录。  linux文件系统中,如果文件...
  • 玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。每个人玩Linux的目的都不同,所以他们常用的命令也...
  • 转自:http://wenku.baidu.com/link?url=v1-0Ihc7Z1PfEUEz9vJT-JZdYslFnv9LoWQyjOT5p96U_6jJydwxQWRe4CcAV4NpfFjZb4WqEOG-Vy7suvq4N8y-gB_rY-5A5QMvMJCD6lK
1 2 3 4 5 ... 20
收藏数 490,767
精华内容 196,306
关键字:

linux基本命令