松垮垮 松垮垮
首页
  • GPU并行编程
  • 图形学
  • 归并算法
  • 计算机视觉
  • css
  • html
  • JavaScript
  • vue
  • 压缩命令
  • cmdline
  • Docker
  • ftrace跟踪技术
  • gcov代码覆盖率测试
  • GDB
  • git
  • kgdb
  • linux操作
  • markdown
  • systemtap
  • valgrind
  • 设计模式
  • 分布式
  • 操作系统
  • 数据库
  • 服务器
  • 网络
  • C++
  • c语言
  • go
  • JSON
  • Makefile
  • matlab
  • OpenGL
  • python
  • shell
  • 正则表达式
  • 汇编
  • GPU并行编程
  • mysql
  • nginx
  • redis
  • 网络
  • 计算机视觉
  • 进程管理
  • linux调试
  • 【Python】:re.error bad escape i at position 4
  • 搭建ai知识助手
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

松垮垮

c++后端开发工程师
首页
  • GPU并行编程
  • 图形学
  • 归并算法
  • 计算机视觉
  • css
  • html
  • JavaScript
  • vue
  • 压缩命令
  • cmdline
  • Docker
  • ftrace跟踪技术
  • gcov代码覆盖率测试
  • GDB
  • git
  • kgdb
  • linux操作
  • markdown
  • systemtap
  • valgrind
  • 设计模式
  • 分布式
  • 操作系统
  • 数据库
  • 服务器
  • 网络
  • C++
  • c语言
  • go
  • JSON
  • Makefile
  • matlab
  • OpenGL
  • python
  • shell
  • 正则表达式
  • 汇编
  • GPU并行编程
  • mysql
  • nginx
  • redis
  • 网络
  • 计算机视觉
  • 进程管理
  • linux调试
  • 【Python】:re.error bad escape i at position 4
  • 搭建ai知识助手
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 压缩命令
  • cmdline
  • Docker
  • ftrace跟踪技术
  • gcov代码覆盖率测试
  • GDB
  • git
  • kgdb
  • linux操作
    • 基本
    • os
    • lsof命令
    • vim
    • chrome
  • markdown
  • systemtap
  • valgrind
  • 设计模式

  • 工具和开发
songkuakua
2025-02-15
目录

linux操作

# linux操作

Owner: -QVQ-

# 基本

目录 ls 目录 【参数】 参数: -F来区分目录文件(文件不带/)、 ls -R 递归展示子目录的文件 //这个最好单独写,r必须大写 -a显示隐藏文件(.开头) -l以列表显示 -h以M显示文件大小 -i显示文件文件id ll可以代替ls -l la可以代替ls -a
创建目录 Mkdir 【-p】目录名1(路径+目录名) 目录名2…… -p可以同时创建多层的目录,否则会报错
切换目录 Cd destination /开头的代表绝对路径 Cd - 返回上次路径 直接cd返回根目录
显示当前路径 Pwd
查看路径的真实大小 Du 【-sh】目录路径 -s 显示汇总的大小//没有这个将会递归显示各个大小 -h 表示以较高可读性的形式显示
查找文件 Find [查找位置] 查找标准 [处理动作] 查找标准: -name "文件名称": 根据文件名查找 -iname "文件名称":根据文件名查找,不区分字符大小写; -wholename "文件名称":后面的均为文件名称,适用于文件名带/ -user USERNAME: 根据用户查找; -group GRPNAME: 根据属组查找; -nouser:查找没属主的文件; -nogroup: 查找没有属组的文件; -type f: 普通文件 d: 目录 b: 块设备 c: 字符设备 l: 符号链接 p: 命名管道 s: 套接字文件 -size -size [+|-]2 查找大于/小于2M 不写+-则搜索1到2个数据块大小的 -mmin [-/+]5 查看5分钟内内容修改/没修改的文件 -inum 文件id 按文件id精确搜索 一个个遍历,较慢 文件名有空格可以用’ ‘括起来 查找标准可以链式增加
Locate 【option】【pattern】 Sudo updatedb 强制更新库
查看树状图 tree tree -I "node_modules|cache|test_*" 排除指定文件夹 -L指定最大展示深度 tree -I "node_modules|cache|test_*”
文件 查看整个文件 /合并多个文件 Cat 【参数】destination cat【参数】destination1 destination2…… > 新destination 参数: -n 显示行号 -b 有文本的显示行号
分页查看内容 More【参数】文件名/地址
查看部分文件 tail 【参数】destination -n 行数,显示最后n行 -F 用vim或其他对文件内容增删才实时返回 -f 用通道>>写进去的日志才能实时更新
Head 【参数】 destination -n 行数,显示头n行 //没有-F 的命令
以较少的内容进行输出 Less destination 向上键 向上翻动一页 向下键/enter 向下翻动一页 空格键 滚动一页 B 向上滚动一页 Q 退出 H 帮助 -N 显示行号(必须大写) 数字 向下移动几位
查看文件类型 File destination
创建文件 Touch 文件名、文件名…… 当前目录下不能文件名相同,否则创建失败
复制文件 Cp 【参数】文件名 目录(可以加上新文件名) -i 询问是否覆盖 -r 复制路径 目录不存在则创建
重命名文件/移动文件 Mv 旧文件名/目录 新文件名/路径 如果路径存在则移动,否则为重命名
删除文件 Rm【参数】 destination1 desrination2 -i 询问是否删除 -r 递归删除, -f 强制删除。 Rm my* 表示删除所有名字my开头的文件
查找内容 grep[options] [查找内容] [file] -n 显示行号 -c 显示匹配的行数 //两者只能输入一个 -v反向搜索 -i忽略大小写 查找内容前加^ 表示以查找内容开头的所有行 $表示以查找内容结尾的所有行
输出重定向 命令1(有输出结果的)> destination 命令1(有输出结果)>> destination 覆盖输出,将命令1的输出结果写入文件内 追加输出
统计文件内容信息 wc -lwc 需要统计的文件路径 -l 表示行数 -w 表示单词数(依空格来判断单词数) -c 表示字节数
管道 过滤 ls/|grep y 以|管道符为界,读出ls / 的内容 共grep y 读取 即查找根目录下取名包含y 的文件或目录
扩展处理 ls /|wc -l 统计根目录下所有文件个数
连接 创建硬连接 Ln 目录+文件名 硬链接名
创建软连接 Ln -s 目录+文件名 硬链接名
统计文件内行数 wc 【参数】【】 统计文件内行数

要在 Linux 中以后台线程的方式运行一个命令,可以使用以下方法:

  1. 在命令末尾添加 & 符号:在命令末尾添加 & 符号可以将命令放入后台执行,如下所示:

    command &
    
    1
  2. 使用 nohup 命令:nohup 命令会将指定的命令忽略挂断信号,可以在后台持续运行,即使登出也不会停止。示例:

    nohup command &
    
    1
  3. 使用 screen 或 tmux:screen 或 tmux 是终端多路复用工具,可以创建会话并在后台保持运行。首先要安装并启动 screen 或 tmux,然后在会话中执行需要后台运行的命令。

无论使用哪种方式,将命令放入后台执行后,可以使用 ps 命令查看后台进程,并且可以使用 jobs 命令查看当前 shell 中的后台任务。

# os

硬件 查看磁盘剩余空间 df 【-m/g】[-h] 【用M显示】[以可读性较高的方式显示]
查看可用的内存 Free 【-m/g】[-h] Swap值:临时内存,系统真实内存不够时用磁盘空间来充当内存
时间 输出时间 Date 2018年 03月 24日 星期六 15:51:48 Date +%F 2018-03-24 Date +%T 21:01:21 等价于Date +%Y-%m-%d (小写的y表示只输出年的后两位) //如果要输入空格用引号括起来或者用\加空格 %H 时 %M 分 %S 秒 Date -d "-1 day” "+%Y-%m-%d %H %M%S" 表示前一天的数据 Date -d "+1 year” "+%Y-%m-%d %H %M%S" 表示一年后
操作日历 Cal 输出当前月份 Cal -3 输出上个月+本月+下个月的日历 Cal -y 2018 输出某一年的日历
睡眠 sleep 秒【参数】 参数:(均可用小数表示百分比) s 秒 m 分钟 h 小时 d 天
默认文件 系统二进制文件 /sbin
用户安装的应用 /usr/bin
超管安装的应用 /usr/sbin
配置文件 /etc
外接设备,需要挂载才能用 /dev
除了root以外的其他用户的家目录 /home
进程 /proc
管理员的家目表 /root
s运行产生的临时文件 /tmp o
os系统日志文件 /var
系统 关机 shutdown(慎用,关了电源不好开机) Shutdown -h now 立即关机 Shutdown -h 时间 【要关机时显示的内容】 按时关机 Shutdown -c 关机取消 (立即关机)
关闭内存 halt
备份: 快照(还原点):包含所有内容(侧重短期备份,频繁备份可以用)库-右键虚拟机-快照
克隆: 复制,(侧重长期备份) 关机 库-右键虚拟机-管理-克隆
查看命令历史记录 history
读取主机名 Hostname 【-f】 -f输出当前主机名的FQDN(全限定域名)
重新启动计算机 Reboot Reboot -w 只写关机开机的日志信息
输出持续在线时间 uptime Users 表示连接数 Load average 负载
获取os的信息 Uname//获取操作系统类型 Uname -a 表示获取全部os信息 uname -r 获得版本号 hostnamectl 等价于uname -a可读性强 cat /etc/issue 也能获得系统版本信息
查看网络状态 Netstat 【-tnlp】 -t列出tcp协议的连接 -n表示将地址从字母组合转为ip地址 -l 表示过滤状体列中值为listen(监听)的连接数 -p显示发起连接的进程pid和名称
手册 Man 命令名 查询指令的用法
ulimit -a 查看 系统状态 -n 修改支持的并发进程数
操作网卡 ifconflg
进程 显示当前登录的用户名 whoami
查看进程信息 ps -e/-A 表示列出全部的进程 -f 显示全部的列 Ps -ef|grep 进程名称 Uid 用户名 Ppid 为该进程的父级进程 僵尸进程:没父级进程的 c:cpu占用率 stime:该进程的启用时间 tty:终端设备,发起该设备的识别符合,?表示系统发起的 time:进程执行时间 cmd: 进程的路径或名称
查看服务器进程占用的资源 Top 动态显示//按q退出 快捷键:M按内存大小排序 P 按cpu使用率排序 1 显示多个cpu的使用 pr表示优先级 virt:虚拟内存(申请大小) res:常驻内存(实际用的) shr:共享内存 常驻内存减去共享内存才是常用的内存 %mem 表示内存占用百分比 Command 进程名称或路径
控制软件服务 Service 服务名 start/stop/restart 启动/停止/重启 本机安装的apache
结束进程 Kill 进程pid Killall 进程名
异常退出 突然关闭或断电下次进入这个文件会出现异常页面 解决:将交换文件删除(临时文件) Rm -f .passed.swp
别名机制 创建自定义命令 1.打开映射文件~/.bashrc 2.在alias那行写入alias 新命令=‘旧命令’ 3.重新登录当前用户
语法 获得命令路径 whereis 命令
共享文件夹路径 mnt/hgfs
一个终端窗口开启多个窗口 创建一个名字为XX的screen screen -S XX
退出窗口 ctrl+a;按d
查看所有screen screen -ls
进入终端窗口 screen -r XX
删除窗口 screen -S XX -X quit
lsof 输出当前所有活跃进程
lsof | more 分页显示命令结果
列出指定用户打开的文件 -u 列出指定用户打开的文件,选项后面可以接多个用户名(空格隔开) 用户名前加^表示列出除这个用户外其他用户打开的文件

# lsof命令

lsof | more 分页显示命令结果

FD 说明
cwd 当前目录
txt txt文件
rtd root目录
mem 内存映射文件
TYPE 说明
DIR 目录
REG 普通文件
CHR 字符
a_inode Inode文件
FIFO 管道或者socket文件
netlink 网络
unknown 未知

列 DEVICE 表示设备ID

列 SIZE/OFF  表示进程大小

列 NODE 表示文件的Inode号

列NAME 表示路径或者链接

lsof +d ./data/ 列出目录中打开的文件

+D 选项会列出一个目录和其子目录中打开的文件,而 +d 选项只会列出当前目录下已打开的文件

列出打开但被删除的文件

lsof -u tt | grep deleted

列出所有打开的网络文件

lsof -i 4/6 列出打开的ipv4/ipv6网络文件

lsod -i:端口号 获得所有在指定端口号上打开的文件

lsof -i TCP/UDP 列出使用了TCP 或 UDP 协议的文件

列出TCP协议且端口范围为 1 到 1024 的文件:lsof -i TCP:1-1024

列出指定进程ID打开的文件

lsof -p 1,2,^4 列出进程1、2,忽略进程4打开的文件

# 编译

Untitled

gcc gcc 原始文件 -o 目标exe
gcc -c .c文件 编译
gcc -o 可执行文件名 编译生成的.o 链接 ./可执行文件名 才能运行这个文件
gcc -I(大写i) 路径 指定头文件路径
gcc 原始文件 -pg -o 目标exe 可以生成调试程序
gprof 程序 gmon.out -p>123123.0 先运行一遍可调式程序,将可调式程序里的gmon.out以不递归函数(-p)的形式显示,存入文件123123.0中 profile 已经记录了每个函数被调用的确切次数,但是为这些函数记录的时间(实际上是所有函数)都是 0.00。这是因为 sleep 函数实际上 是执行了一次对内核空间的调用,从而将应用程序的执行挂起了,然后有效地暂停执行,并等待内核再次将其唤醒。由于花在用户空间执行的时间与花在内核中睡眠的时间相比非 常小,因此就被取整成零了。其原因是 gprof 以固定的周期对程序运行时间进行采样测量,当程序挂起时,gprof就不会对程序进行采样测量。
-l 链接
-L指定链接地址 -L. 在当前位置下找链接目标 -L/usr/lib
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码。那么在产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。 如果使用,在生成.o和.so和.a时都要用,不然报错
-lpthread 包含线程的代码需要加上这个
-std=c++11
-lboost_thread 编译boost库的线程
make make [OPTION]... [TARGET]…
-c 路径 切换路径
-p 查看所有的预定义的变量的当前值
strings 打印出文件里可以打印的内容 常用于确定哪里.a里包含哪些.c文件 strings -f * | grep "my dear"

ldd 查看可执行文件的链接库

lsof -p pid | grep .so 查看运行时进程的动态链接

ldconfig:当安装新的共享库时,使用它更新共享库的缓存信息。

# 解压

.zip格式解压

unzip a.zip # 解压到当前目录
unzip a.zip -d /test # 解压到test目录
unzip -v a.zip # 查看压缩包内容

.tar.gz格式

tar -zxvf 压缩文件名.tar.gz #解压到当前目录
tar -zcvf 压缩文件名.tar.gz 被压缩文件名 #压缩命令

压缩

yum -y install zip # 安装zip
zip -r a.zip /test # 将test目录下的递归压缩到a.zip
zip -r b.zip *.conf # 将该目录下的.conf文件压缩
-q 不显示指令执行过程
-r 递归处理,将指定目录下的所有文件和子目录一并处理
-z 替压缩文件加上注释
-v 显示指令执行过程或显示版本信息
-d 更新压缩包内文件
-n <字尾字符串> 不压缩具有特定字尾字符串的文件

# 文件

查看 查看整个文件 /合并多个文件 Cat 【参数】destinationcat【参数】destination1 destination2…… > 新destination 参数: -n 显示行号 -b 有文本的显示行号
分页查看内容 More【参数】文件名/地址
查看部分文件 tail 【参数】destination -n 行数,显示最后n行 -F 用vim或其他对文件内容增删才实时返回 -f 用通道>>写进去的日志才能实时更新
Head 【参数】 destination -n 行数,显示头n行 //没有-F 的命令
以较少的内容进行输出 Less destination 向上键 向上翻动一页 向下键/enter 向下翻动一页 空格键 滚动一页 B 向上滚动一页 Q 退出 H 帮助 -N 显示行号(必须大写) 数字 向下移动几位
信息 查看文件类型 File destination
统计文件内容信息 wc -lwc 需要统计的文件路径 -l 表示行数 -w 表示单词数(依空格来判断单词数) -c 表示字节数
更全的显示文件信息 stat -f 显示文件系统的信息 -t 简洁的显示 显示的是文件节点的信息
权限 修改权限 chmod [可选参数] mode file... mode: [ugoa...][[+-=][rwxX]...][,...] u 表示该文件的拥有者,g表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 + 表示增加权限、-表示取消权限、= 表示唯一设定权限。 r表示可读取4,w 表示可写入2,x 表示可执行1,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执s 表示特色权限 【可选参数】 -c : 若该文件权限确实已经更改,才显示其更改动作 -f: 若该文件权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更) --version : 例子 chmod a+r file 对file文件给所有用户加读取权限 chmod a=rwx file 等同于 chmod 777 file r=4,w=2,x=1
操作 创建文件 Touch 文件名、文件名…… 当前目录下不能文件名相同,否则创建失败
复制文件 Cp 【参数】文件名 目录(可以加上新文件名) -i 询问是否覆盖 -r 复制路径 目录不存在则创建
重命名文件/移动文件 Mv 旧文件名/目录 新文件名/路径 如果路径存在则移动,否则为重命名
删除文件 Rm【参数】 destination1 desrination2 -i 询问是否删除 -r 递归删除, -f 强制删除。 Rm my* 表示删除所有名字my开头的文件
查找 查找内容 grep[options] [查找内容] [file] -n 显示行号 -c 显示匹配的行数 //两者只能输入一个 -v反向搜索 -i忽略大小写 查找内容前加^ 表示以查找内容开头的所有行 $表示以查找内容结尾的所有行
输出重定向 命令1(有输出结果的)> destination 命令1(有输出结果)>> destination 覆盖输出,将命令1的输出结果写入文件内 追加输出
复制粘贴 Ctrl+shift+c Ctrl+shift+v
删除光标前的所有内容 Ctrl+u
删除光标后的所有内容 Ctrl+k
清屏 clear/ctrl + l
中断进程 Ctrl+c

# vim

进入vim 打开指定文件 vim 文件路径
打开文件光标移动到指定行 Vim +数字 文件路径
打开文件,高亮显示关键词 Vim +/关键词 文件路径 ?没试出来
命令模式 行首 Shift+6
行尾 Shift+4
首行 gg
末行 g/shift+g
光标移动 j k h l 下 上 左 右
光标下移n行 数字n+enter
删除当前行 dd
复制当前行和往下n-1行 数字 n + yy
可视化复制/删除 Ctrl v  选择区块
y 复制  d删除
粘贴 p
撤销 U
取消撤销 Ctrl r
向下查找 / 查找字符串 此时n M 分别向后向前查找
向上查找 ?查找字符串 此时n M 分别向前向后查询
编辑模式 光标前插入 i
光标后插入 a
末行模式 进入 :
搜索 /内容
N/n  切换上/下一个结果
替换 :s/关键字/新内容【/g】 替换所在行第一个符合条件的
/g替换所在行所有符合的
:%s/关键字/新内容【/g】 替换所有行第一个符合条件的
/g替换所有行所有符合的
显示行号
取消显示 :set nu
:set nonu
指定字符替换 :%s/替换前/替换后/g % 表示整个文件范围,s 表示替换命令,g 表示全局替换。
退出vim 未修改退出 :q
取消修改退出 :q!
将文件保存另一个文件,不退出 :w 文件名
保存并退出 :wq
自动选择合适的退出方式 :x
控制着色 显示着色 Syntax on
关闭着色 Syntax off
计算器 在编辑模式下
Ctrl+r   再按=
配置vim 个人配置文件 Vim ~/.vimrc
全局配置文件 Vim  /etc/vimrc 写入  set nu  永远自动显示行号
文件加密 :X(大写)

# vimium

浏览
点击元素 转到 f
新标签后台打开 F
页面滚动 上 u/k
下 d/j
左 h
右 l
顶部 gg
底部 G
页面内元素的下一个页面 ]]
页面内元素的上一个页面 [
记录标记 m
跳转标记 `
复制 当前网址 yy
点击链接 yf
图片 yi
文字 yv
焦点 文本框 gi
页面内部 gf
页面最外部 gF
文本选择(自由) v
文本选择(行对齐) V
跳转 当前标签打开(搜索)复制的内容 p
网站的上一级 gu
网站的首页 gU
刷新 r
前进 L
后退 H
标签 前一个 J
后一个 K
前第1个 1g0
后第1个 1g$
左移标签 <<
右移标签 >>
新标签 重新开个当前的标签页 yt
新标签打开(搜索)复制的内容 P
关闭 x
重新打开关闭的 X
vim自己 帮助 ?
暂停快捷键 i
多功能搜索 o

# chrome

Chrome 键盘快捷键 - 计算机 - Google Chrome帮助 (opens new window)

界面元素
标签栏 F10
特定的选项卡 ctrl+数字
地址栏 ctrl+l
搜索引擎搜索 ctrl+k
打开
选项卡 ctrl+t
窗口 ctrl+n
重新打开关闭的 ctrl+shift+t
历史记录 ctrl+h
下载 ctrl+j
地址
当前标签www.* .com 格式访问 ctrl+enter
刷新 ctrl+r
上次更新: 2025/02/21, 14:57:10
kgdb
markdown

← kgdb markdown→

最近更新
01
搭建ai知识助手
02-23
02
边缘检测
02-15
03
css
02-15
更多文章>
Theme by Vdoing | Copyright © 2025-2025 松垮垮 | MIT License | 蜀ICP备2025120453号 | 川公网安备51011202000997号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 纯净模式