zoukankan      html  css  js  c++  java
  • linux基本命令

    1.创建新文件:touch 新文件名

    2.显示当前所在目录:pwd

    3.创建新目录:mkdir  新目录名

    4.拷贝:cp  源文件  目的路径

    5.移动:mv  源文件  目的路径

    mv:不仅会移动文件数据,还会将inode索引节点也移动到目标文件,目标文件的inode号将会改变
    cp : 只文件数据复制到目标文件中,不会复制inode索引节点,目标文件的inode号不变

    6.删除:rm  文件名

    7.查看可执行文件的位置:which  可执行文件名

    8.解压:tar xvf  文件名.tar.gz

    9.压缩:tar -cvf   压缩包名.tar.gz   文件名/

    10.查找硬盘中的文件的位置:find  目录路径   -name  文件名字

                  find  目录路径   -name  '*.cpp'  //找出目录下(包括子目录)所有cpp文件

    11.查找文件内的内容:grep 'hehe'  -rn  目录路径      //在此路径中的所有文件里寻找字符串“hehe”,-r是递归,-n是显式行号  

    12.查看文件属性、权限、拥有者:ls -l

    13.修改权限:chmod

    不写身份时,默认是a

    14.文件特殊权限:SUID

    15.查看程序运行的时间或者某种命令运行的时间:time  执行的程序名或执行的命令

     

    解释(1):real远大于user加上sys,因为find需要遍历各个目录,需要大量的I/O操作,而磁盘I/O通常是最慢的环节,因此大部分时间find进程都在等待磁盘I/O完成。

    解释(2):再次运行的时候,发现real time变得很小了,应该是操作系统将刚才操作过的一些文件缓存了的缘故,因而大大减少了磁盘I/O。使用-p参数时,直接打印所需时间的数值,单位为秒,木有单位感觉怪怪的。

    16.修改账户密码:passwd

    17.查看输入的历史命令:history

    18.linux默认有7个操作界面环境切换:[Ctrl]+[Alt]+[F1]~[F7]

      纯命令行界面:tty1~tty6 终端

      图形界面:tty7 终端

    19.列出当前时刻所运行的进程的信息:ps

        ps命令查找与进程相关的PID号:
        ps a 显示现行终端下的所有程序,包括其他用户的程序。
        ps -A 显示所有程序。
        ps -e 此参数的效果和指定"A"参数相同。
        ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
        ps e 列出程序时,显示每个程序所使用的环境变量。
        ps f 用ASCII字符显示树状结构,表达程序间的相互关系,会列出程序的完整路径
        ps -H 显示树状结构,表示程序间的相互关系。
        ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
        ps s 采用程序信号的格式显示程序状况。
        ps S 列出程序时,包括已中断的子程序资料。
        ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
        ps u 以用户为主的格式来显示程序状况,包括内存使用率

    CPU使用率等。
        ps -u 指定用户名。
        ps x 显示所有程序,不以终端来区分。

    其中最常用的为:

    1)显示所有进程信息

            ps -A

    2)显示指定用户的信息

            ps -u root

    3)显示所有进程信息,连同命令行

            ps -ef

    4)ps与grep常用组合用法,查找特定进程

      ps aux | grep ***

            ps -ef | grep ***

    20.实时监控(动态显示)进程各类信息:top

    top还看可以实时看cpu使用率、内存使用情况等,类似于windows任务管理器:

    其中,

    • PID - 进程标示号
    • USER - 进程所有者
    • PR - 进程优先级
    • NI - 进程优先级别数值
    • VIRT - 进程占用的虚拟内存值
    • RES - 进程占用的物理内存值
    • SHR - 进程使用的共享内存值
    • S - 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死
    • %CPU - 进程占用的CPU使用率
    • %MEM - 进程占用的物理内存百分比
    • TIME+ - 进程启动后占用的总的CPU时间
    • Command - 进程启动的启动命令名称

    21.查看线程

    1)top -H   //加上-H这个选项,top的每一行就不是显示一个进程,而是一个线程

    2)ps  xH  //查看所有的线程

    3)ps  -Lf  4306  //查看进程号为4306的所有线程

    22.linux的七种运行等级(run level)

    linux通过设置run level来规定系统开启不同服务

      run level 0:关机

      run level 1:维护模式

      run level 2:不含网络功能的纯命令行模式

      run level 3:含有网络功能的纯命令行模式

      run level 4:系统保留功能

      run level 5:图形界面模式

      run level 6:重启

    可用 init 命令切换run level

    23.关机:shutdown、poweroff、init 0

    24.重启:reboot、init 6

    25.swap分区:

    1)swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的进程使用,那些被释放的空间可能来自一些很长时间没有什么操作的程进程,这些被释放的空间被临时保存到swap分区中,等到那些进程要运行时,再从swap分区中恢复保存的数据到内存中

    2)传统的linux说明文件中特别有指定到“swap分区最好为物理内存的1.5到2倍之间”

    26.创建新文件或修改文件时间:touch

    27.查看文件系统的使用量:df  -h    //-h:显式出KB、MB、GB等单位

    28.查看文件所占的磁盘空间:du  -ah   //-h:显式出KB、MB、GB等单位, -a:列出当前文件路径下所有文件和文件夹

    29.建立文件链接:ln   //不加-s为硬链接,加-s为符号链接(软链接)

    • 硬链接:通过文件系统的inode来产生新的文件名,两个文件名均指向该inode,链接计数会增加(ls  -l 中的第二列),硬链接的源文件删除了,由于inode还存在,所以硬链接还是能够打开
    • 符号链接(软链接):相当于源文件的快捷方式,软链接指向源文件,链接计数不会增加,当源文件被删除,符号链接就打不开了,若被指向路径文件被重新创建,软链接又会重新恢复
    • 软链接可以对一个不存在的文件名进行链接,硬链接不可以(其文件必须存在,inode必须存在)
    • 软链接可以对目录进行链接,硬链接不可以

    30.查看文件的内容:cat  文件名

              用vim打开文件

    31.查看文件的内容并用行号显示:nl  文件名

    32.查看cpu信息:cat   /proc/cpuinfo

    33.查看内存信息:cat   /proc/meminfo

    34.将文件按行逆序显示:tac  文件名    //tac是cat反过来写

    35.把文件每一行的内容逆序输出:rev  文件名

    36.以某种方式对每行进行分割显示:cut  -c1-3  文件名  //显示每行第1——第3字符

                    cut  -f2,3  文件名   //显示每行第2、3字段的内容(默认字段间是以tab制表符分隔的)

                    cut -d 'g' -f 1 文件名  //以字符g分割字段,显示每行第1字段的内容

    37.显示文件开头部分内容:head   参数  文件名

                head  -n 5  1.txt  //显示前5行,没有参数默认显示前10行

                head  -c 5  1.txt  //显示前5字节

                head  1.txt   2.txt  //显示多个文件

                head  -q  1.txt   2.txt  //显示多个文件时去掉文件名

                head  -v  1.txt   2.txt  //显示默认的前10行,并显示文件名

    38.显示文件末尾部分内容:tail   参数  文件名

    39.分页显示文件内容:more支持向后翻页,less支持向前翻页

    40.查看端口占用情况:lsof -i: 端口号  //查看某端口使用情况

      netstat  -tunlp     //netstat -tunlp用于显示tcp,udp的端口和进程等相关情况

       netstat -tunlp | grep :22 |awk '{print $7}'| cut -d '/' -f 1  //查看使用22端口的进程号

     

      netstat -natp | grep :22 -c  //查看22端口的TCP连接数

    41.查看单个进程允许打开的最大fd数量:ulimit  -n

    42.lsof命令用于列出当前系统打开的文件,包括常规文件、网络套接字等:lsof  -u root  -d txt   //列出root用户打开的txt类型文件

    43.查看系统的消息队列、信号量、共享内存等:ipcs  -a  //列出所有消息队列、信号量、共享内存

                          ipcs  -q  //-q,消息队列,-s,信号量,-m,共享内存

                          ipcs  -l  //列出系统限额

                          ipcs   -u  //列出当前使用量

    44.抓包:tcpdump -nn  -i eth0  icmp and host 192.168.1.1  //-nn:以数字的方式显示IP和端口号而不是主机名   -i:网口名    host:主机

    45.查看系统IPC状态的指令:

    ipcs -a    //显示所有IPC,包括共享内存、信号量、消息队列
    ipcs  -m    //共享内存
    ipcs  -s    //信号量
    ipcs  -q    //消息队列

    46.清理IPC机制的指令:

    ipcrm-m shmid    //在最后一个共享内存从进程中分离完成后,删除共享内存标识符shmid

    47.列出.o(目标文件).a(静态库文件) .so(动态库文件)文件中的符号(函数名,全局变量名)信息:nm  文件名

    48.统计文件的字节数、行数

    1)wc -c 文件名    //统计字节数

    2)wc -l     文件名   //统计行数

    3)wc -w 文件名  //统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串

    4)wc -m 文件名  //统计字符数

    5)netstat -tunlp | grep ':22' | wc -l  //占用22端口的进程的个数

    49.在文件中查找出现最频繁的前2个字符串(如:ip地址):

    cat 文件名 | sort | uniq - c | sort - k 1 - n - r | awk '{print $2} | head -n 2

    cat 文件名  //查看文件内容

    sort  //sort命令是对于每一行的内容根据字典序(ASCII码)进行排序,这样可以保证重复的记录是相邻的

    uniq - c  //uniq表示合并相邻的重复记录,-c表示统计重复数,因为uniq -c只会合并相邻的记录,所以在使用该命令之前需要先排序

    sort - k 1 - n - r  //sort -k 1表示对于每行的第一个字段进行排序,-n表示sort按照数值大小进行从小到大排序而不是按ASCII(按ASCII排序,数值11会排在数值11的前面),-r表示排逆序

    awk  '{print $2}  //选出第二列

    head - n  2  //显示前2行

    50.删除文件的空行:

    这里的空行是指  ' '

    grep  .   文件名  //显示出除空行外的文件行

    grep  .   文件名  >  新文件名   //将重定向到新文件

    tr -s ' '  <  文件名  //显示出除空行外的文件行

    sed  '/^$/d'   文件名     //d代表删除该行,这条命令可显示出除空行外的文件行

    sed  -i  '/^$/d'  文件名  //-i代表在文件中直接操作

    sed  '/^s*$/d'  文件名     //这个命令还可将完全空格、tab等组成的空行删掉

  • 相关阅读:
    Vue3教程:Vue3.0 + Vant3.0 搭建种子项目
    硬盘
    org.apache.commons.beanutils.ConversionException: No value specified
    软件设计流程
    CDN使用
    The valid characters are defined in RFC 7230 and RFC 3986
    java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found.
    joomla安装
    LAMP环境
    开源软件
  • 原文地址:https://www.cnblogs.com/Joezzz/p/10175118.html
Copyright © 2011-2022 走看看