• Linux常用命令(精简版)


    前言

    2019年,去面试,差不多都要面试完了,面试官对我很满意,我对薪资很满意。 临走,面试官问了一个问题:你熟悉Linux 命令吗?

    我:略懂

    面试官:管道符号是啥?

    我:ps -ef ?grep?

    面试官:微微一笑。最后我如约没有收到offer。后面才知道,管道符号就是这个 “|”!!!

    在这里插入图片描述

    这是我头一次觉得Linux对我工作的重大影响,于是痛定思痛,开始撸Linux命令,并开始勤奋练习其他跟Linux命令相关的实操。

    1年后,入职一家公司,对方是做基金的平台的,专门调用基金的接口。对测试的要求就是:自己部署测试环境,自己写shell脚本(至少要会执行shell脚本)。当然这个时候,我早就已经驾熟就轻了,部署测试环境,查询数据库,查看日志,执行shell脚本操作数据库…这些都不在话下,成为团队的得力测试干将,1个月后,提前转正。

    为什么要跟大家分享这个小故事呢?因为我自己的亲身经历,告诉我,作为一名测试人员如果能够独立完成基于linux的测试环境搭建,区别于其他测试人员,是否更能体现出来你存在的价值。

    物以稀为贵,人掌握并精通越多的技能,不会错过机会也不会在工作中拖后腿被淘汰!

    软件测试工程师需要掌握linux系统的必要性?

    如果不是自己工作多年,大家可能会觉得Linux命令对我们最初的影响只是面试或者是笔试的一道题,但是对我们工作之后的深刻影响,要多年累积感悟才能知道。

    学习Linux,我认为有如下几个非常深刻的影响,也许会说服你去努力学习必备的Linux命令和操作技能。

    1)如果公司需要测试自己去部署测试环境,那么掌握必备的Linux命令以及如何部署tomcat+jdk下的测试环境,如何修改配置文件,如何配置环境变量,如何启动环境都是必须要掌握的!不然在整个测试团队,你自己就会显得弱小无辜又无助,最后可能是拖了团队的后腿!拖无止境!

    2)如果你需要自己通过查看日志去定位问题:那么你就需要学会利用Linux命令如何去查看日志,如何从快速哗啦啦闪过的日志里面查找关键字,如何从历史日志里面查找关键字搜索错误信息,并且copy关键日志信息给开发帮忙定位解决问题。

    3)如果需要在Linux服务器上执行一些定时任务,那么你还需要会写shell脚本。

    4)如果你做性能测试,需要监控服务器的性能,那么Linux的必备命令:top/ps/vmstat/sar…等命令,你必须要会,否则Linux服务器的性能分析,你只能望洋兴叹!

    5)如果你还是要做性能测试,要涉及到数据库的慢查询,那么你还是需要学会如何在Linux下操作数据库!命令不可少。

    6)性能测试里面,还会涉及到负载均衡、反向代理等各种各样的高端技术,那么你迟早都会要学会Linux,然后才能胜任工作!

    分享Linux各大场景常用命令

    find 查找文件/目录

    find -name april* #在当前目录下查找以april开始的文件
    find -name april* fprint file #在当前目录下查找以april开始的文件,并把结果输出到file中
    find -name ap* -o -name may* #查找以ap或may开头的文件
    
    • 1
    • 2
    • 3

    cd(change directory)切换目录

    cd #root根目录
    cd / #系统根目录
    cd ../../ #返回上上一层目录
    
    • 1
    • 2
    • 3

    ls/dir(list)列出目录下文件

    ls -a  (--all) #列出所有文件
    ls -d  (--directory) #列出目录
    ls -i  (--inode) #显示每个文件的inode号(索引节点号,可以理解为文件的存储地址)
    ls -l  (-long) #较⻓格式列出
    ls -lh (--human-readable)-l #人性化阅读输出
    
    • 1
    • 2
    • 3
    • 4
    • 5

    clear 清屏

    clear #清屏
    
    • 1

    dirs 显示目录记录

    dirs +n #显示从左边算起第n笔的目录
    dirs -n #退一级目录的路径
    dirs -l #显示目录完整的记录
    
    • 1
    • 2
    • 3

    mv(move)移动或更名现有的文件或目录

    mv -b (--backup) + 目标文件或路径 #移动到目标目录,若覆盖文件,则先备份
    mv -f (--force) + 目标文件或路径 #强制覆盖,没有目标文件时相当于备份
    mv -i (--interactive) + 目标文件或路径 #覆盖前先行询问用户
    mv -u (--update) + 目标文件或路径 #在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件
    示例:
    mv test /root #将test文件转移到root路径下
    mv test /root/test1 #将test文件转移到root路径下并重命名为test1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    pwd(print working directory)显示工作目录

    pwd #显示当前工作目录
    
    • 1

    rm(remove)删除文件或目录

    rm -d (-directory) #直接把欲删除的目录的硬连接数据删成0,删除该目录
    rm -f (--force) #强制删除文件或目录
    rm -i (interactive) #删除既有文件或目录之前先询问用户
    rm -r或-R (--recursive) #递归删除,防止目录里面有文件不能删除
    示例:
    rm test1 #删除test1文件
    rm test/a #删除test里面的a文件
    rm -f test1 #强制删除test1,不会有进一步的提示 
    rm -r test/ #删除名为test的文件夹
    rm -r test/a #删除test下的a文件夹
    rm -rf test/ #强制删除名为test的文件夹
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    mkdir(make directories)建立目录

    mkdir + 文件名 #创建目录
    mkdir -m (--mode) + a=权限+目录名 #设置目录权限(rwx) 例:mkdir -m a=rw bbb #创建目录bbb,权限为rw(a是模式固定写法)
    mkdir -p (--parents) + 父目录/子目录 #若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录 
    例1:mkdir -p 111/abc #创建abc目录,111为父目录 
    例2:mkdir -p /ms/{sales,hr,web} #创建一个名为/ms的目录,其中有sales、hr、web的子目录
    mkdir -pv + 目录名 #批量创建目录 例:mkdir -pv /tmp/test/{a1,b1}/{c1,d1}
    mkdir -v (--verbose) #创建目录,并显示详细信息
    示例:
    mkdir a #在当前目录创建名字为a的文件夹
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    rmdir 删除空目录

    rmdir + 目录名 #删除目录,注意必须是空目录
    rmdir -p + 目录/目录/目录 #删除指定目录及其上级文件夹 例:rmdir -p a/b/c
    
    • 1
    • 2

    echo 显示一行文本(可使用通配符,正则表达式)

    echo + 文本内容 #显示文本
    echo -n + 文本内容 #显示不带尾部回⻋符的文本
    echo -e + "文本内容" #允许使用转义字符输出文本 例:echo -e "a\nb\nc" 
    echo + 新文本内容 > 文件名 #重定向,清除源文件所有内容,并插入单行 例:echo"helloword">abc.txt
    echo + 新文本内容 >> 文件名 #追加重定向,在原有文件基础上末尾插入一行文本逐行
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ifconfig/ip addr(CentOS)显示或设置网络设备

    ifconfig #处于激活状态的网络接口
    ifconfig -a #所有配置的网络接口,不论其是否激活
    
    • 1
    • 2

    ping 检测主机(127.0.0.1为主机,可以检验网卡,用于检测内网)

    ping + ip/域名 #检测外网
    
    • 1

    tar(tape archive)解压缩文件

    -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 -czvf + 压缩文件名 源文件名 #将a1文件打包并且压缩 例:tar -czvf a1 g.gz
    tar zxvf + 目标文件 #解压 例: tar zxvf ar_test.tar.gz #解压ar_test.tar.gz压缩包
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    date 显示系统时间

    date #打印时间
    date -s + 时间 #设置时间 例:date -s '14:35:40' 
    date + %m%d%H%M%S #按照格式输出时间
    
    • 1
    • 2
    • 3

    su 切换用户

    su + 用户名 #切换到用户
    sudo + 命令 #在root用户下执行一条命令
    sudo su #下面的命令都用root用户执行
    su root #CentOS下切换root用户的一种方式
    
    • 1
    • 2
    • 3
    • 4

    cp(copy)拷⻉文件

    cp -p + 文件名 路径 #将文件拷⻉到指定路径,并且保留原文件的属性
    例:cp -p test.rb /home/test #将test.rb拷⻉到test目录
    cp -r + 源目录名 目标目录名 #将某目录copy到目标目录下
    例:cp -r dir/ /home/test #将dir目录copy到test目录下
    cp -fr + 源目录下文件名 目标目录名 #将源目录下文件名文件强制copy到目标目录下 
    例:cp -fr dir/* /home/test #将dir下面的所有文件强制copy到test目录下
    cp test.rb{,.bak} #备份test.rb,并在尾部加上.bak后缀
    cp -u -v file1 file2 #复制文件,只有源文件较目的文件的修改时间新时,才复制文件
    cp file1 file2 #将文件file1复制成文件file2
    cp -i file1 file2 #采用交互方式将文件file1复制成文件file2
    cp -p a.txt tmp/ #复制时保留文件属性
    示例:
    cp test test1 #复制一个test文件命名为test1 
    cp -r test test1 #复制test文件夹命名为test1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    chmod 改变文件/目录的权限

    chmod ugo+r 文件 #所有人皆可读取
    chmod a+r 文件 #所有人皆可读取
    chmod ug+w,o-w 文件 #设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
    chmod u+x 文件 #创建者拥有执行权限
    chmod a-x 文件 #收回所有用户的对文件的执行权限
    chmod 777 文件 #所有人可读,写,执行
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    cat 查看文件内容

    cat + 目标文本 #普通输出
    cat -n 目标文本 #开头显示行号
    cat -E 目标文本 #以$结束
    cat -ns 目标文本 #去空行,加行号
    tac + 目标文本 #反方向查看文件内容
    
    • 1
    • 2
    • 3
    • 4
    • 5

    touch 创建文件

    touch + 文件名 #将文件的创建时间改为当前时间,文件不存在则创建
    例:touch test.php #将test.php的档案时间改为当前时间,文件不存在则创建
    touch -c -t 时间 + 文件名 #将档案时间改为特定时间 
    例:touch -c -t 05061803 test.php #将档案时间改为5月6日18点3分
    touch -r 参考文件名 目标文件名 #将目标文件档案改成跟参考文件一样
    例: touch -r abc.php test.php #将test.php档案改成跟abc.php一样
    touch d 时间 文件名 #将文件日期改为特定天数时间
    例:touch -d "2 days ago" test.php #将test.php日期修改为2天以前
    示例:
    touch test #在当前目录创建名为test的文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    history 查看用户历史操作

    history #查看所有执行过的命令
    history n #显示n条历史记录
    !n #执行编号历史是n的命令,注意感叹号 例:!4 执行编号是4的命令
    history -c #清除历史记录
    
    • 1
    • 2
    • 3
    • 4

    id/who 查看用户

    id/who #显示当前用户的信息 
    id 某用户 #显示某用户的信息
    who -a #显示目前登入系统的用户详细信息 
    who -b #上次系统启动时间
    
    • 1
    • 2
    • 3
    • 4

    man 查看帮助文档

    man + 命令 #查看某命令手册
    
    • 1

    vi/vim(vi增强工具)编辑文本

    vim 文本名 #编辑某文本
    set nu (number) #vi/vim模式下显示行数
    进入文档后,点击 i 进入insert模式,在文档中输入文字,在当前光标处编辑,文档下面会有insert的标识 
    进入文档后,点击 a 可以编辑光标下一位
    退出编辑状态后,输入 Shift + g 即可立刻跳转到本文档最后
    点击 esc 按钮可以退出编辑状态
    : 输入冒号可以输入文档相关的指令
    wq 表示保存并退出
    q 表示退出
    q! 强制退出,不保存修改的内容
    退出编辑状态,点击 x 键可以删除1个字符,一次有效
    退出编辑状态,点击 dd 可以删除一行字符
    退出编辑状态,点击 r + 要替换的内容,即可将当前内容替换
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    sleep 休眠

    sleep n;命令 #n秒后,执行某命令,注意分号
    
    • 1

    shutdown/poweroff/halt 关机/重启命令

    shutdown -h now 或 /poweroff 或 halt #立刻关机
    shutdown -h 时间 #在特定时间关机
    shutdown -H now #立刻停机
    shutdown –r now 或 reboot #重启
    
    • 1
    • 2
    • 3
    • 4

    diff 比较两个文件的差异

    diff 文件1 文件2 #比较二个文件的不同
    diff 文件夹1/ 文件夹2/ #比较二个文件夹的不同
    diff -r 文件夹1/ 文件夹2/ #递归比较二个文件夹的不同
    
    • 1
    • 2
    • 3

    apt-get/yum/dnf 下载软件包命令

    apt-get install 软件/#安装包
    apt-get update 软件/#更新软件
    apt-get remove 软件/#卸载软件
    apt-get upgrade #更新已安装的包
    apt-get clean #清理无用的包
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ssh

    ssh 用户@ip地址 #远程ssh连接某主机
    
    • 1

    useradd 添加用户

    useradd 用户名 #添加某用户 
    用户名 passwd #为某用户添加密码 
    useradd -r 用户名 #添加系统用户
    useradd -d 路径 用户名 #添加用户,并且指定,home目录
    
    • 1
    • 2
    • 3
    • 4

    df 报告文件系统磁盘空间的使用情况

    df #列出各文件系统的磁盘空间使用情况 
    df -a #显示所有文件系统的磁盘使用情况
    df -ia #列出各文件系统ionde使用情况
    df -h (--human) #目前磁盘空间和使用情况,以更易读的方式显示
    
    • 1
    • 2
    • 3
    • 4

    lsof(list open files)是一个列出当前系统打开文件的工具

    lsof #列出所有正在使用文件
    lsof 文件名 #找出谁在使用某个文件
    lsof -c 程序 #查找某个程序打开的所有文件
    lsof -i #列出所有网络连接
    lsof -i TCP #列出所有TCP网络连接 
    lsof -i:端口号 #找到使用某个端口的进程
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    tail -f 滚动查看日志

    tail -f tet #滚动查看名字为tet的文档内容,不进入编辑界面 
    tail -f 1000 tet #滚动查看最后1000行文档内容
    
    • 1
    • 2

    其他

    echo aaaaa >> tet #将字符串“aaaaa”,追加到名为tet文档的最后 
    echo dddd > tet #用字符串“dddd”替换原来tet中所有的文档
    ls >> tet #将ls指令显示的内容追加到文档tet中
    ps -ef #查看linux下的所有进程
    ps -ef | grep www* #查看所有带www的进程
    kill -9 进程号 #可以关掉对应的进程
    kill -15 进程号 #等该进程运行完就关闭该进程
    apt-get install 软件包名 #下载并安装对应的软件包名 
    useradd daxia #新增一个名为daxia的用户
    passwd daxia #设置daxia用户的密码 
    su daxia #切换到daxia用户
    whoami #查看当前用户
    history #查看历史指令
    chmod #修改文件权限详解
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    如果我的博客对你有帮助,欢迎“点赞” “评论” “收藏” 一 键三连哦,更多资料,可关注公众号 [ 程序员一凡 ] 自取,我也整理了测试工作需要用到的150个常用Linux命令免费获取
    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    计算机竞赛 题目:基于深度学习的中文汉字识别 - 深度学习 卷积神经网络 机器视觉 OCR
    三分钟带你手撕带头双向循环链表
    Mybatis学习笔记10 高级映射及延迟加载
    python中__init__subclass__方法用法详解
    毕设 小区物业管理论文
    Leetcode1608. 特殊数组的特征值
    我的创作纪念日
    初识CNN1
    VBA技术资料MF63:遍历形状并改变颜色
    othofinder跑出来结果缺少single_copy_othologue_sequences.
  • 原文地址:https://blog.csdn.net/weixin_56502375/article/details/126744892