美文网首页
Linux就该这么学 4 | Linux常用命令

Linux就该这么学 4 | Linux常用命令

作者: Ricsy | 来源:发表于2019-07-31 15:18 被阅读0次


    Linux命令组成

    • Linux命令一般格式:
      命令名称 [命令参数] [命令对象]

    注意:

    • 命令名称、命令参数、命令对象之间请用空格分隔
    • 命令对象一般是指要处理的文件、目录、用户等资源
    • 命令参数是为了让 Linux 系统命令能够更贴合用户的实际需求进行工作
    • 命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀
    • 长格式与长格式不可以合并;长格式与短格式不可以合并;短格式与短格式可以合并,合并后仅保留一个-(减号),ps连减号都可以不要
    项目 命令
    长格式 man --help
    短格式 man -h推荐

    命令在 Linux 中的执行分为 4 个步骤:

    • 第一步:
      判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话直接执行
    • 第二步:
      Linux 系统检查用户输入的命令是否为“别名命令”

    自定义的命令
    alias 别名=命令
    取消一个命令别名
    unalias 别名

    如:

    使用 rm 命令删除文件时,Linux 系统都会要求我们再确认是否执行删除操作,其实这就是 Linux 系统为了防止用户误删除文件而特意设置的 rm 别名命令
    alias rm=rm -i

    • 第三步:
      Bash 解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤 4 继续处理。可以使用type [命令]来判断用户输入的命令是内部命令还是外部命令
    • 第四步:
      系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作 PATH, 可以简单地把它理解成是“解释器的小助手”,作用是告诉 Bash 解释器待执行的命令可能存放的位置,然后 Bash 解释器就会乖乖地在这些位置中逐个查找。 PATH 是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到 Bash 解释器对Linux 命令的查找

    添加PATH
    PATH=$PATH:<绝对路径>


    查看命令的说明文档

    • 一般格式
      man [command]
      如:man ls
    man命令中常用按键 用途
    Space 向下翻一页
    PgDn 向下翻一页
    PgUp 向上翻一页
    Home 直接前往首页
    End 直接前往尾页
    / 从上至下搜索某个关键词,如“/linux
    ? 从下至上搜索某个关键词,如“?linux
    n 定位到下一个搜索到的关键词
    N 定位到上一个搜索到的关键词
    q 退出帮助文档
    man 命令帮助信息的结构 意义
    NAME 命令的名称
    SYNOPSIS 参数的大致使用方法
    DESCRIPTION 绍说明
    EXAMPLES 演示(附带简单说明)
    OVERVIEW 概述
    DEFAULTS 默认的功能
    OPTIONS 具体的可用选项(带介绍)
    ENVIRONMENT 环境变量
    FILES 用到的文件
    SEE ALSO 相关的资料
    HISTORY 维护历史与联系方式

    常用的系统工作命令

    1. eho

    在终端输出字符串或变量提取后的值
    echo [字符串|$变量]

    如:
    echo Ricsy

    echo $SHELL

    参阅:

    2. date

    显示及设置系统的时间或日期
    date [option] [+format]

    参数 作用
    %t 跳格[Tab 键]
    %H 小时(00~23)
    %I 小时(00~12)
    %M 分钟(00~59)
    %S 秒(00~59)
    %j 今年中的第几天

    如:

    • 按照默认格式查看当前系统时间
      date
    • 按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间
      date "+%Y-%m-%d %H:%M:%S"
    • 系统的当前时间设置为 2019年07月24日8点30分
      date -s "20190724 8:30:00"
      date

    • 查看今天是今年中的第几天
      date "+%j"

    3. reboot

    重启系统(仅限root用户)
    reboot

    4. poweroff

    关闭系统(仅限root用户)
    poweroff

    5. wget

    在终端中下载网络文件
    wget [option] [url]

    参数 作用
    -b 后台下载模式
    -P 下载到指定目录
    -t 最大尝试次数
    -c 断点续传
    -p 下载页面内所有资源,包括图片、视频等
    -r 递归下载
    6. ps

    查看系统中的进程状态
    ps [option]

    参数 作用
    -a 显示所有进程(包括其他用户的进程)
    -u 用户以及其他详细信息
    -x 显示没有控制终端的进程
    • 进程状态
    名称 含义
    USER 进程的所有者
    PID 进 程ID 号
    %CPU 运算器占用率
    %MEM 内 存 占用率
    VSZ 虚 拟 内 存使用量(单位是 KB)
    RSS 占用的固定内存量(单位是KB)
    TTY 所 在终端
    STAT 进程状态
    START 被启动的时间
    TIME 实际使用CPU的时间
    COMMAND 命令名称与参数
    • 在Linux 系统中,有 5 种常见的进程状态
    进程状态 代号 含义
    运行 R ➢进程正在运行或在运行队列中等待
    中断 S ➢进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
    不可中断 D ➢进程不响应系统异步信号,即便用 kill 命令也不能将其中断
    僵死 Z ➢进程已经终止,但进程描述符依然存在, 直到父进程调用 wait4()系统函数后将进程释放
    停止 T ➢进程收到停止信号后停止运行

    7. top

    用于动态地监视进程活动与系统负载等信息
    能够动态地查看系统运维状态,完全将它看作 Linux 中的“强化版的Windows 任务管理器”
    top

    行数 说明
    第1行 系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、 5分钟、 15 分钟内的平均值,数值越小意味着负载越低)
    第2行 进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
    第3行 用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比
    第4行 物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量
    第5行 虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量

    8. pidof

    查询某个指定服务进程的 PID 值
    每个进程的进程号码值(PID)是唯一的,因此可以通过 PID 来区分不同的进程
    pidof [option] [servicename]

    参数 作用
    -s 仅返回一个进程号
    -c 仅显示具有相同“root”目录的进程
    -x 显示由脚本开启的进程
    -o 指定不显示的进程ID

    如:
    pidof sshd

    9. kill

    终止某个指定 PID 的服务进程
    kill [option] [进程 PID]

    如:

    kill 13750

    10. killall

    终止某个指定名称的服务所对应的全部进程
    killall [option] [servicename]

    如:

    pidof sshd
    killall sshd

    提示:

    • 执行一个命令时想立即停止它,可以直接Ctrl+C,就会立即终止该命令的进程
    • 某些命令执行时会不断的往屏幕输出信息,影响后续命令的输入,可以采用再命令末尾加上&,使命令进入系统后台运行

    系统状态检测命令

    1. ifconfig

    获取网卡配置与网络状态等信息
    ifconfig [network device] [option]

    如:

    ifconfig

    2. uname

    查看系统内核与系统版本等信息
    uname (-a)

    如:

    uname
    uname -a

    • 查看当前系统版本的详细信息
      cat /etc/redhat-release

    3. uptime

    查看系统的负载信息
    uptime

    提示:

    • 显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。
    • 平均负载值指的是系统在最近 1 分钟、 5 分钟、 15 分钟内的压力情况;负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5

    4. free

    显示当前系统中内存的使用量信息
    free (-h)

    如:

    free
    free -h

    参数 含义
    total 内存总量
    used 已用量
    free 可用量
    shared 进程共享的内存量
    buff/cache 磁盘缓存的内存量/缓存的内存量

    5. who

    查看当前登入主机的用户终端信息
    who [option]

    如:

    who

    提示:

    • 对应用户名、终端设备、登录到系统的时间

    6. last

    查看所有系统的登录记录
    以日志文件形式存在于系统中,可被修改
    last [option]

    如:

    last

    7. history

    显示历史执行过的命令
    history (-c)

    提示:

    • 执行 history 命令能显示出当前用户在本地计算机中执行过的最近 1000 条命令记录
    • 如果觉得 1000 不够用,还可以自定义/etc/profile文件中的
      HISTSIZE变量值
    • 在使用 history 命令时,如果使用-c 参数则会清空所有的命令历史记录
    • 使用!编码数字的方式来重复执行某一次的命令
    • 历史命令会被保存到用户家目录中的.bash_history即~/.bash_history

    如:

    history -c

    8. sosreport

    收集系统配置及架构信息并输出诊断文档
    sosreport


    工作目录切换命令

    1. pwd

    显示用户当前所处的工作目录
    pwd [option]

    如:

    pwd

    2. cd

    切换工作路径
    cd [path]

    命令 作用
    cd - 返回到上一次所处的目录
    cd .. 进入上级目录
    cd ~ 切换到当前用户的家目录或“cd ~username”切换到其他用户的家目录

    3. ls

    显示目录中的文件信息
    ls [option] [filename]

    提示:

    参数 含义
    -a 看到全部文件(包括隐藏文件)
    -l 查看文件的属性、大小等详细信息
    -h 人性化输出信息

    如:

    ls -alh


    文本文件编辑命令

    1. cat

    查看纯文本文件(内容较少的)
    cat [option[-n 显示行号]] [filename]

    如:

    cat -n /etc/ssh/ssh_config

    2. more

    查看纯文本文件(内容较多的)
    在最下面使用百分比的形式来提示您已经阅读了多少内容
    more [option] [filename]

    提示:

    • 空格或回车进行翻页

    如:

    more /etc/ssh/ssh_config

    3.head

    查看纯文本文档的前 N 行
    head [option[-n N]] [filename]

    如:

    head -n 10 /etc/ssh/ssh_config

    4. tail

    查看纯文本文档的后 N 行或持续刷新内容
    tail [option[-n N]] [filename]

    提示:

    • tail -f [filename]持续刷新一个文件的内容

    如:

    tail -n 10 /etc/ssh/ssh_config

    5. tr

    替换文本文件中的字符
    tr [原始字符] [目标字符]

    如:

    把文本内容中的英文全部替换为大写
    cat anaconda-ks.cfg | tr [a-z] [A-Z]

    6. wc

    统计指定文本的行数、字数、字节数
    wc [option] [filename]

    参数 含义
    -l 只显示行数
    -w 只显示单词数
    -c 只显示字节数

    如:

    wc anaconda-ks.cfg

    passwd 是用于保存系统账户信息的文件,要统计当前系统中有多少个用户
    wc -l /etc/passwd

    7.stat

    查看文件的具体存储信息和时间等信息
    stat [filename]

    如:

    stat anaconda-ks.cfg

    8. cut

    按“列”提取文本字符
    cut [option] [filename]

    提示:

    • -f 参数来设置需要看的列数
    • -d 参数来设置间隔符号

    如:
    head -n 2 /etc/passwd
    cut -d: -f1 /etc/passwd

    9. diff

    比较多个文本文件的差异
    diff [option] [filename]

    提示:

    • --brief 参数来确认两个文件是否不同
    • -c 参数来详细比较出多个文件的差异之处
    • 这绝对是判断文件是否被篡改的有力神器

    文件目录管理命令

    1. touch

    创建空白文件或设置文件的时间
    与stat搭配
    touch [option] [filename]

    参数 含义
    -a 仅修改读取时间(atime)
    -m 仅修改修改时间(mtime)
    -d 同时修改 atime与mtime

    如:

    touch test.txt

    stat anaconda-ks.cfg
    touch -d "2017-05-04 15:44" anaconda-ks.cfg

    2. mkdir

    创建空白的目录
    mkdir [option] [filename]

    提示:

    • 结合-p 参数来递归创建出具有嵌套叠层关系的文件目录

    3. cp

    复制文件或目录
    cp [option] [源文件] [目标文件]

    参数 含义
    -p 保留原始文件的属性
    -d 若对象为“链接文件”,则保留该“链接文件”的属性
    -r 递归持续复制(用于目录)
    -i 若目标文件存在则询问是否覆盖
    -a 相当于-pdr(p、d、r 为上述参数)

    4. mv

    剪切文件或将文件重命名
    mv [option] [源文件] [目标路径|目标文件名]

    提示:

    • 剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件
    • 如果在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名

    5. rm

    删除文件或目录
    rm [option] [filename]

    提示:

    • -f 参数来强制删除,不询问是否要执行删除操作
    • -r 参数用于删除一个目录

    6. dd

    按照指定大小和个数的数据块来复制文件或转换文件
    随意创建任意大小的文件
    dd 命令来压制出光盘镜像文件

    参数 含义
    if 输入的文件名称
    of 输出的文件名称
    bs 设置每个“块”的大小
    count 设置要复制“块”的个数

    如:

    用 dd 命令从/dev/zero 设备文件中取出一个大小为 560MB 的数据块,然后保存成名为 560_file 的文件
    dd if=/dev/zero of=560_file count=1 bs=560M

    7. file

    查看文件的类型
    file [filename]

    提示:

    • 由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用 file 命令来查看文件类型了

    打包压缩和搜索命令

    1. tar

    对文件进行打包压缩或解压
    tar [option] [filename]

    参数 含义
    -c 创建压缩文件
    -x 解开压缩文件
    -t 查看压缩包内有哪些文件
    -z 用 Gzip 压缩或解压
    -j 用 bzip2 压缩或解压
    -v 显示压缩或解压的过程
    -f 目标文件名(放到参数最后一位)
    `-p 保留原始的权限与属性
    -P 使用绝对路径来压缩
    -C 指定解压到的目录

    如:

    压缩
    tar -czvf [filename.tar.gz]
    解压
    tar -xzvf [filename.tar.gz]

    2. grep

    在文本中执行关键词搜索,并显示匹配的结果
    grep [option] [filename]

    参数 含义
    -b 将可执行文件(binary)当作文本文件(text)来搜索
    -c 仅显示找到的行数
    -i 忽略大小写
    -n 显示行号推荐
    -v 反向选择—仅列出没有“关键词”的行推荐

    如:

    /etc/passwd 文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用 grep 命令来查找出当前系统中不允许登录系统的所有用户信息
    grep /sbin/nologin /etc/passwd

    3. find

    按照指定条件来查找文件
    find [path] [条件] [操作]

    参数 含义
    -name 匹配名称
    -perm 匹配权限(mode 为完全匹配, -mode 为包含即可)
    -user 匹配所有者
    -group 匹配所有组
    -mtime -n +n 匹配修改内容的时间(-n 指 n 天以内, +n 指 n 天以前)
    -atime -n +n 匹配访问文件的时间(-n 指 n 天以内, +n 指 n 天以前)
    -ctime -n +n 匹配修改文件权限的时间(-n 指 n 天以内, +n 指 n 天以前)
    -nouser 匹配无所有者的文件
    -nogroup 匹配无所有组的文件
    -newer f1 !f2 匹配比文件 f1 新但比 f2 旧的文件
    --type b/d/c/p/l/f 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
    -size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查`找小于 50KB 的文件)
    -prune 忽略某个目录
    -exec …… {}\; 后面可跟用于进一步处理搜索结果的命令;{}表示find搜索到的每一个文件;;为结尾符

    如:

    在整个文件系统中找到属于root用户的文件并复制到/root/root
    find / -user root -exec cp -a {} /root/root/ \;


    更新中......


    相关文章

      网友评论

          本文标题:Linux就该这么学 4 | Linux常用命令

          本文链接:https://www.haomeiwen.com/subject/epsqrctx.html