• 程序员必须掌握的Linux命令


    在文章最前面给大家推荐一个查询Linux命令的网站,如果man命令里面的英文文档看不懂,可以去这个网站里面查询。点击这里 下面介绍的命令为了避免篇幅太多,也不会展示全部参数,大家也可以去这个网站进程详细的查询。

    man:帮助命令

    ​ 示例:man ps

    ​ 这条指令会显示出关于ps命令的详细说明。下图是man命令中常用的案件以及说明。

    echo:输出

    ​ 示例1:echo Hello Linux

    ​ 这条指令会打印出Hello Linux。

    ​ 示例2:echo $SHELL

    ​ $的作用是获取变量的值,这条指令会打印出变量SHELL的值。

    date:时间

    ​ 格式为:date [选项] [指定输出格式]

    ​ 示例1:date

    ​ 以默认格式输出当前系统时间。

    ​ 示例2:date "+%Y-%m-%d %H:%M:%S"

    ​ 以指定格式输出当前系统时间,如:2020-09-20 12:15:38

    ​ 下图为date命令中的参数以及作用

    reboot:重启

    ​ 这条指令用于重启系统,默认只能由root用户来重启。

    poweroff:关闭系统

    ​ 这条指令用于关闭系统,默认只能由root用户来关闭。

    wget:下载

    ​ wege命令用于在终端中下载网络文件,格式为:wget [参数] 下载地址

    ​ 示例:wget http://localhost/test.txt

    ​ 下图为wget命令的参数以及作用

    ps:查看进程状态

    ​ ps命令用于查看系统中的进程状态。

    ​ 示例:ps -a

    ​ 以上指令会显示所有进程。下图为ps命令的参数以及作用。

    top:任务管理器

    ​ top命令可以动态的监视进程活动以及系统的负债信息,相当于Windows系统中的任务管理器。

    ​ top命令使用起来非常简单,不需要额外参数,但是需要看懂里面的信息。以下图为例,简单的介绍下各行各列代表的意思。

    ​ 第一行:系统时间、运行时间、登陆的终端数、系统负载(三个值分别代表1分钟、5分钟、15分钟内的平均值,数值越小说明负载越低)。

    ​ 第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

    ​ 第三行:第一个代表用户占用资源百分比、第二个系统内核占用资源百分比。

    ​ 第四行和第五行分别代表物理内存的信息和虚拟内存的信息。

    pidof:查询某个指定进程的PID值

    ​ 这个命令使用格式为:pidof [参数] [服务名称]

    ​ 示例:pidof sshd

    ​ 这条指令会显示出sshd这个进程的PID。

    kill:终止某个进程

    ​ 使用格式为:kill [参数] [进程PID]

    ​ 示例:kill 666

    ​ 终止PID为666的进程。

    killall:终止某个服务的所有进程

    ​ 一般来说,复杂的程序会有多个进程同时提供服务,这个时候想结束这个程序的所有进程如果使用kill一个个结束就有点麻烦了,这个时候就可以用上killall

    ​ 示例:killall httpd

    ifconfig:查看网络配置以及信息

    ​ 这个命令可以用来查看本机的网卡名称、IP地址、MAC地址等网络信息。

    uanme:查看系统内核与版本信息

    ​ 示例:uname -a

    ​ 这条指令会显示出内核名称、主机名、发行版本、系统时间等信息。

    uptime:查看系统负载信息

    ​ 这个命令可以显示当前系统的时间、已运行时间、启动的终端数、平均负载值(1分钟、5分钟、15分钟)。

    free:查看内存信息

    ​ 示例:free -h

    ​ 这条指令会显示内存实时的使用量信息。

    who:当前登录用户的信息

    ​ 这个命令可以显示出所有正在登陆本机的用户名以及他们开启的终端信息。

    last:查看系统登录记录

    ​ 这个命令可以查看本机的登录记录。

    history:显示执行过的命令

    ​ 显示出命令记录后,我们可以使用“!行号数字”来重复执行一次某条命令。

    sosreport:收集系统信息并输出诊断文档

    pwd:显示当前用户所处的工作目录

    cd:切换工作路径

    ​ 这个命令应该是我们最常用的一个命令了,除了直接使用绝对路径来进行切换,还可以使用一些快捷方式来切换。

    ​ 示例1:cd - 返回之前的目录

    ​ 示例2:cd ~ 切换到家目录

    ​ 示例3:cd .. 返回上级目录

    ls:显示目录中文件的信息

    ​ 使用格式为:ls [参数] [文件]

    ​ 示例:ls -al

    ​ -a代表显示全部文件,包括隐藏文件。-l代表显示详情。

    cat:查看纯文本文件(内容较少)

    ​ 示例:cat -n readme.txt

    ​ -n可以显示行号

    more:查看纯文本文件(内容较多)

    ​ 示例:more readme.txt

    head:查看文本前N行

    ​ 示例:head -n 20 readme.txt

    ​ -n 20代表前20行。

    tail:查看文本后N行

    ​ 示例:tail -n 20 -f readme.txt

    ​ -n 20代表后20行。-f可以持续刷新这个文件,也就是说这个文本发生改变的话,我们能及时看到。

    tr:替换文本中的字符

    ​ 使用格式:tr [原始字符] [目标字符]

    ​ 示例:cat readme.txt | tr [a-z] [A-Z]

    ​ 这条指令中使用到了管道符‘|’,它的作用是把前面一条指令的输出当作后面一条指令的输入。所以整体的意思就是把readme.txt的小写字母换成大写字母。

    wc: 统计文本信息

    ​ wc命令可以统计指定文本的行数、字数、字节数,格式为:wc [参数] [指定文本]

    ​ 其参数如下图

    ​ 示例:wc -l readme.txt

    stat:查看文件存储信息

    ​ 示例:stat readme.txt

    cut:显示行中的指定部分

    ​ 示例:cut -d: -f1 readme.txt

    ​ 以冒号为间隔查询第一行

    diff:比较多个文本的差异

    ​ 示例:diff -q -c readme1.txt readme2.txt

    ​ 显示出readme1和readme2差异之处。

    touch:创建空白文件

    ​ 这个命令用于创建空白文件或设置文件的时间。格式为:touch [参数] [文件]

    ​ 如果是创建文件,就很简单,直接touch [文件名]

    ​ 如果是修改文件时间,则需要用到以下参数

    ​ 示例:touch -d "2020-09-20 20:20:20" readme.txt

    mkdir:创建空白目录

    ​ 示例:mkdir -p newDir/myDir

    ​ -p用于递归创建目录。

    cp:复制目录或文件

    ​ 下图为常用命令

    ​ 示例:cp readme1.txt /etc/readmeCopy.txt

    mv:剪切或重命名文件

    ​ 如果剪切后的目录不变,就是重命名。

    ​ 示例:mv readme.txt newName.txt

    rm:删除文件或目录

    ​ 示例:rm readme.txt

    dd:按照指定大小和个数复制文件

    ​ 下图为常用参数

    ​ 示例:dd if=/dev/zero of=newFile count=1 bs=560M

    ​ 这条命令的作用应该很清楚,其中块的大小设置为560M,个数为1。

    file:查看文件类型

    ​ 示例:file readme.txt

    tar:解压缩文件

    ​ 常用参数如下图。

    ​ 示例:tar -czvf etc.tar.gz /etc

    ​ 把目录压缩为etc.tar.gz。其中这四个参数这个缩写,但是需要注意-f必须放在最后一位。

    grep:在文本进行关键词搜索

    ​ 这个命令也是会经常使用到的,常用参数如下图。

    ​ 示例:grep word readme.txt

    ​ 在readme.txt中搜索word这个单词。如果我们把grep换成grepE,则搜索的单词可以写成正则表达式。

    find:按照指定条件查找文件

    ​ 常用参数如下图。

    ​ 示例:find /etc -name "host*" -print

    ​ 显示/etc目录下host开头的文件。

    useradd:创建新的用户

    ​ 这个命令的参数如下图

    ​ 示例:useradd -d /home/linux -u 8888 newUser

    ​ 这条指令中-d指定了这个新用户的家目录。-u为其指定UID。需要注意的是Linux系统中系统管理员的UID为0.系统用户UID为1~999.普通用户UID从1000开始。所以如果我们不指定UID,默认的是从1000开始的。新建完用户之后记得用后面的passwd为其设置密码。

    groupadd:创建用户组

    ​ 在上面一个指令中,如果创建用户时不指定一个用户组,那么就会默认创建一个与用户同名的用户组。如果你需要指定一个用户组,那么这个用户组必须存在。那么我们就可以用上这个命令了。

    ​ 示例:groupadd admin

    usermod:修改用户属性

    ​ 学过Linux系统都应该听说过Linux系统中的一切都是文件,因此用户也不例外。用户的信息保存在/etc/passwd文件中。可以直接使用文本编辑器来修改,也可以使用usermod这个命令来修改。

    ​ 这个命令的参数如下图

    ​ 示例:usermod -u 6666 newUser

    passwd:修改用户密码

    ​ passwd用于修改用户密码、过期时间、认证信息等。普通用户只能用它来修改自身的密码。只有root管理员才能使用其他功能,而且root管理员修改自身和他人密码时不需要验证旧密码。

    ​ 这个命令的参数如下图

    ​ 示例:passwd

    ​ 如果是root用户只需要输入两次新密码即可。如果需要使用其他参数只需要在passwd命令加上对应的参数即可。

    ### userdel:删除用户
    

    ​ 示例:userdel -r -f newUser

    ​ -r的作用是强制删除用户、-f的作用是同时删除用户的家目录。

    su:切换用户身份

    ​ 如果在学习环境下,我们可以使用的都是root身份,但是实际工作环境中,肯定不会让你这么干。前面我们也学了新建用户的命令,现在就用su命令来切换到这个账号。

    ​ 示例1:su - newUser

    ​ 如果是root用户切换到普通用户,是不需要输入密码的。这条指令中-的作用是把环境变量信息也变更为新用户对应的信息。建议在切换用户时加上这个减号。

    ​ 如果是普通用户切换到root,则需要输入密码。

    ​ 示例2:su - root

    ​ 输入这条指令后,终端就会显示Password,需要你输入密码。

    id:显示用户信息

    ​ 示例:id newUser

    文中图片摘自《Linux就该这么学》

  • 相关阅读:
    年终盘点 | 七年零故障支撑 双11 的消息中间件 RocketMQ,怎么做到的?
    刚刚,阿里云知行动手实验室正式开放公测了
    dubbogo 3.0:牵手 gRPC 走向云原生时代
    一个改变世界的“箱子”
    我看技术人的成长路径
    云原生体系下的技海浮沉与理论探索
    分布式事务框架 seata-golang 通信模型详解
    Serverless 如何落地?揭秘阿里核心业务大规模落地实现
    Github 2020 年度报告:你以为新冠击溃了开发者?不!他们创造了更多代码...
    493. Reverse Pairs
  • 原文地址:https://www.cnblogs.com/lbhym/p/13707281.html
Copyright © 2020-2023  润新知