• 测试工程师必备技能之Linux系统指令大全【多测师】


    linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植的操作系统接口) 和 UNIX 的多用户、

    多任务、支持多线程和多 CPU 的操作系统   ==》多测师_王sir原创

    OS(Operating System):常见的操作系统有哪些?

    centOS 6.5

    redhat 4.9

    ubuntu 14

     

    linux 客户端连接工具:

    SSH,Xshell(Xmanager 的一个组件),CRT

    在Xshell上输入"ssh +ip地址"可快速连接至虚拟机上

     

    :如SSH连接失败先执行下一步在连接。

    解决方法:确定SSHD服务开启没;

    开启命令:/etc/init.d/sshd restart

     

    Linux常用指令归纳:

    注:当有#符号时,表示此时为超级用户;当有$符号时,表示此时为普通用

    常用指令

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

    / :根目录

    . :当前目录

    .. :当前目录父目录(上一级目录

    ~ :表示家目录 宿主目录

    ls       显示文件或目录(但是不包含隐藏的文件)

    -rtl        根据时间排序显示

    -l           列出文件详细信息l(list)    ll=ls -l

    -a          列出当前目录下所有文件及目录,包括隐藏的a(all)

     

    cd /root/
    第一个/斜杠为根目录的意思
    第二个/斜杠为XX目录下的文件或者目录

     

    用ll查看文件最前面显示d 表示是目录 directory
    前面显示尾- 表示为普通文件

    ll 查看当前目录下面的文件以及目录(显示详细的信息)
    ls -l 查看当前目录下面的文件以及目录(显示详细的信息) ll就等于ls -l
    ls 查看当前目录下面的文件以及目录(不显示详细的信息)
    ls -a 查看当前目录下面的文件以及目录(包含隐藏的)
    ls -rtl 查看当前目录下面的文件以及目录(按照时间排序的)

    man ls 查看ls命令后面可以接哪些参数 退出命令行模式按住q quit退出

     

    mkdir            创建目录

         -p a/b/c    创建连接目录

    cd                 进入目录

    touch            创建空文件

    1.vim + 文件名
    2.在空白界面输入i,当左下角有insert出现,此时进入到编辑模式
    3.输入要编辑的内容,按住Ctrl+c,然后再按住caps lock+大写的ZZ
    注意点:千万不要按Ctrl+z和Ctrl+s==》会生成临时文件,导致文件
    不能编辑

    touch和vim创建文件的区别:
    touch创建文件,文件内容可以为空
    vim创建文件,文件内容不能为空,不然不能创建。

     

    less               查看文件内容

    more             查看文件内容

    cat                查看文件内容

    一个重定向符号 >
    cat aa.txt > cc.txt
    当目标文件不存在的时候,则新建目标文件,并且把源文件的内容复制到目标文件中
    cat aa.txt > bb.txt
    当目标文件存在的时候,则直接会把目标文件的内容进行覆盖

    俩个重定向符号 >>
    cat aa.txt >> dd.txt
    当目标文件不存在的时候,则新建目标文件,并且把源文件的内容复制到目标文件中
    cat aa.txt >> ee.txt
    当目标文件存在的时候,则直接会在目标文件的最尾处进行追加。

     

     

    cp                拷贝

    [root@localhost xiaowang]# cp xiaoliu wzq  ---将xiaoliu文件拷贝到wzq目录下

    绝对路径是从根目录/出发
    .代表的是当前目录
    ./当前目录下面
    相对路径的写法
    cp bb.txt aa/bb.txt
    cp bb.txt ./aa/dd.txt

    绝对路径的写法
    cp bb.txt /dcs2/aa/cc.txt

     

    mv                移动或重命名

    mv的用法:
    1.移动
    把文件移动到目录中去,把文件移动到文件中

    2.重命名
    当当前目录不存在则直接重命名
    当当前目录存在相同文件名,则会进行覆盖。

     

    rm                删除文件,不能删除目录

      -rf           强制删除(文件和目录都可以删除)

          -i            提示性删除(不能删除目录)

          -r            逐级删除直到全部删除( 从里到外的删除)

    find               在文件系统中搜索某文件

     

    [root@localhost /]# find /wangzhiqiang/xiaowang/ -type d     按文件目录类型查找

    /wangzhiqiang/xiaowang/

    /wangzhiqiang/xiaowang/wzq

    [root@localhost /]# find /wangzhiqiang/xiaowang/ -type f     按文件查找

    /wangzhiqiang/xiaowang/a

    /wangzhiqiang/xiaowang/c

    /wangzhiqiang/xiaowang/b

    [root@localhost /]# find /wangzhiqiang/ -size +1M    按文件大小,查找大于1M的文件

    /wangzhiqiang/apache-tomcat-7.0.56/webapps/cms.war

    /wangzhiqiang/apache-tomcat-7.0.56/webapps/cms/WEB-INF/lib/druid-0.2.15.jar

    /wangzhiqiang/apache-tomcat-7.0.56/webapps/cms/WEB-INF/lib/aspectjweaver-1.6.11.jar

     

    [root@localhost wangzhiqiang]# find /wangzhiqiang/ -mtime +1  ---目录下文件的“更改时间”在 1 天之前的绝对路径

     

    [root@localhost wangzhiqiang]# find . -mtime -1    ---目录下文件的“更改时间”在 1 天之内的绝对路径

    ./xiaowang

    ./xiaowang/yy/qq

     

    [root@localhost /]# find /wangzhiqiang/xiaowang/ -name laowang  根据名字查找

    /wangzhiqiang/xiaowang/laowang

    [root@localhost xiaowang]# find /wangzhiqiang/xiaowang/ -name laol*

    /wangzhiqiang/xiaowang/laoliu                "*"表示 0 个或多个字符匹配

    [root@localhost /]# find / -name laol??      "?"表示单个字符匹配,

    /wangzhiqiang/xiaowang/laoliu

     

    [root@localhost /]# ps -ef |grep 80  只查80端口(重点)

    [root@localhost /]# cat /etc/passwd |grep wangzhiqiang   只查“wangzhiqiang”用户

    wangzhiqiang:x:500:500:wangzhiqiang:/home/wangzhiqiang:/bin/bash

    grep:文本搜索工具   根据用户指定模式搜索

    [root@localhost /]# grep 'm...l' /etc/passwd  匹配任意单个字符

    mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

    wc        统计文本中行数、字数、字节或者字符数

    -l          统计行数

    -c         统计字节数

    nl          显示多少行,将详细信息也显示

    rmdir     删除空目录(只能删除空目录 )

    pwd       显示当前目录

    ln          创建链接文件

      -s     软链接(接绝对路径,可以针对文件和目录创建软链接)

      -d     硬链接(只能针对文件,不能对目录操作,相当于就是备份)

    eg: [root@localhost xiaowang]# ln -s wzq zhiqiang

    lrwxrwxrwx. 1 root root    3 May  3 05:24 zhiqiang -> wzq

     

    cat、more、less  分页显示文本文件内容

    3个查看文件内容的命令:
    cat 文件名 查看文件的所有内容并且全部显示在控制台
    less 文件名 查看文件显示部分内容 按space键向下翻页,按b键向上翻页
    按住Ctrl+z键 结束
    more 文件名 以百分比的形式显示文件中的内容 按住enter键百分比增加
    按住Ctrl+z键 结束

     

     

    linux 如何显示一个文件的某几行(中间几行)

    head、tail    显示文件头、尾内容

    head 文件名 ==》默认查看文件的前面10行
    tail 文件名 ==》默认查看文件的后面10行

    head -n 5 head_tail.txt ==》查看前面5行
    tail -n 5 head_tail.txt ==》查看倒数的5行
    tail -n +5 head_tail.txt ==》从第5行开始显示到最后
    cat head_tail.txt|head -n 10 ==》显示前面10行
    cat head_tail.txt|head -n 10|tail -n +5 ==》显示5-10行
    cat head_tail.txt|head -n 10|tail -n 6 ==》显示5-10行
    cat head_tail.txt|tail -n +5|head -n 6 ==》显示5-10行
    cat head_tail.txt|tail -n 26|head -n 6 ==》显示5-10行

     

    date   显示时间

    date -s '2016-09-01 11:27:00'         root 用户修改系统时间

     

    系统管理命令

    who                   显示在线登陆用户

    whoami               显示当前操作用户

    hostname            显示主机名

    uname                显示系统信息

    getconf  LONG_BIT    显示内核信息

    top                    动态显示当前耗费资源最多进程信息

    eg:[root@localhost /]# top -d 10  每隔10s刷新一次

     

    ps                     显示瞬间进程状态  

    ps  –aux  列出目前所有的正在内存当中的程序  (a:显示其它用户启动进程  x:查看系统中属于自己的进程   u:启动这个进程的用户和它启动的时间)

    free -m            查看服务器内存使用

    du                     查看目录大小 du -h /home带有单位显示目录信息

    df                     查看磁盘大小 df -h 带有单位显示磁盘信息

    ifconfig              查看网络情况

    [root@localhost xiaowang]# ifconfig eth0 192.168.1.111 netmask 255.255.255.0  改临时IP

     

    service network restart:重启网卡  

    ping                  测试网络连通

     

    netstat    -anp      查看所有端口号(LISTEN表示端口被占用当中,最后一列显示被哪个服务所占用,显示的 LISTENING 并不表示端口被占用,不要和 LISTEN 混淆)

              -at       列出tcp所有的端口号

    [root@localhost bin]# netstat -anp|grep 8080

    tcp   0   0 :::8080              :::*           LISTEN      3442/java

    显示8080端口正被java程序所占用

    netstat -nultp    查看当前所有已经使用的端口情况

    lsof –i :8080        通过端口号查看应用程序,,,    

    ps -ef|grep 8080   通过端口号和服务进程的名称查看应用程序 grep是关键字搜索

    注:端口号的作用,主要是区分服务类别和在同一时间进行多个会话。

    clear                 清除当前屏幕的信息

    reset             清除屏幕上显示的所有信息

    history            打印历史命令

            -c         清除历史命令

    alias                  对命令重命名 如:alias if=ifconfig,另外解除使用unalias

     

    unalias             取消别名: unalias if   

     

    kill                杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

    Kill -9          不建议使用;当使用kill无法将进程杀死才使用该命令; 

    fdisk 格式化文件系统

    reboot    重启

    shutdown -h now  立即关机

    shutdown -h 120   2 分钟后关机

    init 0   关机

     

    打包压缩相关命令

    linux中的打包命令:(tar、tar.gz、zip包都可以对目录进行打包操作)
    tar包打包命令:tar -cvf aa.tar aa.txt
    解压前删除源文件:rm -i aa.txt
    tar包解压命令:tar -xvf aa.tar

    tar.gz打包命令:tar -zcvf aa.tar.gz aa.txt
    解压前删除源文件:rm -i aa.txt
    tar.gz包解压命令:tar -zxvf aa.tar.gz

    zip对文件进行打包
    zip打包命令:zip aa.zip aa.txt
    解压前删除源文件:rm -i aa.txt
    .zip包解压命令:unzip aa.zip

    zip对目录进行打包:zip -r bb.zip bb
    解压前删除源目录:rm -r bb
    zip对目录进行解压:unzip bb.zip

    gzip打包命令:gzip aa.txt
    解压命令:gunzip aa.txt.gz
    注意点:
    1.打包完成后源文件不存在,解压包之后之前的压缩包不存在
    2.gzip命令不能对目录进行打包操作、只能对文件

     

    rpm -ivh xxxx.rpm :安装 rpm 包 i:安装  v:进度  h:进度条

    yum  install lrzsz : yum install :在线安装指令   lrzsz: l:linux  rz:本地往linux中上传文件, sz:linux往本地下载文件   lrzsz:上传和下载的工具

    mysql:rpm -aq|grep -i mysql  :查询已经安装的mysql的程序包

       

    用户及用户组管理

    cat  /etc/passwd    存储用户账号

    cat  /etc/group       存储组账号

    cat  /etc/shadow    存储用户账号的密码

    cat  /etc/gshadow  存储用户组账号的密码

    useradd +用户名 增加用户名

    adduser+用户名  增加用户名

    passwd +用户名  修改用户的密码

    彻底删除一个用户:

    cd /usr/sbin

      (某些系统版本为bin文件夹)

    在这里输入: ./userdel -r 用户名     (前面的./一定要加上)

    groups+用户名:查用户属于哪个组

    userdel +用户名 删除用户名

    groupadd 组名 添加用户组

    groupdel 组名  删除用户组

    passwd root     给root设置密码

    把用户加入到组:

    gpasswd -a 用户 组名 把XX用户添加到XX组

    把用户从组删除

    gpasswd -d 用户 组名 把XX用户从XX组删除

     

    三剑客(针对文件和目录):

    chmod 修改文件权限,  chown 改变文件的属主   chgrp 改变文件属组

    d:文件类型(表示目录) l:表示链接文件  -:表示普通文件

    前三位:rwx:文件属主有读写执行的权限

    中间三位:r-x:用户所在的组用户只有读,执行权限

    后三位:--x :其它用户只有执行的权限

     

    eg: drwxr-xr-x.   4 root root  4096 May  2 06:14 wangzhiqiang

    d:文件类型(表示目录)

    前三位:rwx:文件属主有读写执行的权限,  (u:用户自己(文件属主))

    中间三位:r-x:用户所在的组用户只有读和执行的权限,(g:用户所在组)

    后三位:--x :其它用户只有执行的权限,   (o:其它用户)

    rwx  read=4 write=2读,写,execute=1 执行

     

    Eg:drwxr-x--x. 2 root root 4096 May 13 23:39 bin

    rwx  read=4 读,write=2 写,execute=1 执行

    [root@localhost xiaowang]# chmod -R 777 yy      修改yy目录以及yy目录下所有文件的权限

    drwxrwxrwx. 2 root root 4096 May  2 06:35 qq

    [root@localhost dcs36]# chmod 777 a 修改 a目录的权限但是a目录下面文件的权限不变

     

    读写执行权限详细解释:

    drwxr-x--x. 2 root    root     4096 Feb 22 23:00 dcs36

    1.表示root用户对dcs36目录有读写执行的权限

    2.表示和root用户在同一个组的其他用户对dcs36目录

    有读和执行的权限,但是没有写的权限。

    3.其他用户(去掉root用户和root用户在同一个组的其他用户)对

    dcs36目录只有执行的权限。

    读(r):可以对文件执行 cat、more、less、head、tail 等文件查看命令。

    写(w):可以对文件执行 vim修改文件数据的命令。但不能删除文件本身。

    执行(x):对文件拥有了执行权限。比如shell脚本运行./+文件名.sh。

    [user39@localhost bin]$ sh startup.sh user39这个用户去进行启动脚本显示拒绝访问

    Using CATALINA_BASE:   /apache-tomcat-7.0.56

    Using CATALINA_HOME:   /apache-tomcat-7.0.56

    Using CATALINA_TMPDIR: /apache-tomcat-7.0.56/temp

    Using JRE_HOME:        /usr

    Using CLASSPATH:       /apache-tomcat-7.0.56/bin/bootstrap.jar:/apache-tomcat-7.0.56/bin/tomcat-juli.jar

    touch: cannot touch `/apache-tomcat-7.0.56/logs/catalina.out': Permission denied

    /apache-tomcat-7.0.56/bin/catalina.sh: line 385: /apache-tomcat-7.0.56/logs/catalina.out: Permission denied

     

    先创建一个组:

    组中是没有用户的,这时候再添加一个和组同名的用户会报错如下:

    [root@localhost bin]# groupadd dcs21

    [root@localhost bin]# cat /etc/group

    [root@localhost bin]# useradd dcs21

    useradd: group dcs21 exists - if you want to add this user to that group, use -g.

    [root@localhost bin]# useradd dcs21 -g dcs21    #这里指的是创建一个用户dcs21并把这个用户添加到dcs21这个空的组当中。

    [root@localhost bin]# cat /etc/group

    [root@localhost bin]# groups dcs21

    dcs21 : dcs21  #添加了之后显示dcs21用户已经属于dcs21组了

     

    cat /etc/group|grep xiaoqiang   查看xiaoqiang组的gid即小组的id

    awk -F":" '{print $1"/t/t"$4}' /etc/passwd | grep '506'

    通过组id 506查到组内的用户

    如下:

    [root@localhost xiaoqiang]# awk -F":" '{print $1"/t/t"$4}' /etc/passwd | grep '506'

    xiaoqiang/t/t506

    xiaoyi/t/t506

    xiaosan/t/t506

     

    方法一:sftp: 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。

    sftp  root@+对方IP     在sftp环境下操作自己的机器需要在指令前加“l”如‘lls’

    passwd:对方密码  

    登入后如下:

    sftp> 

    eg:sftp> get /var/www/fuyatao/index.php   /home/fuyatao/
    这条语句将从远程主机的  /var/www/fuyatao/目录下将 index.php 下载到本地  /home/fuyatao/目录下。

    sftp>put /home/fuyatao/downloads/Linuxgl.pdf  /var/www/fuyatao/
    这条语句将把本地 /home/fuyatao/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var/www/fuyatao/ 目录下。

     

    方法二:scp:可以在2个linux之间复制文件(直接在本地root目录下输入以下命令)

     eg:scp /wangzhiqiang/xiaowang/yy    root@IP(对方的IP): /home/xiaoliu    将本机下的“yy”文件拷贝到对方的“xiaoliu”目录下

     eg:scp root@ IP(对方的IP): /home/xiaoliu /yy  /wangzhiqiang/xiaowang      将对方下的“yy”文件拷贝到本机的“xiaowang”目录下

     

     

    VIM 编辑

    Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 VIM是纯粹的自由软件。

    多种不同的模式:

    命令模式

    输入模式/插入模式

    末行模式:vim有许多内置命令,此模式即为其命令的接口

     

    i:insert, 在当前光标所在处前面,转换为输入模式

    I:在当前光标所在行行首,转换为输入模式

    a: append, 在当前光标所在处字符后方,转换为输入模式

    A:在当前光标所在行行尾,转换为输入模式

    o(new line): 在当前光标所在行的下方新建一个空白行,并转换为输入模式

    O:在当前光标所在行的上方新建一个空白行,并转换为输入模式

    cc删除当前行并进入编辑模式
    c$ 擦除从当前位置至行末的内容,并进入编辑模式
    s 删除当前字符并进入编辑模式
    S 删除光标所在行并进入编辑模式

     

    :w 将缓冲区写入文件:,即保存修改
    :wq 保存修改并退出,( 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间)
    :x 保存修改并退出(写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间)
    :q 退出,如果对缓冲区进行过修改,则会提示””
    :q! 强制退出,放弃修改


    dd 删除光标所在行
    x 删除当前字符
    X 删除前一个字符
    D 删除光标以及光标后所有内容
    yy 复制一行,此命令前可跟数字,表示复制多行,如6yy,表示从当前行开始复制6行移动光标按p进行粘贴

     

    :10,20y :复制第 10 行至第 20 行之间的内容,按下‘P’
    p 粘贴粘贴板的内容到当前行的下面(小写)
    P 粘贴粘贴板的内容到当前行的上面(大写)

    0 跳转至光标绝对行首

    $ 跳转至光标绝对行尾

     

    k,j,h,l上,下,左,右

    H 移动光标到当前屏幕上最上边的一行
    M 移动光标到当前屏幕上中间的一行
    L 移动光标到当前屏幕上最下边的一行

    编辑
    r 替换一个字符

    :/wang   根据字符查找       

    :nohl   取消标记      
    J 将下一行和当前行连接为一行

    u 撤销  相对于Windows的Ctrl+Z

    :10,20w  /xiaowang    将10到20行的内容单独创建到根目录下新建的“xiaowang”文件里

     

    :set nu :显示行号

    :set nonu :不显示行号

    :%s/xiaobai/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中 所有 xiaobai 为 sky 

    清除文件内容而不清除文件:true >文件名(在vim外面操作)

    :%s/xiaobai/sky/  后面不加g 只把第一行的第一个xiaobai改为sky  后面的不进行更改

     true >bb.txt /dev/null(在vim外面操作)

     

  • 相关阅读:
    GET: https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login? loginicon=true &uuid=odcptUu2JA==&tip=0
    00018_流程控制语句switch
    百度编辑器如何能实现直接粘贴把图片上传到服务器中?
    wangEditor如何能实现直接粘贴把图片上传到服务器中?
    tinymce如何能实现直接粘贴把图片上传到服务器中?
    kindeditor如何能实现直接粘贴把图片上传到服务器中
    B/S实现浏览器端大文件分块上传
    百度WebUploader实现浏览器端大文件分块上传
    WebUploader实现浏览器端大文件分块上传
    php实现浏览器端大文件分块上传
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/12864450.html
Copyright © 2020-2023  润新知