zoukankan      html  css  js  c++  java
  • linux基础之基本命令

    一、linux命令概述

    1、命令使用方法

    linux命令格式:

            command  [-options]  [parameter1]  …

    说明:

      command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个

      例如:

    2、查看帮助文档

    【1】--help

      一般是linux命令自带的帮助信息

      如:

      ls --help

    【2】man (manual)

      man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明。该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。

    man中各个section意义如下:

    1. Standard commands(标准命令)
    2. System calls(系统调用,如open,write)
    3. Library functions(库函数,如printf,fopen)
    4. Special devices(设备文件的说明,/dev下各种设备)
    5. File formats(文件格式,如passwd)
    6. Games and toys(游戏和娱乐)
    7. Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)
    8. Administrative Commands(管理员命令,如ifconfig)

    man是按照手册的章节号的顺序进行搜索的。

    man设置了如下的功能键:

    功能键功能
    空格键 显示手册页的下一屏
    Enter键 一次滚动手册页的一行
    b 回滚一屏
    f 前滚一屏
    q 退出man命令
    h 列出所有功能键
    /word 搜索word字符串

    例:man ls

    【3】自动补全

      在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令

    【4】历史命令

      当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来

        

    二、linux命令-文件、磁盘管理

    1、文件管理

    【1】查看文件信息: ls

      ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。默认情况下,ls按照文件名的字母顺序列出文件的信息

      ls [options] [file-list]

      options有很多选项,常用选项如下

    ls –a 显示所有文件,包括隐藏文件
    ls –F 在文件的后面添加表示文件类型的符号。*表示可执行,/表示目录,@表示连结文件
    ls –l 列出每个文件更详细的信息
    ls -ld 查看当前目录属性
    ls -lh 文件大小以K为单位
    ls -R 递归地列出子目录的内容
    ls -t 按最后一次修改时间的顺序显示文件
    ls -i 显示iNode号

    图中列出的信息含义如下图所示:

      与DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。

    通配符含义
    * 文件代表文件名中所有字符
    ls te* 查找以te开头的文件
    ls *html 查找结尾为html的文件
    代表文件名中任意一个字符
    ls ?.c 只找第一个字符任意,后缀为.c的文件
    ls a.? 只找只有3个字符,前2字符为a.,最后一个字符任意的文件
    [] [”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。
    [abc] 匹配a、b、c中的任意一个
    [a-f] 匹配从a到f范围内的的任意一个字符
    ls [a-f]* 找到从a到f范围内的的任意一个字符开头的文件
    ls a-f 查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用
    如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。
    ls *a 查找文件名为*a的文件

     【2】输出重定向命令: >

      Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

      如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )

      ">"是右重定向符,表示将左边命令结果当成右边命令的输入。如果右侧文件是一个已存在文件,其原有内容将会被清空,而变成左侧命令输出内容。如果希望以追加方式写入,请改用">>"重定向符

      cat 显示文本文件的内容,类似于dos下的type命令  

      cat [options] [direction]
      cat file1 显示file1文件内容
      cat file1 file2 依次显示file1,file2的内容
      cat file1 file2 > file3 把file1,file2的内容结合起来,再重定向(>)到file3文件中

    【3】分屏显示:more

      查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。

      more test.txt

    【4】管道: |

      管道:一个命令的输出可以通过管道做为另一个命令的输入。

      管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。

      ls -lh | more

    【5】清屏:clear

      clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。

    【6】切换工作目录: cd

      在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感

      cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。

    命令含义
    cd 切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。
    cd ~ 切换到当前用户的主目录(/home/用户目录)
    cd . 切换到当前目录
    cd .. 切换到上级目录
    cd - 可进入上次所在的目录

    注意:

    • 如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 “ / ”。

    【7】显示当前路径:pwd

      使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。

    【8】创建目录:mkdir

      通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

    【9】删除目录:rmdir

      可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。

      rmdir test

    【10】删除文件: rm

      可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。

      常用参数及含义如下表所示:

       

    参数含义
    -i 以进行交互式方式执行
    -f 强制删除,忽略不存在的文件,无需提示
    -r 递归地删除目录下的内容,删除文件夹时必须加此参数

    【11】建立链接文件: ln

      Linux链接文件类似于Windows下的快捷方式。

      链接文件分为软链接和硬链接。

      软链接:软链接不占用磁盘空间,源文件删除则软链接失效。

      硬链接:硬链接只能链接普通文件,不能链接目录。

      硬链接包括以下特征:

        1、拥有相同的i节点和存储block块,可以看做是同一个文件

        2、可通过i节点识别

        3、不能跨分区

        4、不能针对目录使用

      软链接包含以下特征:

        1、类似windows快捷方式

        2、软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据

        3、修改任意文件,另一个都改变

        4、删除原文件,软链接不能使用

        5、软链接文件权限都为rwxrwxrwx

        6、软链接的原文件一定要写绝对路径

      通过ln命令来生成链接文件,-s选项表示生成软链接,没有选项则表示生成硬链接

      使用格式: 

      ln 源文件 链接文件
      ln -s 源文件 链接文件

      如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。

    注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

    【12】文本搜索:grep

      Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

      grep一般格式为:

      grep [-选项] ‘搜索内容串’文件名

      在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。

      常用选项说明:

    选项含义
    -v 显示不包含匹配文本的所有行(相当于求反)
    -n 显示匹配行及行号
    -i 忽略大小写

      grep搜索内容串可以是正则表达式。

      正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

      grep常用正则表达式:

    参数含义
    ^a 行首,搜寻以 m 开头的行;grep -n '^a' 1.txt
    ke$ 行尾,搜寻以 ke 结束的行;grep -n 'ke$' 1.txt
    [Ss]igna[Ll] 匹配 [] 里中一系列字符中的一个;搜寻匹配单词signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt
    . (点)匹配一个非换行符的字符;匹配 e 和 e 之间有任意一个字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt

      

    【13】查找文件:find

      find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

    常用用法:

    命令含义
    find ./ -name test.sh 查找当前目录下所有名为test.sh的文件
    find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件
    find ./ -name "[A-Z]*" 查找当前目录下所有以大写字母开头的文件
    find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
    find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
    find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
    find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
    find ./ -perm 0777 查找当前目录下权限为 777 的文件或目录

    【14】拷贝文件:cp

       cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。

      常用选项说明:

    选项含义
    -a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
    -f 已经存在的目标文件而不提示
    -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
    -r 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
    -v 显示拷贝进度

    【15】移动文件:mv

    用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

    常用选项说明:

    选项含义
    -f 禁止交互式操作,如有覆盖也不会给出提示
    -i 确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
    -v 显示移动进度

    【16】归档管理:tar

      计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

      tar使用格式 tar [参数] 打包文件名 文件

      tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

    常用参数:

    参数含义
    -c 生成档案文件,创建打包文件
    -v 列出归档解档的详细过程,显示进度
    -f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
    -t 列出档案中包含的文件
    -x 解开档案文件

      注意:除了f需要放在参数的最后,其它参数的顺序任意。

    【17】文件压缩解压:gzip

      tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。

      gzip使用格式如下:

      gzip  [选项]  被压缩文件

    常用选项:

    选项含义
    -d 解压
    -r 压缩所有子目录

      tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。

    压缩用法:tar cvzf 压缩包包名 文件1 文件2 ...

      -z :指定压缩包的格式为:file.tar.gz

      解压用法: tar zxvf 压缩包包名

      解压到指定目录:-C (大写字母“C”)

      -z:指定压缩包的格式为:file.tar.gz

    【18】文件压缩解压:bzip2

      tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。

      tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz2。

      tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

      压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
    
      解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

    【20】文件压缩解压:zip、unzip

      通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。

      压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
    
      解压文件:unzip -d 解压后目录文件 压缩文件

    【21】查看命令的位置:which

      如:查看ls命令所在的位置

    三、linux命令-用户、权限管理 

      简介:用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。

    【1】查看当前用户:whoami

      whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。

      由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。

    【2】查看登录用户:who

      who命令用于查看当前所有登录系统的用户信息。

      常用选项:

    选项含义
    -m或am I 只显示运行who命令的用户名、登录终端和登录时间
    -q或--count 只显示用户的登录账号和登录用户的数量
    -u或--heading 显示列标题

    【3】退出登录账户:exit

      如果是图形界面,退出当前终端;

      如果是使用ssh远程登录,退出登陆账户;

      如果是切换后的登陆用户,退出则返回上一个登陆账号。

    【4】添加用户账户:useradd

      在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。

      useradd命令的使用格式如下: useradd [参数] 新建用户账号

    参数含义
    -d 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录
    -m 自动建立目录
    -g 指定组名称

      相关说明:

    • Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
    • 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;
    • 用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;
    • 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
    命令含义
    useradd -d /home/abc abc -m 创建abc用户,如果/home/abc目录不存在,就自动创建这个目录,同时用户属于abc组
    useradd -d /home/a a -g test -m 创建一个用户名字叫a,主目录在/home/a,如果主目录不存在,就自动创建主目录,同时用户属于test组
    cat /etc/passwd 查看系统当前用户名

    【5】设置用户密码:passwd

      在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。

      sudo passwd hugo2

      注:hugo2为新建的用户

    【6】删除用户:userdel

    命令含义
    userdel abc(用户名) 删除abc用户,但不会自动删除用户的主目录
    userdel -r abc(用户名) 删除用户,同时删除用户的主目录

    【7】切换用户:su

      可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:

      su hugo2
    

      注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。

    命令含义
    su 切换到root用户
    su root 切换到root用户
    su - 切换到root用户,同时切换目录到/root
    su - root 切换到root用户,同时切换目录到/root
    su 普通用户 切换到普通用户
    su - 普通用户 切换到普通用户,同时切换普通用户所在的目录

      Ubuntu下切换到root的简单命令:

      sudo -s

    【8】查看有哪些用户组

      方法一:

    cat /etc/group

      方法二:

    grouomod +三次tab

    【9】添加、删除组账号:groupadd、groupdel

      groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组

      sudo groupadd hugo3
      sudo groupdel hugo3

    【10】修改用户坐在组:usermod

    usermod -G xxx xxx1

    【11】查看用户在哪些组

    groups xxx

    【12】为创建的普通用户添加sudo权限

      新创建的用户,默认不能sudo,需要进行一下操作

      sudo usermod -a -G adm 用户名
    
      sudo usermod -a -G sudo 用户名

    【13】usermod -g 与 -G的区别

      -g用来制定这个用户默认的用户组

      -G一般配合'-a'来完成向其它组添加

    【14】修改文件权限:chmod

    chmod 修改文件权限有两种使用格式:字母法与数字法。

    字母法:chmod u/g/o/a +/-/= rwx 文件

    [ u/g/o/a ]含义
    u user 表示该文件的所有者
    g group 表示与该文件的所有者属于同一组( group )者,即用户组
    o other 表示其他以外的人
    a all 表示这三者皆是
    [ +-= ]含义
    + 增加权限
    - 撤销权限
    = 设定权限
    rwx含义
    r read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
    w write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
    x excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。

      

    chmod u+x test.txt 文件拥有者添加执行的权限
    chmod g-w test.txt 同组者减去写的权限
    chmod o+w test.txt 其他人添加写的权限

      如果需要同时进行设定拥有者、同组者以及其他人的权限,参考如下:

      chmod u=rw,g=x,o=r test.txt
      chmod u=,g=,o= test.txt

    数字法:“rwx” 这些权限也可以用数字来代替

    字母说明
    r 读取权限,数字代号为 "4"
    w 写入权限,数字代号为 "2"
    x 执行权限,数字代号为 "1"
    - 不具任何权限,数字代号为 "0"

      如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename

    chmod 751 file:

    • 文件所有者:读、写、执行权限
    • 同组用户:读、执行的权限
    • 其它用户:执行的权限
      chmod 777 test.txt
      chmod 761 test.txt

      注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限

    【15】修改文件所有者:chown

      sudo chown hugo2 test.txt

    【16】修改文件所属组:chgrp

      sudo chgrp hugo2 test.txt

    四、linux命令-系统管理 

    【1】查看当前日历:cal

      cal

    【2】显示或设置时间:date

      设置时间格式(需要管理员权限):

      date [MMDDhhmm[[CC]YY][.ss]] +format  

    CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。

    显示时间格式(date '+%y,%m,%d,%H,%M,%S'):

    format格式含义
    %Y,%y
    %m
    %d
    %H
    %M
    %S

       例如:

      date '+Y%/%M/%d'       显示:2018/01/01
      date '+%Y=%m=%d'      显示:2018=01=01

    【3】查看进程信息:ps

      进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。

      ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:

    选项含义
    -a 显示终端上的所有进程,包括其他用户的进程
    -u 显示进程的详细状态
    -x 显示没有控制终端的进程
    -w 显示加宽,以便显示更多的信息
    -r 只显示正在运行的进程

    【4】动态显示进程:top

      top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。

      在top命令执行后,可以按下按键得到对显示的结果进行排序:

    按键含义
    M 根据内存使用量来排序
    P 根据CPU占有率来排序
    T 根据进程运行时间的长短来排序
    U 可以根据后面输入的用户名来筛选进程
    K 可以根据后面输入的PID来杀死进程。
    q 退出
    h 获得帮助

    【5】终止进程:kill

      kill命令指定进程号的进程,需要配合 ps 使用。

      使用格式:  

    kill [-signal] pid

      信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。

      kill 9133 :9133 为应用程序所对应的进程号

    【6】关机重启:reboot、shutdown、init

    命令含义
    reboot 重新启动操作系统
    shutdown –r now 重新启动操作系统,shutdown会给别的用户提示
    shutdown -h now 立刻关机,其中now相当于时间为0的状态
    shutdown -h 20:25 系统在今天的20:25 会关机
    shutdown -h +10 系统再过十分钟后自动关机
    init 0 关机
    init 6 重启

    【7】检测磁盘空间:df

      df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。

    选项含义
    -a 显示所有文件系统的磁盘使用情况
    -m 以1024字节为单位显示
    -t 显示各指定文件系统的磁盘空间使用情况
    -T 显示文件系统
      sudo df -m

    【8】检测目录所占磁盘空间:du

    du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。

    du命令的使用格式如下: du [选项] 目录或文件名

    选项含义
    -a 递归显示指定目录中各文件和子目录中文件占用的数据块
    -s 显示指定文件或目录占用的数据块
    -b 以字节为单位显示磁盘占用情况
    -l 计算所有文件大小,对硬链接文件计算多次

    【9】查看或配置网卡信息:ifconfig

      查看: ifconfig
      修改ens3的ip:sudo ifconfig ens33 192.168.0.1

    【10】测试远程主机连通性:ping

      域名形式:ping www.baidu.com
      ip形式:ping 192.168.0.2

  • 相关阅读:
    SpringSecurity开发
    SpringBoot 集成Spring Security
    Hexo
    gitbook使用
    Maze
    Party
    A. DZY Loves Chessboard
    1042B. Vitamins
    Petr and a Combination Lock
    433B.Kuriyama Mirai's Stones
  • 原文地址:https://www.cnblogs.com/Jiangchuanwei/p/8454016.html
Copyright © 2011-2022 走看看