• Linux实用命令


    Linux实用命令

     

     

    关于Linux中单双引号的区别:

    • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
    • 双引号里可以有变量,双引号里可以出现转义字符
    • 反引号param=`date`,命令替换,将命令的标准输出赋值给变量,同$(date)

    命令返回值

    • 0 :执行成功(即正常执行,并返回预期结果)
    • 非0 :执行失败
    • $? 代表上一个命令执行后的退出状态,也代表调用函数的返回值
    • echo $?  查看返回值

    ls

    列出当前目录下所有文件

    find

    在指定目录下查找文件

    -l

    详细文件信息

    -name

    文件名

    -t

    修改时间排序

    -iname

    文件名,忽略大小写

    -r

    逆序排列

    -type

    d 文件夹、f 文件

    -h

    可读的文件大小格式

    常用用法

    find . -name "abc"

    -a

    显示隐藏文件

    常用用法

    ls -ltr

    locate

    查找符合条件的文件(查数据库)

    updatedb

    更新locate命令所必需的数据库文件

    -b

    只查找文件夹

    -v

    显示执行的详细过程

    -i

    忽略大小写(默认不忽略)

    常用用法

    updatedb -v | less

    注意事项

    如果存在的文件查不到,updatedb

    常用用法

    locate abc aab (支持多关键词)

    chmod

    更改文件权限(读r w 执行x

    chown

    更改文件拥有者

    777

    rwx(r4 w2 x1)拥有者、群组、其他

    -R

    子目录同样生效

    -R

    子目录同样生效

    user:group

    使用者:群组

    常用用法

    chmod 777 test

    常用用法

    chown runoob:users file1.txt

    diff

    比较文件差异

    ln

    创建文件同步链接,默认硬链接(自动同步的文件)

    -y

    并列方式展示

    -s

    创建软链接(快捷方式)

    -W

    指定宽度(并列方式有效)

    常用用法

    ln -s a.txt b.txt

    常用用法

    diff a.txt b.txt -yW 50

    less

    浏览文件

    vi/vim

    编辑文件

    常用用法

    less a.txt

    常用用法

    vim a.txt

    mv

    移动文件 / 文件重命名

    scp

    远程文件拷贝(双向)

    -f

    覆盖同名文件时不提示

    -p

    保留原文件的时间和权限等

    常用用法

    mv aaa bbb

    -r

    递归复制整个目录,默认是不能复制文件夹的

    常用用法

    scp root@192.168.1.10:/root/a.txt  /tmp/a.txt

    rm

    删除文件,默认是不能删除目录

    cp

    拷贝文件,默认不能拷贝目录

    -r

    递归删除目录内的文件,删除目录

    -r

    递归拷贝目录内的文件,拷贝目录

    -f

    从不询问是否删除

    -f

    从不询问是否覆盖文件

    -v

    显示删除详情

    -p

    保留原文件的时间和权限等(常用)

    常用用法

    rm -rf test

    常用用法

    cp aaa.txt bbb.txt

    tee

    把数据打印到屏幕和文件中,类似>

    touch

    刷新文件的时间属性,文件不存在则创建

    -a

    追加到文件中,类似>>

    常用用法

    touch aa.txt

    常用用法

    echo abc | tee aa.log

    read

    标准输入(控制台输入),默认回车结束

    grep

    文件内查找字符串 / 筛选

    -a

    输入数组,空格分割

    -i

    忽略大小写,默认是不忽略

    -d

    设置结束符

    -n

    显示行号

    -p

    输入前显示内容

    -r

    递归子目录查找

    -n

    限制输入长度

    -w

    全词匹配

    -s

    输入时不显示,像输密码那样

    常用用法

    find . -name "*.java" | xargs grep "main" --color

    常用用法

    read str

    grep "main" *

    sed

    操作文件,增删改查(脚本常用)

    expr

    将表达式的值打印到控制台

    -e

    可以指定多个命令

    计算

    expr $arg1 + $arg2(中间的空格是必需的,不加空格是字符串)

    -f

    指定命令文件

    字符串匹配

    expr match "abcd" ".*bcd",只能从头匹配,返回匹配长度

    -n

    取消默认控制台输出,与p一起使用可打印指定内容

    字符串长度

    expr length "awefwe",返回长度

    -i

    输出到原文件,静默执行(修改原文件的意思)

    字符串截取

    expr substr "abscw" 2 3,返回bsc,下标从1开始

    常用用法

    sed 's/old/new/gi' test.txt

    字符查找

    expr index "abcd" "dc",返回3,只能单个字符,哪个字符先出现

    变量赋值

    param=`expr $arg1 + $arg2`  (``将标准输出赋值给变量)

    let

    定义整型变量

    ftp

    连接FTP

    let

    let sum=age+3,不能有空格,变量不用加$,同declare -i

    ftp ip

    连接ftp服务器

    let

    let "sum = age + 3",同上,有空格需要加引号

    ls

    查看当前目录下的文件列表

    不用let

    sum=age+num,默认字符串操作,sum值为"age+num'字符串

    pwd

    查看当前目录的路径

    cd

    切换目录

    get  a.txt

    下载文件到当前目录(执行ftp ip的目录),自动覆盖

    put a.txt b.txt

    上传文件,自动覆盖

    delete a.txt

    删除文件

    less a.txt

    查看文件,同linux的less

    ?

    查看各种ftp命令

    df

    显示文件系统的磁盘使用情况

    du

    显示文件夹所占空间大小

    -h

    可读的文件大小格式

    -h

    可读的文件大小格式

    -a

    显示所有文件系统

    常用用法

    du -h    或者   du -h /tmp/zzj

    常用用法

    df -h

    mkdir

    创建文件夹

    pwd

    显示当前目录的绝对路径

    -p

    父目录自动创建,用于创建多层文件夹

    常用用法

    pwd

    常用用法

    mkir -p /tmp/abc/ddd/test

    stat

    查看文件属性(创建时间、修改时间、权限修改时间等)

    tree

    以树状图列出目录的内容,包括子目录里的文件

    常用用法

    stat test.txt

    -A

    绘图字符显示树状图(推荐)

    -a

    显示隐藏文件

    -C

    文件类型着色,便于区分

    -f

    显示完整文件路径

    常用用法

    tree -AC test

    telnet

    查看某个端口是否可以访问

    ifconfig

    显示或设置网络设备

    常用用法

    telnet  192.168.1.2  8080

    常用用法

    ifconfig eth0 down 关闭eth0网卡

    ifconfig eth0 up 启动eth0网卡

    ifconfig eth0 192.168.1.12 修改ip

    netstat

    显示网络状态

    lsof

    列出当前系统打开的文件

    -a

    显示所有

    -i

    指定端口筛选程序

    -n

    域名转换为IP

    常用用法

    lsof -i:8080   查看8080端口程序

    -p

    显示进程PID / 进程名

    linux环境下的任何事物都以文件的形式存在,例如:进程、网络连接等等都可以列出来

    常用用法

    netstat -anp | grep ":8080"    查看8080端口程序

    lsof | grep vim | grep .swp   能查看当前正在编辑的文件和vim进程

    端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口

    wall

    广播消息给所有在线用户(who命令可查看)

    which

    查看命令的绝对路径

    常用用法

    wall hello

    常用用法

    which ls

    man

    查看命令的说明手册

    ping

    检测主机的连通性

    常用用法

    man ls

    常用用法

    ping 192.168.1.1

    who

    查看当前活跃连接

    write

    发送消息给指定在线用户(who命令可查看)

    常用用法

    who /var/log/wtmp 查看历史连接

    常用用法

    write root pts/1

    useradd

    创建用户

    userdel

    删除用户

    -m

    创建用户主目录,默认在home目录下创建

    -r

    删除用户主目录

    -M

    不创建用户主目录

    常用用法

    userdel -r testuser

    -d path

    指定目录为用户主目录

    -g

    创建时指定用户群组

    常用用法

    useradd testuser

    date

    显示当前时间

    finger

    查看用户信息

    -d str

    显示指定字符串所描述的时间,而非当前时间

    常用用法

    finger root

    -s str

    将系统时间设为字符串中指定的时间

    less /etc/passwd 能查看所有用户

    -r file

    显示指定文件的最后修改时间

    less /etc/group 查看所有用户群组

    常用用法

    date

    sleep

    等待指定时间(s m分钟 h小时 d天,不加单位默认秒)

    常用用法

    sleep 5s

    groupadd

    创建用户群组

    groupdel

    删除用户群组(只能删除空群组)

    常用用法

    groupadd testgroup

    常用用法

    groupdel testgroup

    groupmod

    修改用户群组

    usermod

    修改用户

    -A user

    groupmod -A user testgroup 将用户加入群组

    -g group

    usermod -g testgroup testuser 将用户加入群组

    -R user

    groupmod -D user testgroup 将用户移除群组

    -d path

    修改用户主目录

    -g gid

    groupmod -g 1234 testgroup 修改群组的gid

    -u uid

    usermod -u 123 testuser 修改用户的uid

    id

    查看用户的uid(用户唯一标识)、gid、所属群组

    kill

    关闭进程

    常用用法

    id testuser

    -KILL

    强制杀死进程

    -9

    彻底杀死进程

    常用用法

    kill -9 PID

    last

    查看当前活跃连接和历史连接(类似who

    logname

    显示当前登录的用户名

    常用用法

    last

    常用用法

    logname

    ps

    显示瞬间进程的状态

    top

    显示实时进程的状态

    -e

    显示所有进程

    -d 3

    刷新周期,默认3秒

    -f

    显示全格式列表

    常用用法

    top

    常用用法

    ps -ef  显示所有瞬间进程信息

    shutdown

    关机

    sudo

    使用root用户执行命令(需要配置/etc/sudoers设置权限)

    -r

    立刻重启(推荐)

    常用用法

    sudo test.sh 使用root执行脚本(需要输入当前用户密码)

    -h

    立刻关机

    与su区别

    su root test.sh  也是使用root执行脚本(需要输入root密码)

    -k

    提示关机,但不会关机

    常用用法

    shutdown -r now

    su

    切换用户

    w

    查看自己当前的连接

    su root ./test.sh  使用指定用户执行脚本

    常用用法

    w

    su -c ./test.sh root 使用指定用户执行命令或脚本

    常用用法

    su - oracle

    clear

    清屏

    alias

    设置命令的别名(/etc/profile配置永久生效)

    常用用法

    clear

    unalias lt 取消别名

    alias 列出所有设置的别名

    常用用法

    alias lt='ls -ltr'

    source

    在当前shell中执行文件中的命令

    crontab

    定时任务(后台执行)

    source test.sh 在当前shell中执行脚本

    -l

    列出当前用户定时任务

    sh test.sh 创建子shell执行脚本,普通变量不会被带到父shell

    -r

    删除当前用户所有定时任务

    常用用法

    source /etc/profile  使修改立即生效

    -e

    编辑定时任务* * * * * date  (分.时.日.月.星期)每分钟执行一次date命令

    常用用法

    crontab -l

    declare

    定义变量

    set

    显示所有变量和方法,同declare

    declare

    显示所有变量和方法,同set

    常用用法

    set

    -f

    显示函数

    -r

    声明只读变量,只允许声明时赋值

    -x

    声明环境变量,同export

    -i

    声明整数型变量,同let

    -a

    声明数组 arr=("ab" "cc" [5]="ww")

    常用用法

    declare test=abc

    type

    查看命令的类型

    eval

    执行字符串命令

    alias 别名

    常用用法

    eval "test args1 args2"  例如调用函数,test为函数

    keyword 关键字

    shell 保留字

    function 函数

    builtin 内建命令

    常用用法

    type if

    export

    定义环境变量

    rpm

    RPM软件包管理工具

    常用用法

    export testparam=value

    -i

    显示套件的相关信息

    export 显示环境变量,同env

    -v

    显示指令执行过程

    -h

    显示安装进度

    --force

    忽略报错,强制安装

    常用用法

    rpm -ivh packageName  安装软件包

    passwd

    设置用户密码

    time

    测量指令执行消耗的时间

    常用用法

    passwd testuser

    常用用法

    time cd /tmp

    env

    显示环境变量,同export

    unset

    删除环境变量

    常用用法

    env

    常用用法

    unset test

    chkconfig

    显示系统服务

    service

    管理系统服务

    chkconfig iptables on/off 开关防火墙,重启生效

    常用用法

    service iptables stop/start/statu 开关防火墙,立即生效

    常用用法

    chkconfig

    gzip

    压缩gz文件(不能压缩目录,不保留原文件)

    gunzip

    解压gz文件

    -c

    将压缩后文件输出到控制台,保留原文件

    -c

    不解压情况下cat压缩包中的文件,同zcat

    gzip test.txt    变成test.txt.gz文件,不保留原文件

    gunzip test.txt.gz   变成test.txt文件,不保留压缩文件

    常用用法

    gzip -c test.txt > test.txt.gz

    常用用法

    gunzip -c test.txt.gz > test.txt

    zip

    压缩zip文件(jar包也适用)

    unzip

    解压zip文件(jar包也适用)

    -r

    压缩文件夹   zip -r test.zip /tmp/zzj

    常用用法

    unzip test.zip

    常用用法

    zip test.zip ab.java  如果zip包存在,则更新zip包

     unzip test.jar META-INF/maven/* 解压指定文件或文件夹

               

    unzip -p test.jar META-INF/MANIFEST.MF 不解压cat压缩包里面的文件

    zipinfo

    查看zip文件内容(vim也可以查看)

    tar

    压缩解压tar文件(可保留软链接文件)

    常用用法

    zipinfo test.zip

    -c

    压缩

    -x

    解压

    -t

    查看tar文件内容(vim也可以查看)

    -z

    使用gzip或gunzip处理

    -v

    显示执行过程

    -f

    指定压缩或解压文件

    常用用法

    tar -cvzf test.tar.gz /tmp/zzj

    tar -xvzf test.tar.gz

    bc

    用于数学运算,

    tail

    查看文件结尾

    直接执行bc,就是一个计算器,输入数学表达式运算

    -f

    不断刷新

    常用用法

    echo 'scale=2; (2.777 - 1.4744) / 1' | bc   保留两位小数,输出1.30

    -n

    指定显示行数

    echo '5 != 3' | bc   数字比较,输出1

    常用用法

    tail -f test.log

    xargs

    从标准输入构建和执行命令行

    yum

    自动下载rpm并安装

    一般和管道一起使用,"|"符号表示管道

    常用用法

    yum install packageName

    管道:将上一条命令的标准输出,传递给下一条命令

    yum remove packageName

    例如:find . -name "*.java" | grep "main",从文件名中grep

    例如:echo "test.txt" | less,显示字符串

    管道加上xargs:将上一条命令的结果转换成标准输入,传递给下一条命令

    例如:find . -name "*.java" | xargs grep "main",从文件内容中grep

    例如:echo "test.txt" | xargs less,显示文件内容

    wc

    统计行数/字数/字节数

     jar

     javaJDK带的命令,效果同zip命令,参数用法同tar命令;打jar包zip包都可

    常用用法

    wc test.txt

     常用用法

     jar -cvfM test.zip /tmp/zzj,-M表示不生成META-INF/MANIFEST.MF

    ls -l | wc

    jar -xvf test.zip 解压到当前目录

                 

    Ctrl+z

     

    将正在执行的命令放到后台,并且暂停。同时得到一个后台命令的编号

     

    jobs

    状态

    查看后台命令列表,只能看同一个shell窗口的

              Terminated 停止,使用kill杀掉进程对应的状态
              Running 正在运行
              Stopped 暂停,Ctrl+z对应的状态
              Done 完成,使用jobs命令查看一次后记录消息
                 

    fg

     

    将后台命令调至前台执行,如果是Stopped状态则变成Running状态

      bg   将后台Stopped的命令置成Running状态
      常用用法

    fg 15,数字对应后台命令编号

        常用用法 bg 15,数字对应后台命令编号。可结合Ctrl+z使用,放到后台暂停再bg。
       

    后台命令调至前台后,只能通过Ctrl+z再次放到后台,再bg继续执行

         

    (普通命令后加 & 可直接后台执行,如:sh execute.sh &,同时得到后台命令编号和进程PID。后台命令可fg调到前台停止,也可以kill杀掉进程)

                 
     wait   进入阻塞状态,等待同一个shell窗口的所有后台命令执行完毕        
       PID 等待同一个shell窗口的指定后台命令执行完毕,不能跨shell窗口        
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
  • 相关阅读:
    CDN用户访问调度流程
    最近复习原型 终于明白了一点 写下原型相对比较完美的一种继承方式
    flex布局学习
    Vuex基本使用
    Promise的基本使用
    创建对象的几种方式
    父访问子的数据方法
    购物车案例
    插槽的使用
    ref获取DOM元素
  • 原文地址:https://www.cnblogs.com/zhangzongjian/p/10247672.html
Copyright © 2020-2023  润新知