• Linux常用命令


    0、快捷键

    tab           # 命令、文件名、路径补全
    ctrl+c       # 停掉当前程序
    ctrl+d       # 键盘输入结束

    1、cd 切换目录

    cd /user/local    # 切换到目录/usr/local  
    cd ./local        # 切换到当前目录下的local目录中,“.”表示当前目录    
    cd ../local       # 切换到上层目录中的local目录中,“..”表示上一层目录 
    cd -              # 返回进入此目录之前所在的目录
    cd或者cd ~     # 返回自己的家目录 cd ~foo:返回到用户foo的家目录,也即/home/foo

    2、pwd 显示当前所在目录

    pwd         # 单纯显示当前工作目录
    pwd -P       # 显示实际的工作目录,而非链接本身的目录名

    3、ls 查看文件与目录

    常用参数:

    ls [选项] [目录名]  # 可同时查看多个目录
    -l :列出长数据串,包含属性与权限等信息 -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来 -d :仅列出目录本身,而不是列出目录的文件数据 -h :将文件容量以较易读的方式(GB,kB等)列出来 -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

    以上参数可以组合使用

    ls -l  #以长数据串的形式列出当前目录下的文件和目录,包含属性和权限等信息
    ls -lh  #以长数据串的形式列出当前目录下的文件各目录,同时容量以易读的方式列出来

     4、mkdir 创建新目录

    mkdir dir1                    #创建目录dir
    mkdir dir1 dir2               #同时创建两个目录
    mkdir -p /tmp/dir1/dir2       #创建目录树
    mkdir -m 711 dir       #创建权限为rwx--x--x的目录

    5、rmdir 删除空目录

    rmdir dir               #删除空目录dir
    rmdir -p dir/dir1/dir2      #一次性删除目录dir/dir1/dir2

    6、cp 复制文件或目录

    cp ~/file1 /tmp/file2          #将家目录下的file1复制到/tmp下,并更名为file2,文件的某些属性或权限会改变
    cp -a /var/log/wtmp .      #将文件复制到当前目录,属性权限不改变
    cp -r /etc/ /tmp         #复制/etc/下所有内容到/tmp下,属性权限会改变,-a不会改变
    cp -u ~file1 /tmp/file2     #如果file1比file2新,则覆盖
    cp -i ~file1 /tmp/file2     #如果file2已经存在,则覆盖时先询问

    7、mv 移动文件、目录或更名

    mv file1 file2 dir1       #将文件file1,file2移动到目录dir1中
    mv dir1 dir2           #将dir1更名为dir2

    参数:
    -f :若果目标文件已经存在,不会询问而直接覆盖 
    -i :若目标文件已经存在,就会询问是否覆盖 
    -u :若目标文件已经存在,且比目标文件新,才会更新

    8、rm 删除文件或目录

    rm -i /usr/local/file*          #删除/usr/local下所有开头为file的文件,删除前询问
    rm -rf /root/tmp1/*            #强制删除/root/tmp1目录下所有的文件及目录
    参数:
    -f :忽略不存在的文件,不会出现警告消息 
    -i :互动模式,在删除前会询问用户是否操作 
    -r :递归删除,最常用于目录删除,它是一个非常危险的参数

    9、ln 创建文件或目录链接

    ln -s file filelink          #创建文件file的软链接filelink
    ln dir dirlink             #创建目录dir的硬链接dirlink

    10、file 观察文件类型

    file file1               #查看文件file1的文件类型

    11、tar 压缩和解压缩

    压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称
    查询:tar -jtv -f filename.tar.bz2
    解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

    参数
    -c :新建打包文件
    -t :查看打包文件的内容含有哪些文件名
    -x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
    -j :通过bzip2的支持进行压缩/解压缩,此时文档名最好为*.tar.bz2
    -z :通过gzip的支持进行压缩/解压缩,此时文档名最好为*.tar.gz
    -v :在压缩/解压缩过程中,将正在处理的文件名显示出来
    -f filename :filename为要处理的文件
    -C dir :指定压缩/解压缩的目录dir

    12、cat/more/less/head/tail 显示文件内容

    cat -n /etc/issue    #查看/etc/issue文件内容,打印出行号,连同空白行也有行号,-b空白行不标行号
    more install.log     #分页显示文件,空格:向下翻一页,回车:向下翻一行,b:往回翻页,q:退出显示
    less install.log     #more增强
    head -20 install.log   #只显示头10行
    tail -20 install.log   #只显示尾20行
    tail -f catalina.out  #实时查看tomcat运行日志

    更多:cat

    13、vim 文本编辑

    vim file1         #如果文件file1存在则打开,不存在则创建
    <ESC>键          #由其他模式进入命令模式,该模式下
                  #:wq保存并退出,:wq!强制保存并退出,:q退出,:q!强制退出,
                  #:x如有改动则保存并退出,否则直接退出,:w file2另存为file2,:e重新读入当前文件
                  #u取消上次命令,ctrl+r重做
                  #>>向右缩进一个tab,<<向左缩进一个tab
                  #x删除当前光标所在字符,dd删除当前行
                  #i进入插入模式
                  #该命令还可以在不解压的情况下查看和修改jar包文件

    14、which 查找可执行文件

    which ifconfig     #通过PATH环境变量到该路径内查找可执行文件ifconfig

    15、whereis 查找文件

    whereis ifconfig   #查找与ifconfig文件相关的文件,文件类型为二进制,man说明文件或源文件
    参数:
    -b: 只找二进制文件
    -m: 只找在说明文件manual路径下的文件
    -s: 只找source源文件
    -u: 没有说明文档的文件

    16、locate 查找文件

    locate ifconfig    #配合数据库查找与ifconfig文件相关的文件,可以在使用前执行updatedb命令

    17、find 查找文件

    find 路径 参数
    find / -name passwd    #查找文件名为passwd的文件

    参数说明:
    时间查找参数:
    -atime n :将n*24小时内存取过的的文件列出来
    -ctime n :将n*24小时内改变、新增的文件或者目录列出来
    -mtime n :将n*24小时内修改过的文件或者目录列出来
    -newer file :把比file还要新的文件列出来
    名称查找参数:
    -gid n       :寻找群组ID为n的文件
    -group name  :寻找群组名称为name的文件
    -uid n       :寻找拥有者ID为n的文件
    -user name   :寻找用户者名称为name的文件
    -name file   :寻找文件名为file的文件(可以使用通配符)

    18、grep 查找特定字符

    grep [-acinv] [--color=auto] '查找字符串' filename 
    grep --color=auto 'MANPATH' /etc/man.config   # 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色
    ls -l|grep -i file                  # 把ls -l的输出中包含字母file(不区分大小写)的内容输出
    ls | grep -v "sbt-launch.jar" | xargs rm -r    #删除sbt-launch.jar以外的文件
    grep -o "hello" test.log| wc -l  #查找test.log文件中hello字符中出现的次数

    参数
    -a :将binary文件以text文件的方式查找数据
    -c :计算找到‘查找字符串’的行数
    -i :忽略大小写的区别,即把大小写视为相同
    -v :反向选择,即显示出没有‘查找字符串’内容的那一行
    -o :只显示被匹配的字符串

    19、ps 显示进程瞬间状态

    ps -ef|grep ssh      #查找特定进程

    参数 -A :所有的进程均显示出来 -a :不与terminal有关的所有进程 -u :有效用户的相关进程 -x :一般与a参数一起使用,可列出较完整的信息 -l :较长,较详细地将PID的信息列出 组合 ps aux # 查看系统所有的进程数据 ps ax # 查看不与terminal有关的所有进程 ps -lA # 查看系统所有的进程数据 ps axjf # 查看连同一部分进程树状态

     20、kill 终止指定进程

    kill -signal PID

    signal常用参数
    1:SIGHUP,启动被终止的进程
    2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
    9:SIGKILL,强制中断一个进程的进行
    15:SIGTERM,以正常的结束进程方式来终止进程
    17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进

    21、chgrp 改变文件所属群组

    chgrp users -R ./dir # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users
    chgrp [-R] dirname/filename -R :进行递归的持续对所有文件和子目录更改

    22、chown 改变文件拥有者

    chown foo install.log          #将install.log的拥有者改为foo
    chown root:root install.log     #将install.log的拥有者和群组改为root

    chown [-R] user dirname/filename
    chown [-R] user:grp dirname/filenam
    -R :递归的对所有文件和子目录更改

    23、chmod 改变文件权限

    ls -l sobsrc. tgz
    -rw-r--r-- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
    横线代表空许可。r代表只读,w代表写,x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。
    如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。

    $ chmod –x mm.txt       #取消所有使用者对文件mm.txt的执行权限。
    $ chmod 644 mm.txt      #文件属主拥有读、写权限,与文件属主同组人用户拥有读权限,其他人拥有读权限。

    chmod [-R] xyz 文件或目录
    -R:递归的对所有文件和子目录更改

    文字设定法:
    chmod [who] [+ | - | =] [mode] 文件名
    who:u文件或目录的所有者、g与文件属主有相同组ID的所有用户、o其他用户、a所有用户(系统默认)的任意组合
    +:添加、-:取消、=:赋予
    mode:r读、w写、x执行的任意组合

    数字设定法:
    chmod [mode] 文件名      #7:全部,6:读写,0:无
    0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加
    mode:3个从0到7的八进制数,其顺序是(u)(g)(o)

    24、shutdown 关机重启

    shutdown -h now                       #立刻关机,now相当于时间为0的情况
    shutdown -r +10                       #系统在10分钟后关机并重新启动
    shutdown -r +30 'The system will reboot'         #系统在30分钟后关机并重新启,并显示后面的信息给所有在线使用者
    shutdown -h 20:30      #系统将在20:30关机

    shutdown [-efFhknr][-t 秒数][时间][警告信息]
     -c  当执行"shutdown -h 11:50"指令时,只要按+键就可以中断关机的指令。
     -f  重新启动时不执行fsck的磁盘检查。
     -F  重新启动时执行fsck的磁盘检查。
     -h  将系统的服务停掉后,立即关机。
     -k  只是送出信息给所有用户,但不会实际关机。
     -n  不调用init程序进行关机,而由shutdown自己进行。
     -r  将系统的服务停掉后,重新启动。
     -t<秒数>  送出警告信息和删除信息之间要延迟多少秒。
     [时间]  设置多久时间后执行shutdown指令。
     [警告信息]  要传送给所有登入用户的信息。

    其他重启关机命令:reboot重启,halt关机,poweroff关机,init 0关机

    25、wget 下载文件

    wget [参数列表] URL
    wget http://nodejs.org/dist/v6.3.0/node-v6.3.0.tar.gz             #从下载一个文件并保存在当前目录
    wget -O node6.3 http://nodejs.org/dist/v6.3.0/node-v6.3.0.tar.gz      #下载并保存为node6.3
    wget –limit-rate=300k http://nodejs.org/dist/v6.3.0/node-v6.3.0.tar.gz  #限速下载 
    wget -i download.txt                                #批量下载download中每个URL所对应的文件,每个URL写一行
    wget -c http://nodejs.org/dist/v6.3.0/node-v6.3.0.tar.gz           #断点续传
    wget --no-check-certificate https://我们下载文件路径              #下载https链接

    26、JVM调优命令

    jps   #列出本机所有java进程的pid -l:输出应用程序main class的完整package名或者应用程序的jar文件完整路径名 -v:输出传递给JVM的参数 -m:输出传递给main方法参数
    jstack 进程id > ps.txt  #导出java运行的线程信息
    jstat -gc 2060      #进程为2060的垃圾回收统计     格式jstat [Options] vmid [interval] [count]
    jmap -heap 2060      #打印heap的概要信息

    更多详情:点击

    27、其他命令

    lsb_release -a      #查看系统版本
    history 10        #查看最近10条命令
    df -h           #以可读性较高的方式来显示磁盘分区 du命令
    du -h -x --max-depth=1 #可查看指定文件及目录大小
    top            #查看系统运行状况 -p:查看指定进程
    sync            #数据同步写入磁盘
    ifconfig          #查看网络情况
    uname -r          #查看内核版本
    ping -c4 baidu.com    #ping baidu.com 4次
    service network restart #重启network服务
    clear            #清屏
    who             #显示在线登录用户
    scp -P 2261 hh.war root@172.33.5.11:/home/app/    #不同linux间文件复制 -r目录
    jar cvf temp.war */ .  #将当前目录打包成war包
    jar xvf temp.war     #解压war包到当前目录
    echo *.war        #打印出所有的.war文件
    echo $PATH         #打印出变量PATH
    export|env           #显示环境变量
    sed -i 's/原字符串/新字符串/g' file0           #将file0中的“原字符串”替换为“新字符串”。
    tree -a /data 打印data目录下的所有文件和目录
  • 相关阅读:
    uni-app开发经验分享九: 组件传值
    uni-app开发经验分享八: 实现微信APP支付的全过程详解
    CSS3+JS完美实现放大镜模式
    原生JS拖拽
    LeetCode 797. 所有可能的路径
    面试题 02.01. 移除重复节点
    LeetCode 139. 单词拆分
    LeetCode 1436. 旅行终点站
    LeetCode 16. 最接近的三数之和
    Hadoop 3.13在Ubuntu20.04上的单机伪分布式配置
  • 原文地址:https://www.cnblogs.com/aaron-shu/p/5550082.html
Copyright © 2020-2023  润新知