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

    Linux虽然是免费的,但它的确是一个非常优秀的操作系统,与MSWINDOWS相比具有可靠、 稳定、速度快等优点,且拥有丰富的根据UNIX版本改进的强大功能。下面让我们一起来学习Linux的一些主要命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的。

    sbin
    系统底层命令存放目录
    bin 
    一般用户常用命令目录 

         
    一年多linux(字符界面)使用记录大概使用了以下命令,我按照自己意思把linux(centos)命令大概分为几种类型,有些也不是很合理的分类:

    文件用户管理 
    ls -lh 显示权限
    cp   -r 复制文件 文件夹 
    mkdir  test 创建文件夹
    rm    -rf  删除文件 文件夹
    mv   源目录 目标目录 移动文件或者文件夹
    touch   建立空文件
    ln -s  源文件路径 目标文件
    cp -rf  r代表递归目录 f代表不提示强制
    passwd user1 修改一个用户的口令 (只允许root执行
    usermod -g 组名 用户名 改变用户所在组
    usermod -d 目录名 用户名 改变用户登入初始 所在目录
    useradd 添加用户 
    useradd -g 组名 用户名
    userdel 删除用户 -r
    groupadd groupname 组添加
    groupdel groupname 组删除
    chmod 权限编号 用户名 
    chgrp testgroup test3.txt 改变文件所属组
    chgrp -R testgroup testdir/ 改变目录所属组
    chown testuser test.txt 改变文件拥有者
    chmod a+x  改变文件权限 可执行
    chattr 改变文件的特殊属性
    chattr +a file1 只允许以追加方式读写文件
    lsattr file 显示文件的特殊属性!
    umask 改变预设的建立文件或目录时的属性
    cat  file 由第一行开始显示文件内容
    tac  file 从最后一行开始显示,可以看出 tac cat 的倒着写!
    more file   一页一页的显示文件内容
    less file more 类似,但是比 more 更好的是,他可以往前翻页!
    head file 只看头几行
    tail file 只看尾巴几行
    nl   file 显示的时候,顺道输出 行号!
    od   file 以二进制的方式读取文件内容!
    gzip   压缩  zaa.zip 文件名称     -r aa.zip 目录路径  代表压缩目录    -m代表删除源文件
    unzip  解压缩 -x abc 排除abc文件外 其他都解压
    rpm -qa | grep 软件包名称 查看是否安装该软件
    rpm -ivh 软件包名称 安装软件
    rpm -e 卸载软件 
    make 多文件编译
    tar -zvxf filename.tar 打开压缩文件 
    rpm -ql | grep mysql 查找mysql已安装的包
    rpm -e 包的名字 ,强制删除加参数 --nodeps
    rpm -qa 显示系统中所有已经安装的rpm 
    yum install 包名字 yum安装
    yum remove 包名字   yum删除 
    yum list 列出当前系统中安装的所有包
    file 可以用来查看这个文件的类型
    diff 这个指令可以将『两个文件之间的差异性列出来』
    patch 来进行更新,将 expatch.old 更新到 expatch.new 
    patch -p0 < expatch.patch
    ldd /usr/bin/passwd 判断某个可执行的 binary 文件含有什么动态函式库
    which   查看可执行文件的位置
    whereis 查看文件的位置
    locate  配合数据库查看文件位置
    vi  
    编辑文件内容 通用
    grep -n "关键字" 文件 查找文件内容
    find 查找文件

    find   -size   +1000000c   -print         #查长度大于1Mb的文件

    find /home -mmin    +60     # /home下查60分钟前改动过的文件

    find   /home   -size   +512k                # 查大于512k的文件

    find    /   -mmin   -5          # 查找在系统中最后5分钟里修改过的文件 
    ls a*  a开头所有
    ls a?  a开头只有两个字符的
    ls abc[1-6] 以开始abc后面1-6数字结尾的文件
    ls cmd  输出文件夹内容
    ls -ahl  查看文件所在组

    磁盘管理 
    ls   查看目录
    cd   进入目录  ..代表上一级  cd直接进入工作目录  .代表当前目录 
    pwd  显示当前目录
    df  /目录 查看目录在系统分区挂载点
    mount  /目录 挂载目录
    umount  /目录 卸载挂载点
    head -n 1 /etc/issue 查看操作系统版本
    cat /proc/cpuinfo 查看CPU信息
    hostname 查看计算机名
    lspci -tv 列出所有PCI设备  (centos6)需要安装 pciutils
    lsusb -tv 列出所有USB设备  (centos6)需要安装 usbutils
    lsmod 列出加载的内核模块
    env 查看环境变量
    echo $path 查看环境变量
    free -m 查看内存使用量和交换区使用量
    du -sh <目录名> 查看指定目录的大小
    grep MemTotal /proc/meminfo 查看内存总量
    grep MemFree /proc/meminfo 查看空闲内存量
    uptime 查看系统运行时间、用户数、负载
    cat /proc/loadavg 查看系统负载
    sar 来看系统的资源
    du 来知道目前磁盘的文件容量
    hdparm -i /dev/hda 查看磁盘参数(仅适用于IDE设备)
    dmesg | grep IDE 查看启动时IDE设备检测状况
    dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份
    dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份
    restore -if /tmp/home0.bak 还原一个交互式备份

    网络通讯 
    netstat -lntp  查看所有监听端口
    netstat -antp   查看所有已经建立的连接
    netstat  -s  查看网络统计信息
    traccroute  追踪路由
    route -n 查看路由表
    ping  查看网络是否畅通

    系统管理 
    chkconfig --list 列出所有系统服务
    chkconfig --list | grep on 列出所有启动的系统服务
    cut -d: -f1 /etc/passwd 查看系统所有用户
    cut -d: -f1 /etc/group 查看系统所有组
    crontab -l 查看当前用户的计划任务
    crontab -e  例行性工作编辑
    ifconfig 查看ip配置
    kill  杀死进程    -9 强制杀死
    ps -aux   查看进程信息
    top    显示系统重要信息 包括内存 cpu 负载 登入用户
    setup 图形化界面配置系统信息
    runlevel 显示当前运行级别
    w 查看活动用户
    id <用户名> 查看指定用户信息
    last 查看用户登录日志
    who 问问自己是谁
    exit 退出当前用户
    uname -a 查看内核/操作系统/CPU信息
    fdisk -l 查看所有分区
    echo $0       查看系统当前用户转换后的shell
    echo $shell   查看系统默认使用shell
    /etc/shells  查看shell列表
    sh  转换sh
    bash 转换bash
    redhat
    系统   chsh -s 转换shell 需要注销才能转换不同的shell
    shutdown  关机相关 -h 关机 -r now  重启
    su - user 切换用户
    su 切换root 
    reboot 系统重启
    mount | column -t  看挂接的分区状态
    swapon -s 查看所有交换分区
    iptables -L 查看防火墙设置
    mke2fs  建立Linux系统使用的ext2文件系统
    fsck 检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查修理磁盘 
    mkfs.ext3  建立为ext2/ext3文件系统
    dumpe2fs 查看特定设备上现存的文件系统的超级块(super block)和块群(blocks group)的信息
    mkswap /dev/hda3 创建一个swap文件系统 
    service 服务名称 restart stop start 服务重启等

    其他 
    history  查看历史命令
    clear  清理屏幕
    su  切换超级管理用户
    sudo passwd root  超级管理用户密码
    bc  计算器
    cal  日期  
    date   时间 

    wall   发送消息给所有登入用户
    write 发送消息给某个用户
    mesg  阻挡其他用户传递过来的消息
    mail  发送邮箱给用户
    pidof  找出某支正在运行的程序的 PID
    fuser 藉由文件(或文件系统)找出正在使用该文件的程序
    vmstat  侦测系统资源变化
    dmesg  分析核心产生的信息

    ------------------------------------------

    下面是比较重要的命令详解  经常用到
    top
    pssetup命令详解,vi使用

    1 top命令 

         top
    命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。

    top 显示结果如下所示:

    01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 
    Tasks: 29 total,  1 running, 28 sleeping,  0 stopped,  0 zombie 
    Cpu(s): 0.3% user, 1.0% system, 0.0% nice, 98.7% idle, 0.0% wa, 0.0% hi, 0.0% si 
    Mem:   191272k total,  173656k used,   17616k free,   22052k buffers 
    Swap:  192772k total,       0k used,  192772k free,  123988k cached 

      PID USER     PR NI VIRT RES SHR S %CPU %MEM   TIME+ COMMAND 
    1379 root     16  0 7976 2456 1980 S 0.7 1.3  0:11.03 sshd 
    14704 root     16  0 2128 980 796 R 0.7 0.5  0:02.72 top 
        1 root     16  0 1992 632 544 S 0.0 0.3  0:00.90 init 
        2 root     34 19    0   0   0 S 0.0 0.0  0:00.00 ksoftirqd/0 
        3 root     RT  0    0   0   0 S 0.0 0.0  0:00.00 watchdog/0
    统计信息区 

    前五行是系统整体的统计信息。

    第一行是任务队列信息 ,同uptime命令的执行结果。其内容如下:
    01:06:48 
    当前时间
    up 1:22  
    系统运行时间,格式为时:
    1 user  
    当前登录用户数
    load average: 0.06, 0.60, 0.48
    系统负载,即任务队列的平均长度。
    三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。
    第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
    Tasks: 29 total  
    进程总数
    1 running        
    正在运行的进程数
    28 sleeping      
    睡眠的进程数
    0 stopped        
    停止的进程数
    0 zombie         
    僵尸进程数
    Cpu(s): 0.3% us  
    用户空间占用CPU百分比
    1.0% sy          
    内核空间占用CPU百分比
    0.0% ni          
    用户进程空间内改变过优先级的进程占用CPU百分比
    98.7% id         
    空闲CPU百分比
    0.0% wa          
    等待输入输出的CPU时间百分比
    0.0% hi  
    0.0% si  

    最后两行为内存信息。 内容如下:
    Mem: 191272k total
    物理内存总量
    173656k used     
    使用的物理内存总量
    17616k free      
    空闲内存总量
    22052k buffers   
    用作内核缓存的内存量
    Swap: 192772k total
    交换区总量
    0k used          
    使用的交换区总量
    192772k free     
    空闲交换区总量
    123988k cached   
    缓冲的交换区总量。
    内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
    该数值即为这些内容已存在于内存中的交换区的大小。
    相应的内存再次被换出时可不必再对交换区写入。
    进程信息区

    统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

    序号  列名  含义

    a    PID  
    进程id
    b     PPID 
    父进程id
    c     RUSER Real user name
    d     UID  
    进程所有者的用户id
    e     USER 
    进程所有者的用户名
    f     GROUP
    进程所有者的组名
    g     TTY  
    启动进程的终端名。不是从终端启动的进程则显示为?
    h     PR   
    优先级
    i     NI    nice
    值。负值表示高优先级,正值表示低优先级
    j     P    
    最后使用的CPU,仅在多CPU环境下有意义
    k      %CPU 
    上次更新到现在的CPU时间占用百分比
    l     TIME 
    进程使用的CPU时间总计,单位秒
    m     TIME+
    进程使用的CPU时间总计,单位1/100
    n     %MEM 
    进程使用的物理内存百分比
    o     VIRT 
    进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES
    p     SWAP 
    进程使用的虚拟内存中,被换出的大小,单位kb
    q     RES  
    进程使用的、未被换出的物理内存大小,单位kbRES=CODE+DATA
    r     CODE 
    可执行代码占用的物理内存大小,单位kb
    s     DATA 
    可执行代码以外的部分(数据段+)占用的物理内存大小,单位kb
    t     SHR  
    共享内存大小,单位kb
    u     nFLT 
    页面错误次数
    v     nDRT 
    最后一次写入到现在,被修改过的页面数。
    w     S    
    进程状态。
    D=
    不可中断的睡眠状态
    R=
    运行
    S=
    睡眠
    T=
    跟踪/停止
    Z=
    僵尸进程
    x     COMMAND
    命令名/命令行
    y     WCHAN
    若该进程在睡眠,则显示睡眠中的系统函数名
    z     Flags
    任务标志,参考sched.h
     
    默认情况下仅显示比较重要的PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND列。可以通过下面的快捷键来更改显示内容。
    ------------------------------------------

    2 ps 命令说明 
        ps
    命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的

    top 显示结果如下所示:


    USER      PID       %CPU    %MEM    VSZ    RSS    TTY    STAT    START    TIME    COMMAND
    root          3532    0.0    0.2    2428    452    ?    Ss    20:40    0:00    gpm -m /dev/input/mice -t imps2

        USER:说明该程序是属于哪一个人的;
        PID
    :该程序的代号;
        %CPU
    :代表该程序使用了多少 CPU 资源;
        %MEM
    :代表该程序使用了多少的 RAM
        VSZ, RSS
    :占去的 ram 的大小( bytes );
        TTY
    :是否为登入者执行的程序?若为 tty1-tty6 则为本机登入者,若为 pts/?? 则为远程登入者执行的程序
        STAT
    :该程序的状态,( R )为可执行的,( S )为该程序正在睡眠中,就是没有执行了,( T )正在侦测或者是停止了,( Z )僵尸程序,就是 zombie 死掉的程序啦!需要以 kill 除去啰!
        START
    :该程序开始的日期;
        TIME
    :该程序跑了多久的时间?
        COMMAND
    :该程序的内容啦!
    ------------------------------------------

    3 setup介绍 
           setup
    redhat系列(包括centos,fedora等)里很好用的一个工具,不过可惜的是其它发行版里并没有。

    为了系统的干净高效,安装系统时使用centos 6最小化安装(为了可以手工编译一些软件包,在安装时选择了马上定制,多选择了开发工具),装完了配置系统时,发现没有setup这个工具,whereis setup ,结果是空的。yum install setup, 系统提示已经安装了setup包。上网查,原来这个包的名字不叫setup, 而是setuptool,

    yum install setuptool

    不过运行这时setup只有Authentication configuration可用

    防火墙的配置包叫system-config-firewall, yum安装,自动安装两个依赖包:system-config-firewall-tui, system-config-firewall-base.

    通过yum list system-config*查询有好几个相关的包,应该都是与setup功能有关的

    system-config-firewall.noarch
    system-config-firewall-base.noarch
    system-config-firewall-tui.noarch
    system-config-date.noarch
    system-config-date-docs.noarch
    system-config-kdump.noarch
    system-config-keyboard
    system-config-kickstart.noarch
    system-config-language.noarch
    system-config-lvm.noarch
    system-config-network-tui.noarch
    system-config-printer
    system-config-printer-libs
    system-config-printer-udev
    system-config-services.noarch
    system-config-services-docs
    system-config-users.noarch
    system-config-users-docs.noarch
     

    另外还有一个服务配置工具,它的名字比较特殊,跟上面所述包名字完全不一样,它叫ntsysv
    运行yum install ntsysv 安装setup的服务设置工具
    不过,系统配置方面,能手工做就手工做,借助图形化工具不是提高水平的途径。

    setup是一个设置公用程序,提供图形界面的操作方式。在setup中可设置7类的选项:
      1.登陆认证方式 
      2.键盘组态设置
      3.鼠标组态设置
      4.开机时所要启动的系统服务
      5.声卡组态设置
      6.时区设置 
      7.X Windows组态设置 
    ------------------------------------------


    4 vi使用 

          vi编辑器是所有UnixLinux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于 UnixLinux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里畅行无阻。
        
    一般模式:  vi 处理一个文件的时后,一进入该文件就是一般模式了。在这个模式中,你可以使用『上下左右』按键来移动光标,您可以使用『删除字符』或『删除整行』来处理文件内容,也可以使用『复制、贴上』来处理您的文件数据。
       
    编辑模式: 在一般模式中可以处理删除、复制、贴上等等的动作,但是却无法编辑的!要等到您按下『i, I, o, O, a, A, r, R』等字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下上述的字母时,在画面的左下方会出现『 INSERT REPLACE 』的字样,才可以输入任何字来输入到您的文件中!而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式。
        
    指令列命令模式: 在一般模式当中,输入『 : / 』就可以将光标移动到最底下那一行,在这个模式当中,可以提供您『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号 等等的动作则是在此模式中达成的!

    一般模式:     移动光标
    h
    向左方向键
       
    光标向左移动一个字符
    j
    向下方向键
       
    光标向下移动一个字符
    k
    向上方向键
       
    光标向上移动一个字符
    l
    向右方向键
       
    光标向右移动一个字符
    [Ctrl] + [f]
       
    屏幕『向前』移动一页(常用)
    [Ctrl] + [b]
       
    屏幕『向后』移动一页(常用)
    [Ctrl] + [d]
       
    屏幕『向前』移动半页
    [Ctrl] + [u]
       
    屏幕『向后』移动半页
    +
       
    光标移动到非空格符的下一列
    -
       
    光标移动到非空格符的上一列
    n<space>
       
    按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
    0
       
    这是数字『 0 』:移动到这一行的最前面字符处(常用)
    $
       
    移动到这一行的最后面字符处(常用)
    H
       
    光标移动到这个屏幕的最上方那一行
    M
       
    光标移动到这个屏幕的中央那一行
    L
       
    光标移动到这个屏幕的最下方那一行
    G
       
    移动到这个文件的最后一行(常用)
    nG
       
    移动到这个文件的第 n 行。例如 20G 则会移动到这个文件的 20 (可配合 :set nu)
    n<Enter>
       
    光标向下移动 n 行(常用)
    一般模式:     搜寻与取代
    /word
       
    向光标之后寻找一个字符串名称为 word 的字符串。(常用)
    ?word
       
    向光标之前寻找一个字符串名称为 word 的字符串。
    :n1,n2s/word1/word2/g
       
    在第 n1 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !(常用)
    :1,$s/word1/word2/g
       
    从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
    :1,$s/word1/word2/gc
       
    从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给使用者确认(conform)是否需要取代!(常用)
    一般模式:     删除、复制与贴上
    x, X
        x
    为向后删除一个字符, X 为向前删除一个字符(常用)
    nx
       
    向后删除 n 个字符
    dd
       
    删除游标所在的那一整列(常用)
    ndd
       
    删除光标所在的向下 n 列,例如 20dd 则是删除 20 列(常用)
    d1G
       
    删除游标所在到第一行的所有数据
    dG
       
    删除游标所在到最后一行的所有数据
    yy
       
    复制游标所在的那一行(常用)
    nyy
       
    复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
    y1G
       
    复制游标所在列到第一列的所有数据
    yG
       
    复制游标所在列到最后一列的所有数据
    p, P
        p
    为复制的数据在光标下一行贴上,P 则为贴在游标上一行!(常用)
    J
       
    将光标所在列与下一列的数据结合成同一列
    c
       
    重复删除多个数据,例如向下删除 10 行,[ 10cj ]
    u
       
    复原前一个动作。(常用)
    进入编辑模式      
    i, I
       
    插入:在目前的光标所在处插入输入之文字,已存在的文字会向后退;(常用)
    a, A
       
    增加:由目前光标所在的下一个字开始输入,已存在的文字会向后退:(常用)
    o, O
       
    插入新的一行:从光标所在的下一行枝行首开始输入文字;(常用)
    r, R
       
    取代:r 会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
    Esc
       
    退出编辑模式,回到一般模式中(常用)
    指令列命令模式      
    :w
       
    将编辑的数据写入硬盘文件中(常用)
    :w!
       
    若文件属性为『只读』时,强制写入该文件
    :q
       
    离开 vi (常用)
    :q!
       
    若曾修改过文件,又不想储存,使用 ! 为强制离开不储存文件。
    :wq
       
    储存后离开,若为 :wq! 则为强制储存后离开(常用)
    :e!
       
    将文件还原到最原始的状态!
    ZZ
       
    若文件没有更动,则不储存离开,若文件已经经过更动,则储存后离开!
    :w [filename]
       
    将编辑的数据储存成另一个文件(类似另存新档)
    :r [filename]
       
    在编辑的数据中,读入另一个文件的数据。亦即将 filename』这个文件内容加到游标所在行后面
    :set nu
       
    显示行号,设定之后,会在每一行的前缀显示该行的行号
    :set nonu
       
    set nu 相反,为取消行号!
    n1,n2 w [filename]
       
    n1 n2 的内容储存成 filename 这个文件。
    :! command
       
    暂时离开 vi 到指令列模式下执行 command 的显示结果!例如[ :! ls /home ]

    ------------------------------------------

    命令查看帮助三种方式 

    info command
    command --help
    man  command

  • 相关阅读:
    postman批量运行和参数化
    Loadrunner 参数化数据分配方法以及数据更新方式
    常用函数
    获取 layer.msg 弹窗的信息
    登录页脚本小结
    关于linux下system()函数的总结
    请不要重复犯我在学习Python和Linux系统上的错误
    教你摸清 Linux PC 的性能底细?
    Ubuntu GNOME 16.10 Beta 1问世了!
    Google疯了,竟然这样!
  • 原文地址:https://www.cnblogs.com/quanweiru/p/2762579.html
Copyright © 2011-2022 走看看