zoukankan      html  css  js  c++  java
  • Linux常用命令

    目录


    前言

    下面是常用命令的介绍,这些命令都是以后会用到的,熟练掌握便是最终的目标。


    第一章 Linux文件及目录管理命令基础

    1.1 pwd: 显示当前所在位置的信息

    [功能说明]

    显示当前所在目录的绝对路径

    [语法格式]

    pwd [option]	
    pwd 选项
    

    [说明]

    1.注意pwd命令与后面的选项之间至少要有一个空格
    2.通常情况下,执行pwd命令过不需要附带任何参数

    [举例]
    在这里插入图片描述

    1.2 cd: 切换目录

    [功能说明]

    切换到不同的目录

    [语法格式]

    cd [option] [dir]
    cd [选项]    [目录]
    

    [注意]

    1.注意cd命令以及后面的选项和目录,每个元素之间都至少有一个空格。
    2.cd命令后面的选项都可以省略。默认情况下,单独执行cd命令,可以切换到当前登陆用户的家目录。
    3.cd是bash shell的内置命令,查看命令帮助需要使用help cd。

    [选项说明]
    在这里插入图片描述
    [技巧]

    1.当使用cd命令切换目录时,多用tab补全键可以补全路径,可以提高输入速度和准确度。
    2.相对路径和绝对路径区别
    相对路径是以当前所在的目录为起点,而不是以"/"为起点
    绝对路径是以"/"为起点,例如 /etc/ /data/

    [举例]

    进入一个目录
    切换上一次的目录使用cd -
    切换到上一级目录使用cd ..
    切换到家目录使用cd ~
    在这里插入图片描述

    1.3 tree: 以树状目录结构显示目录下的内容

    [功能说明]

    以树状目录结构显示目录下的内容

    [语法格式]

    tree [option] [directory]
    tree [选项]    [目录]  
    

    [注意]

    1.注意tree命令以及后面的选项和目录,每个元素之间都至少有一个空格。
    2.若tree命令后不接选项和目录,则默认显示当前所在路径目录的目录结构。

    [选项说明]
    在这里插入图片描述
    [举例]

    1.只列出根目录下第一层的目录结构
    2.使用tree命令区分目录和文件的方法
    3.只显示目录
    在这里插入图片描述在这里插入图片描述

    1.4 mkdir: 创建目录

    [功能说明]

    1.功能是创建目录
    2.默认如果目录已存在,则会提示目录存在,而不会继续创建

    [语法格式]

    mkdir [option] [directory]
    mkdir [选项] [目录]

    [选项说明]

    [举例]

    1.创建一个目录
    2.使用-p参数递归创建目录
    在这里插入图片描述

    1.5 touch: 创建文件或更改文件时间戳

    [功能说明]

    2个功能:
    1.创建一个空文件
    2.改变已有文件的时间戳属性

    [语法格式]

    touch [option] [file]
    touch [选项] [文件]

    [注意]

    1.注意touch命令以及后面的选项和目录,每个元素之间都至少有一个空格。
    2.注意区分touch和mkdir命令的功能,mkdir是创建空目录,而touch是创建空文件。
    3.Linux中一切皆文件。虽然touch命令不能创建目录,但是可以修改目录的时间戳。

    [选项说明]
    在这里插入图片描述
    [举例]

    1.批量创建多个空文件
    2.更改时间戳
    touch test.txt
    stat test.txt
    touch -a test.txt
    stat test.txt
    touch -m test.txt
    stat test.txt
    3.指定时间属性创建/修改文件
    ls -lh test.txt
    touch -d 20201206 test.txt
    ls -lh test.txt
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    [拓展]

    Linux的文件中包含3种类型的时间戳:在这里插入图片描述

    1.6 ls: 显示目录下内容及属性信息的命令

    [功能说明]

    列出目录的内容及其属性信息。

    [语法格式]

    ls [option] [file]
    ls [选项] [文件或目录]

    [说明]

    1.注意ls命令以及后面的选项和目录,每个元素之间都至少有一个空格。
    2.ls命令后的选项和目录文件可以省略,表示查看当前路径的文件信息。

    [选项说明]
    在这里插入图片描述
    [举例]

    1.切换目录,批量创建文件,显示目录内容
    2.显示目录文件的详细内容
    3.显示目录下的所有文件,包括隐藏文件
    4.只显示目录的信息,而不是目录下的文件的信息
    5.查找最近更新过的文件
    6.以人类可读信息输出
    在这里插入图片描述

    [拓展]

    ls命令输出信息解读:在这里插入图片描述

    1.7 cp: 复制文件或目录

    [功能说明]

    功能为复制文件或目录

    [语法格式]

    cp [option] [source] [dest]
    cp [选项] [源文件] [目标文件]

    [选项说明]

    [举例]

    cp file1.txt file2.txt
    cp -a file1.txt file3.txt
    ls -lh
    /bin/cp file1.txt file2.txt
    cp file1.txt file2.txt
    cp /etc/ssh/sshd_config{,.bak}
    在这里插入图片描述

    1.8 mv: 移动或重命名文件

    [功能说明]

    移动或重命名文件

    [语法格式]

    mv [option] [source] [dest]
    mv [选项] [源文件] [目标文件]

    [注意]

    命令与每个参数之间都需要有空格

    [选项说明]



    [举例]

    mv file6.txt file7.txt
    mv file4.txt file7.txt
    mv file7.txt dir1/ #如果目录已经存在,则把文件移动到文件里。若不存在,则重命名为dir1的普通文件。
    mv file1.txt file2.txt dir1/
    mv -t dir1/ file1.txt file2.txt file3.txt #-t参数将源和目标进行调换。
    mv dir1 dir5
    在这里插入图片描述

    1.9 rm: 删除文件或目录

    [功能说明]

    删除一个或多个文件或目录,这是Linux最危险的命令之一,跪求谨慎使用。

    [语法格式]

    rm [option] [file]
    rm [选项] [文件或目录]

    [选项说明]

    [举例]

    mkdir -p /data/{dir1,dir2,dir3}
    touch /data/{file1.txt,file2.txt,file3.txt}
    tree /data
    cd /data
    rm file3.txt
    rm -f file3.txt
    rm -rf dir1
    在这里插入图片描述

    [注意]

    1.用mv替代rm,不要着急删除,而是先移动到回收站"/tmp"
    2.删除前务必做好备份,最好保存在其他地方,出现问题可以随时还原
    3.如果非要删除,请用find替代rm,包括通过系统定时任务等清理文件方法
    4.最好使用-rf参数组合,因为不会有任何提示和确认
    5.root用户下绝对不要使用rm -rf / 以及其他配置文件,如:rm -rf /etc等。

    第二章 Linux重要系统文件

    2.1 Linux重要目录介绍

    FHS标准(filesystem hierarchy standard):希望用户可以了解已经安装的程序在哪个目录下:
    根文件文件系统(/):rootfs:root filesystem
    /bin:二进制,存放命令(所有用户都可以执行)
    /boot:存放启动和内核相关文件
    /dev:存放设备文件
    /etc:存放应用程序的配置文件
    /home:普通用户的家目录(存放普通用户),默认为/home/USERNAME
    /lib和/lib64:存放系统开机时需要用的函数库及/bin和/sbin命令调用函数库
    /lib/modules:存放内核相关的模块(驱动程序等)
    /media和/mnt:挂载点,/media挂载移动设备 /mnt挂载临时设备
    (当存在光驱的时候需要挂载到里面,直接访问是没法的,需要访问media)
    /opt:第三方软件存放目录(用户自行安装的软件存放处),现在一般安装到/usr/local下
    /proc:伪文件系统,数据存放在内存中,存放关于进程的相关信息(调优)
    /root:管理员的家目录
    /sbin:存放管理员使用的命令
    /srv:service缩写,存放服务数据目录,如可以把www服务的网页存放到该目录
    /tmp:存放临时文件,所有用户都可以访问创建文件,但是每个用户只能删除自己的文件(到了一定时间会清除)
    /sys:伪文件系统,存放在内存中,记录内核相关的信息,包括目前加载内核模块和内核检测到的硬件设备等
    /usr:UNIX software resource:存放安装的应用程序(使用频率最大的)
    /usr/bin:普通用户使用的命令(和/bin区别是否与开机有关)
    /usr/sbin:网络服务器命令
    /usr/lib和/usr/lib64:包含各种应用程序函数库
    /usr/share:存放共享文件目录(在线帮助文件,杂项,时区文件等)
    /usr/include:存放头文件
    /usr/src:释放源代码目录
    /var:vary缩写,存放经常变动的文件,比如日志,mail等
    /var/cache:存放应用程序运行时产生的缓存文件
    /var/lib:程序运行时,需要使用的数据文件的存放目录
    /var/lock:设备或资源一次只能被一个应用程序使用,如果多应用程序会产生错误,因为要为设备或资源上锁(存放锁文件)
    /var/log:存放日志目录(系统,用户登录,服务日志等)
    /var/mail:存放个人电子邮件(系统报警产生邮件信息等)
    /var/run:存放应用程序运行时PID文件(进程号.pid结尾)
    /var/spool:存放队列数据,排队等待其他用户程序使用的数据,数据通常使用完成后会被删除
    FHS规定:/etc /bin /dev /lib /sbin五个目录必须要和根目录位于同一文件系统

    2.2 Linux重要系统文件介绍

    2.2.1 /etc系统初始化及设置相关重要文件

    在这里插入图片描述

    2.2.2 /var目录下的路径知识

    在这里插入图片描述

    2.3 /proc下重要路径知识

    在这里插入图片描述

    第三章 CentOS 6&7启动流程

    3.1 CentOS6启动流程

    在这里插入图片描述

    3.2 CentOS7启动流程

    在这里插入图片描述

    第四章 Linux文本处理

    4.1 VI/VIM编辑器

    [三种模式]

    1.普通模式
    2.编辑模式
    3.命令行模式

    常用快捷键


    4.2 echo 输出文本

    在这里插入图片描述
    [练习]

    1.打印文本输出到屏幕里
    2.将单行文本追加到某个文件中
    3.打印变量内容在这里插入图片描述

    4.3 cat 合并文件或查看文件内容

    [选项说明]
    在这里插入图片描述
    [举例]

    1.直接查看文件内容
    2.使用cat的完整命令生成test.txt的内容
    3.查看文件内容并显示行号-n -b
    4.查看文件内容的的特殊字符
    在这里插入图片描述

    4.4 head 显示文件头部信息

    [语法格式]

    head [option] [file]
    head [选项] [文件]

    [选项说明]

    [举例]

    1.显示文件前10行
    2.显示文件前3行
    在这里插入图片描述

    4.5 tail 显示文件内容尾部

    [语法格式]

    tail [option] [file]
    tail [选项] [文件]

    [选项说明]

    [举例]

    1.显示文件最后10行文本
    2.显示文件最后5行文本
    3.持续的显示文本的变化
    在这里插入图片描述

    4.7 grep 文本过滤工具

    [功能说明]

    grep命令是Linux系统中最重要的命令之一,其功能是从文本或管道数据流中筛选匹配的行及数据,如果配合正则表达式技术一起使用,则功能会更加强大,他是Linux运维人员必须要掌握的命令之一。
    grep过滤就相当于一个筛子,有可能筛子里面的东西是要保留的,也有可能筛出来的需要保留。

    [语法格式]

    grep [options] pattern [file]
    greo 参数 匹配模式 文件

    [选项说明]

    [举例]

    1.过滤包含Jerome字符串的行
    2.过滤不包含Jerome字符串的行
    3.显示所有行的行号
    4.不区分大小写的过滤
    5.过滤包含Jerome或test的行
    6.只输出匹配的内容,而匹配的行
    7.精确搜索包含Jerome的字符串

    4.8 定向符号

    [功能说明]

    ">"为重定向符号,表示清除原文件里的所有内容,然后将内容追加到文件的末尾(危险操作!慎用)
    ">>"为追加重定向符号,即追加内容到文件的尾部(文件的最后一行)

    [举例]

    1.清空一个文本
    2.清空一个文本并写入一行内容
    3.输出一行内容并追加到文本的最后

    第五章 Linux文件及目录查找命令

    5.1 file 显示文件的类型

    [语法格式]

    file [option] [file]

    5.2 which 显示命令的全路径

    [语法格式]

    file 命令

    5.3 whereis 显示命令及其相关文件全路径

    [语法格式]

    whereis 命令

    5.4 find 查找目录下的文件

    [语法格式]

    find [path] [option] [cmd]
    find 路径 选项参数 执行命令

    [选项说明]


    [举例]

    1.查找2天内被访问的文件
    2.查找修改时间在5天内容的文件
    3.查找/var/log目录下5天前以*.log结尾的文件
    4.查找当前的目录
    5.查找当前目录下文件大小超过1000字节的文件
    6.查找用户为oldboy的文件
    7.查找1级目录
    8.查找14天以前的文件并删除
    9.加入网站的网页被挂马了,如何批量找出并删除?

    [时间查找说明]

    [find练习题]

    创建测试文件命令:
    mkdir /opt/dir{1..4} -p

    touch -d "2020-11-26 01:00" /opt/dir1/111.txt
    touch -d "2020-11-27 01:00" /opt/dir1/111.jpg
    touch -d "2020-11-28 01:00" /opt/dir2/222.txt
    touch -d "2020-11-29 01:00" /opt/dir2/222.jpg
    touch -d "2020-11-30 01:00" /opt/dir3/333.html
    touch -d "2020-12-01 01:00" /opt/dir4/444.conf
    touch -d "2020-12-02 01:00" /opt/dir4/555.conf

    dd if=/dev/zero of=/opt/dir1/111.data bs=1K count=100
    dd if=/dev/zero of=/opt/dir2/222.data bs=1K count=300
    dd if=/dev/zero of=/opt/dir3/333.data bs=1M count=10
    dd if=/dev/zero of=/opt/dir4/444.data bs=1M count=100

    echo "DB_NAME=Jerome" >> /opt/dir4/444.conf
    echo "DB_PASSWD=123456" >> /opt/dir4/444.conf
    echo "www.baidu.com" >> /opt/dir2/222.html
    echo "www.test.com" >> /opt/dir3/333.html

    useradd www
    chown www:www /opt/dir2/222.html
    chown www:www /opt/dir3/333.html

    练习题:
    1.找出/opt目录下所有以txt结尾的文件
    find /opt -type f ".txt"
    2.找出/opt目录下所有以txt结尾的文件但是排除掉文件名包含222的文件
    find /opt -type f "
    .txt" ! -name 222
    3.找出/opt/目录下所有的conf文件
    find /opt -type f "conf"
    4.找出/opt目录下大于500K的文件
    find /opt -type f -size +500K
    5.找出/opt目录下大于10M的文件
    find /opt -type f -size +10M
    6.找出/opt目录下前3天的文件
    find /opt -type f -mtime +3
    7.找出/opt目录下最近2天的文件
    find /opt -type f -mtime -2
    8.找出/opt/dir2目录下以jpg结尾的文件
    find /opt/dir2 -type f ".jpg"
    9.找出/opt/目录下文件内容包含baidu的文件
    find /opt -type f "
    " |xrags grep "baidu"
    10.找出/opt目录下文件内容包含oldboy的文件
    find /opt -type f "*" |xrags grep "oldboy"
    11.用一条命令找出/opt目录下所有的data文件并显示详细信息
    find /opt -type f "data" |xrags ls -al
    12.用一条命令找出/opt目录下大于1M的文件并删除
    rm -rf find /opt -type f -size +1M

    find /opt -type f -size +1M用`号括起来

    5.5 xargs 将标准输入转换成命令行参数

    find . -type f -name ".txt" -size -100k|xargs ls -lh
    find . -type f -name "
    .txt" -size -100k|xargs rm -rf

    5.6 tar 打包压缩命令

    [语法格式]

    压缩;
    tar [选项] 压缩包名称 需要压缩的文件
    解压:
    tar [选项] 需要解压的文件

    [选项说明]

    举例说明

    mkdir /code/www/html/ -p
    touch /code/www/html/{1..5}.html
    ls /code/www/html/
    cd /code/www/
    tar zcvf html.tar.gz ./html

    tar ztvf html.tar.gz
    tar zxvf html.tar.gz
    tar zxvf html.tar.gz -C /opt/

    5.7 显示与设置系统时间

    yum install ntpdate -y
    date
    date -s "2020-11-05"
    ntpdate time1.aliyun.com
    date

    5.8 基础命令综合练习题

    1.linux命令格式是什么样?
    2.linux命令必须添加参数才能执行吗
    3.解释linux的命令提示符,如何用linux命令解析[root apylinux opt]#
    4.linux的目录分隔符是?
    5.简述Linux的目录结构
    6.切换到上一级目录
    7.切换到上一次目录
    8.切换到用户家目录
    9.查看当前工作目录
    10.当前目录是/home,以绝对、相对两种路径方式进入/opt目录
    11.列出/opt/下所有文件,包含隐藏文件,且显示详细信息(时间、文件大小)
    12.以树状结构显示文件夹内容
    13.—条命令创建/tmp/chaoge/linux文件夹
    14.创建python脚本first.py
    15.—条命令创建/tmp/chaoge1.txt /tmp/chaoge2.txt /tmp/chaoge3.txt
    16.复制/opt/下所有内容到/tmp/下
    17.更改文件名first.txt为second.txt
    18.把/opt/下所有内容移动到/tmp下
    19.强制删除/tmp下所有内容
    20.查看Is命令的帮助信息
    21.立即重启的命令
    22.如何永久设置linux环境变量
    23.linux的常见配置文件目录是
    24.vim三种模式是?使用流程是?
    25.查看文件且显示行号
    26.如何清空文件内容,注意是空内容,而非空格
    27.显示文件前30行
    28.显加文件后50行
    29.实时刷新文件内容
    30.读取文件内容且倒序排序
    31.读取文件内容进行排序后去重
    32.读取文件内容且排序后,统计重复行的次数
    33.统计文件一共有多少行
    34.如何查看文件的详细信息(inode号,访问、修改时间、链接数)
    35.找出服务器上所有以".py"结尾的文件
    36.找出服务器2天内被访问过的文件
    37.找出服务器大于50M的文件
    38•找出/tmp/目录下所有的txt文件,然后删除
    39.把/data/html/文件夹打包压缩成data_html.tgz文件
    40.如何解压缩alltmp.gz文件
    41.如何解压缩data.zip文件
    42.显示具体的系统时间,时:分:秒
    43.如何彻底粉碎文件
    

    第六章 Linux权限和用户管理

    6.1 用户及用户组介绍

    在Linux系统中创建,增加,以及删除用户和用户组,实际上都是修改系统中对应的文件,因此有必要熟悉一下用户和用户组相关的重要文件知识。
    在Linux系统中,与用户和用户组直接相关的文件主要有/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow这四个文件。
    

    6.2 存储用户信息的文件 /etc/passwd

    [文件说明]

    /etc/passwd文件是Linux中重要的系统文件之一,主要作用是存储系统用户信息,文件中的每一行表示一个用户信息,有多少行就表示存在多少个用户信息,仔细观察其中的一行,可以清晰看出,各内容之间通过":"号划分了多个字段,这7部分分别定义了用户的不同属性。
    注意:没事别动这个文件,不要删除也不要修改。
    

    [字段说明]

    [详细说明]

    6.3 存储用户密码信息的文件/etc/shadow

    [文件说明]

    前面说到,因为passwd文件必须要被所有的用户读取,所以会带来安全隐患。
    而shadow文件就是为了这个安全隐患而增加的,下面我们看看/etc/shadow文件的权限。
    [root@oldboy ~]# ls -l /etc/shadow
    ----------. 1 root root 593 Dec  2 15:00 /etc/shadow  #<==所有用户都不可读,但是不包含root用户
    

    [通过查看具体文本内容如下:]

    [root@oldboy ~]# head -3 /etc/shadow
    root:$6$IbFgv2F4o6JnsNzE$qq0G6Kk/VHKtBGzriqCpH.nNcJkdGNPkBW84QTbkH5XaVd/XHYIv.b0I7Mr/7Ycg.Tl1Zel7FQVQaAayuKbej/::0:99999:7:::
    bin:*:17834:0:99999:7:::
    daemon:*:17834:0:99999:7:::
    

    [字段解释]

    6.4 用户管理的常见命令

    6.5 组管理的常见命令

    6.6 useradd添加用户命令实战

    常用参数

    [练习命令]

    默认不接任何参数

    useradd oldboy
    ls -lh /home
    tail -1 /etc/passwd
    tail -1 /etc/group
    tail -1 /etc/gshadow
    

    指定uid,gid

    group oldya 777
    useradd oldya -u 777 -g 777
    id oldya
    

    创建虚拟用户mysql,禁止其登陆,且不创建家目录

    useradd mysql -s /sbin/nologin -M
    tail -1 /etc/passwd
    

    6.7 usermod 修改用户和组的属性

    usermod olddong -d /home/test01
    usermod olddong -s /bin/bash
    groupmod olddong -g 2001
    usermod olddong -g 2001
    

    第七章 Linux定时任务管理

    7.1 什么是Cron定时任务

    简单来说,定时任务就是按照系统管理员的要求,周期性的定时运行指定的任务,可以是命令,也可以是脚本。
    对于安全管理员来说,很多病毒都是利用定时任务来从网络上下载病毒并运行的。
    

    7.2 选项参数

    -e 编辑定时任务
    -l 显示所有的定时任务
    

    7.3 语法格式

    口诀:分时日月周
    *   *   *   *   *   命令
    分  时   日  月  周   命令
    

    7.4 字段的含义

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RviCg6Nk-1607253111150)(https://upload-images.jianshu.io/upload_images/14248468-7b59f1979b6774ff.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

    7.5 举例说明

    */1 * * * * ntpdate time1.aliyun.com
    30 */6 * * * echo "吃饭"
    00 00 * * * echo "跳广场舞"
    00 */1 * * * echo "上卫生间"
    30 09 * * 0 echo "去老男孩上课"
    

    第八章 Linux常用系统命令

    8.1 查看进程

    ps -ef
    

    [说明]

    ps命令参数很多,就不一一介绍了,参考:
    https://www.runoob.com/linux/linux-comm-ps.html

    在这里插入图片描述

    8.2 查看端口

    netstat -anp
    

    [说明]

    netstat命令参数很多,就不一一介绍了,参考:
    https://www.runoob.com/linux/linux-comm-netstat.html

    在这里插入图片描述

    8.3 查看内存

    top
    

    [参数说明]

    d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
    q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
    c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
    S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
    s : 安全模式,将交谈式指令取消, 避免潜在的危机
    i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
    n : 更新的次数,完成后将会退出 top
    b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内

    在这里插入图片描述


    总结

    以上便是对Linux基础知识的总结,同时也是常用命令需要牢记,更多的常用命令可以参考手册。

  • 相关阅读:
    [leetcode-551-Student Attendance Record I]
    [leetcode-543-Diameter of Binary Tree]
    [leetcode-541-Reverse String II]
    [leetcode-530-Minimum Absolute Difference in BST]
    [leetcode-521-Longest Uncommon Subsequence I]
    [leetcode-504-Base 7]
    [leetcode-116-Populating Next Right Pointers in Each Node]
    [leetcode-573-Squirrel Simulation]
    [leetcode-572-Subtree of Another Tree]
    [leetcode-575-Distribute Candies]
  • 原文地址:https://www.cnblogs.com/jeromeyoung/p/14095549.html
Copyright © 2011-2022 走看看