Linux常用命令

1、查找进程

1
ps aux | grep nginx

grep是过滤,其他命令里面的同理。

2、查看网络端口占用

1
netstat -anp | grep 80

3、查看进程占用cpu和内存

1
top -p 进程号

4、挂载u盘或共享文件夹

  • 挂载共享文件夹

    1
    2
    3
    mkdir dir /home/username/SharedFloder #linux上的共享文件夹
    sudo chmod 777 /home/username/SharedFloder #给目录读写执行权限
    sudo mount -t vboxsf WinFloder /home/username/SharedFloder #临时挂载
  • 挂载u盘

    1
    2
    3
    4
    fdisk -l #查看u盘设备(假设为sdc1)
    mkdir /mnt
    mount /dev/sdc1 /mnt
    umount /dev/sdc1 #卸载u盘

5、apt用法

1
2
3
4
apt-cache depends package #查看包的依赖
apt-cache search package #搜索包
apt rdepends package #查看该包被哪些包依赖
apt build-dep package #安装一个包对应编译依赖环境

6、vim常用快捷键

  1. 跳转指定行数 :n

  2. 跳转文件末尾 G

  3. 搜索文件内容 :/content

  4. 查找下一个搜索到的内容 n

  5. 查找上一个搜索内容 N

  6. 剪切行 dd

  7. 粘贴 p

  8. 复制行 yy

  9. 复制指定内容 v进入可视化,选中指定内容,y复制

  10. 批量添加注释 ctrl+v进入块可视化,选中需要注释行,按大写I开始插入,在首行添加注释符号#或者//,然后Esc,就会自动注释所有选中行

  11. 批量取消注释 ctrl+v进入块可视化,选中需要注释行(不需要选中最后一行)的注释符号,不要选中其他内容,就是选中第一列注释符号,按d删除,按esc退出

  12. 撤销操作 u

  13. 恢复上一步被撤销的操作 ctrl+r

7、dpkg

  1. 查看包的版本信息

    1
    dpkg -l package
  2. 查看包的文件

    1
    dpkg -L package
  3. 查看文件对应的包

    1
    dpkg -S filename

8、xprop

  1. 查看窗口进程

    1
    xprop           #执行完之后点击窗口就会获取窗口信息

9、proc

  1. 查看进程的命令行参数

    1
    cat /proc/ID/cmdline  #ID是指进程id,Linux一切皆文件
  2. 查看进程的环境变量

    1
    cat /proc/ID/environ  #Qt在Linux上很多bug就是因为环境变量导致的
  3. 查看进程的内存结构

    1
    cat /proc/ID/maps

10、GDB和SSH远程调试

代码在别人的机器上发生异常,这时候需要远程调试,首先需要连接对方机器:

1
2
ssh user@host             #不带图形界面
ssh -X user@host #可以启动带图形界面的程序

调试代码gdb:

1
2
3
gdb program   #启动gdb
run #启动程序
bt #打印当前堆栈

大多情况下,发布的程序都是没有调试信息的,也就是看不到具体异常在哪里发生,这时候可以安装程序对应的dbgsym包,这是程序打包时一起产生的调试信息包。

11、apt包管理冲突解决

当安装一个包发生错误时,此时该包处于一种half-install(半安装)状态,如果继续使用apt安装或者卸载其他包时,dpkg会尝试继续处理上次为安装完成的包,导致后面的操作也会失败,截图示例如下:

上图是在卸载toshibaest2822am时,因为上次toshiba-est2822amf-cups没有安装完成所以继续安装,但是又有问题,解决办法就是去掉dpkg的包状态文件里面的关于toshiba-est2822amf-cups的整段信息,然后重新卸载toshibaest2822am即可。dpkg的包状态文件是/var/lib/dpkg/status。

12、readelf查看二进制信息

file命名无法查询静态库的二进制信息,可以通过此命令

1
readelf -h *.a 

Linux常用命令
http://yoursite.com/2019/04/16/Linux常用命令/
作者
还在输入
发布于
2019年4月16日
许可协议