Linux基本命令总结

目录

1、文件管理:

2、权限管理

3、进程管理

4、系统管理

5、用户管理命令

6、网络通讯

7、关机/重启

8、文件压缩

9、线程操作:

10、gdb调试

补充:

1、文件管理:

cd  +路径 改变当前工作目录 路径可以为绝对路径或者相对路径

ls  显示当前目录下的文件                       touch  新建普通文件

rm  删除普通文件                                   mkdir  新建目录文件

rmdir  删除空目录                                   rm -r   删除非空目录

cp  拷贝普通文件                                    cp -r   拷贝目录文件

mv  移动(剪切)文件                           chmod   修改文件权限

chown   修改文件属主                            chgrp   修改文件组用户

pwd   显示当前工作目录绝对路径          find查找文件

vim   文本编辑器                                     wc   统计数目

n1   显示文件内容和行号                        umask   显示/设置文件的缺省权限

whereis:搜索命令所在目录及帮助文档路径

more  less  head  tail  cat  查看文件内容

2、权限管理

文件权限的划分:

rw-(文件属主--u)   rw-(同组文件--g)   r--(其他文件--o)

r 读权限

w 写权限

x 可执行权限(普通文件)或者能否进入权限(目录)

修改文件权限的命令:chmod

(1)字符修改法:

   chmod     u/g/o/a      +/-/=       r      filename
                                                  w
                                                  x
                                                  rw
                                                  rx
                                                  wx
                                                  rwx

   如:chmod  u+x  main.c                 给main.c文件的属主加上读写权限

          chmod  g-w  main.c                  给main.c文件的同组用户去掉写权限

          chmod  u+w,g-r,o=r  main.c     给main.c文件的属主加上写权限,同组用户去掉读权限,将其他用户的权限设置为只读

(2)数字修改法

          r:4               w:2            x:1

      如:chmod  664   main.c            将main.c文件的权限设置为属主可读可写,同组用户可读可写,其他用户可读                           

3、进程管理

ps   显示进程信息                                                     kill   pid   结束进程         

kill -stop   pid   挂起进程                                           kill   -9   pid   强制结束进程               

jobs   显示后台和挂起的进程任务                             &   在后台运行进程   

bg   任务号   将挂起的进程放到后台执行                 

fg   任务号   将挂起或后台的进程放到前台执行

pstree   以树状图显示进程

4、系统管理

top   动态显示进程信息以及系统运行统计信息

free   显示系统运行统计信息  ---   内存   buffers/cache   Swap

ipcs   -s / -q / -m   分别显示系统的信号量、消息队列、共享内存

ipcs   -s / -q / -m  id   根据id分别删除信号量、消息队列、共享内存

lsof   列出当前系统打开的所有文件描述符

mpstat  实时监测多处理器系统上的每个CPU使用情况

vmstat   实时输出系统各个资源的使用情况

5、用户管理命令

useradd / adduser   newname   添加一个新用户newname

参数:   -g   执行新用户的主组
             -G   将新用户添加到副组
             -s    指定新用户默认使用的shell终端
             -d   指定新用户登录默认进入的目录

passwd  username   修改用户密码

userdel   username   删除用户

6、网络通讯

ping   测试网络连通性

ifconfig / ip   显示或设置网络设备

netstat / ss   显示网络相关信息

service   管理系统运行的服务器

mail   查看、发送电子邮件

write   给用户发信息

7、关机/重启

(1)系统运行级别:(root用户可以通过init命令修改运行级别)

            0    关机
            1    单用户模式
            2    不带网络的多用户模式
            3    完全的多用户模式,优先进入字符界面
            4    未定义
            5    x11 --- 图形界面模式
            6    重启

(2)关机 / 重启命令

          init 0                关机(root用户才能运行)
          init 6                重启(root用户才能运行)
          halt                  立即关机                                poweroff    立即关机
          shutdown        立即关机                                reboot        立即重启

8、文件压缩

(1)tar   打包   +   gzip   压缩   --->   生成  .tar.gz  压缩包

(2)tar   直接压缩                    --->   生成  .tgz  压缩包

    参数:
            c    创建新文件
            f    指定目标为文件而不是设备
            v    显示详细过程
            t    只显示包中内容,而不真正释放
            x    释放文件
            z    GNU版本新添加的,完成压缩工作

以上两个方式可以相互混用,通过tar压缩的文件gzip也可以解压,通过gzip压缩的文件tar也可以解压

9、线程操作:

    ps 默认查看当前终端中运行的进程

    Ps -eLf 带上参数 L 可以查看正在运行的线程 id

    Top 系统监测工具

    Top -H 显示应用程序的每个线程信息

    Top fj 显示进程或线程在那个 cpu 上运行

10、gdb调试

(1)release版本    

release版本为发行版本,是提供给用户使用的版本。用gcc默认生成的就是release版本

首先将源代码编译、链接生成debug版本的可执行文件,然后通过‘gdb debug版本的可执行文件名’进入调试模式

a)单进程、但线程基础调试命令 

     l    显示main函数所在的文件的源代码
    list    filename:num        显示filename文件num行上下的源代码
    b    linenum        给指定行添加断点
    b    funname        给指定函数的第一有效行添加一个断点
    info break        显示断点信息
    delete    断点号    删除指定断点
    disable    断点号    将断点设定为无效的
                            如果不加断点号,将所有断点设置为无效
    enable    断点号    将断点设置为有效的
                            如果不加断点号,将所有断点设置为有效
    r(run) 运行 / 启动程序
    n(next) 单步执行 / 下一步
    c(continue) 继续执行,直接执行到下一个端点处
    s    进入将要被调用的函数中执行
    finish 退出 / 跳出函数
    q    退出调试
    p    val        打印变量val的值
    p    &val        打印变量val的地址
    p    a+b        打印表达式的值
    p    arr(数组名)    打印数组所有元素的值
    p    *parr@len            用指向数组的指针打印数组所有元素的值
    x    /nfu    addr            打印addr表示的内存存储值
        n:是一个正整数,表示显示内存的长度
        f:表示显示的格式,x 十六进制; d 十进制; o 八进制
                                      t 二进制;    c 字符;     f 浮点数
        u:表示从当前地址向后请求的字节数,默认4bytes,可以指定:
                b 单字节    h 双字节    w 四字节    g 八字节
    display    自动显示,参数和p命令一样
    info display    显示自动显示信息
    undisplay    +    自动显示编号        删除指定的自动显示
    ptype  val        显示变量类型
    bt        显示函数调用栈

b)多进程调试命令

    (gdb)set follow-fork-mode mode

               mode  可以选择parent或者child,即:选择调试那个进程

              注意:未被选择的进程会直接执行结束

c)多线程调试命令

           a)利用info thread查看线程信息
           b)thread id 调试目标id指定的线程
           c)set scheduler-locking off | on | step:
                “off”表示不锁定任何线程;
                “on”只有当前被调试的线程继续执行;
                “step”在单步执行的时候,只有当前线程会执行;

补充:

1、set follow-fork-modechild 跟踪子进程

2、attach pid 选择跟踪那个子进程

3、infothreads 显示可调式线程信息

4. ldd main 查看某个程序使用了那些共享库

5. nm main 查看二进制目标文件中的符号表,即方法名,逻辑地址等。

6. objdump 可查看二进制目标文件的构成

7. strace 跟踪程序执行过程中都使用了那些系统调用

8. Ltrace 跟踪程序执行过程中使用了那些库函数

9. ipcs 查看系统当前 信号量 共享内存 消息队列的用使用情况

10. netstat (重重点) 可查看 tcp 连接状态 某个进程使用那个端口 查看发送缓冲区,接收缓冲区中的数据字节数

11. Lsof 可以查看某个进程打开了那些文件

12. Mpstat 查看多个多处理器使用情况 Mpstat -P cpu 编号 可查看某个处理器核心的使用情况

13. Tcpdump 网络抓包工具

14. Vmstat 可实时输出系统各种资源的使用情况,如 内存 cpu i/o 等

15. Ifstat (下载安装)网路流量监测工具

16. nc 快速构建一个网络连接,可以服务端运行,也可作为客户端。也能扫描某个端口

是否打开

17. Sar 收集系统性能信息

18. free 系统内存使用情况

19. Slabtop 实时显示系统如何分配各种缓存,及缓存的使用情况

20. Time 测试程序执行的性能。如实际运行时间, 用户态运行时间 内核态运行时间

21. iostat 显示磁盘 io 子系统信息统计情况

22. ifconfig 查看 ip

23. ethtool 显示以太网设备统计信息及配置信息

24. iptraf (yum 需要自己安装) 实时网络监测工具

25. ip 命令 网络设备信息统计及配置

26. watch 命令 周期采用样 某个命令的执行情况

27. taskset 设置某个进程在那个 cpu 上运行

你可能感兴趣的:(Linux操作系统)