当前位置: 首页 > article >正文

1.王道_常用命令

用户管理

  • who 有几个用户登录

    • pts 使用的终端
  • 用户类型

    • # root
    • $ 普通用户
  • sudoer

    • sudo 临时变成root,执行命令
  • su 切换用户

  • passwd

    • passwd修改自己的密码
    • passwd 用户
  • 查看已存在的用户个数

    • cat /etc/passwd
    • 密码存放在 /etc/shadow
  • useradd

    • 直接使用此命令,不会产生/home下的家目录
    • 直接使用此命令,shell为sh
    • useradd -m -s /bin/bash
    • -m 创建家目录
    • -s 指定shell版本
  • userdel

    • 同时删除家目录为-r
  • man

    • 在这里插入图片描述

    • 1 命令

    • 2/3 系统调用和库函数

文件和文件系统相关的命令

  • 分层

    • Linux一般使用ext4
    • windows一般使用 NTFS
    • 在这里插入图片描述
  • ls

    • 在这里插入图片描述
    • -a 隐藏文件也显示
    • -l
    • 在这里插入图片描述
  • ln

    • -s
      • 软链接
    • 硬连接
      - 刚创建的文件因为有.和…从而硬链接数显示为2在这里插入图片描述
  • cd

    • cd ~
    • cd -
      • 回到上一个目录,只能保存一个位置
      • 实际上是存储在OLDPWD变量中,在环境变量env
      • 在这里插入图片描述在这里插入图片描述
      • 在这里插入图片描述
  • mkdir

  • rmdir 删除空目录

  • cp

    • -i 如果发生覆盖则提示
    • -f和-i相反
    • -r 拷贝目录
  • chmod

  • rm

    • 删除一个文件,看的是.目录的权限
      -在这里插入图片描述

文件查找

  • find

    • 在这里插入图片描述

    • -name

      • 在这里插入图片描述
      • -name 模糊查找 通配符
        • * 任何字符,包括空字符
        • ? 一个字符
        • [] [0-9] [a-f] 集合内的任何字符
      • -user
      • -uid
      • -group
      • -gid
      • -perm 按照权限查找。
      • -size 按照大小查找 默认单位是 512字节
        • + 表示大于
        • -表示小于
        • 不加表示等于
        • 在这里插入图片描述
      • empty 找到空目录
      • time
        • a access 访问时间 atime amin
        • c status change 状态改变
        • m modify 内容修改
        • 在这里插入图片描述在这里插入图片描述在这里插入图片描述
    • 查询条件

      • -a
      • -o
      • ! 补集
  • truncate

    • 在这里插入图片描述

磁盘相关

  • df

    • -h
  • du

    • 查看指定目录占用的空间
    • -d 查看的深度
      • -d 0 查看本文件的大小
      • -d 1 查看本目录下的各个文件的大小

文件查看和处理

  • cat

    • -n 所有行都编号
    • -b 空行不编号
    • -s 空行压缩
  • file

    • 查看文件的类型
  • echo

    • 直接使用,会带换行
    • -n去掉换行
  • 创建空文件

    • touch fil1
    • echo -n fil1
    • cat > fil1 在Ctrl+D 输入EOF终止符
  • 系统日志文件

    • /var/log/syslog
  • wc

    • word count在这里插入图片描述
  • iconv

    • 在这里插入图片描述

文件内容查找

  • grep
    • 正则表达式 : 高级版本的通配符
    • -n 显示行哈
    • -E 使用最新版本的正则表达式
    • 在这里插入图片描述在这里插入图片描述在这里插入图片描述
    • \<a a出现在单词的开头

命令的组合

  • ;

  • 管道

  • xargs

    • 将标准输入的内容转换为命令的参数
      • xargs ls -al
        • 在这里插入图片描述在这里插入图片描述
        • 在这里插入图片描述在这里插入图片描述
  • 命令替换

    • 在这里插入图片描述

打包和压缩

  • tar

    • 在这里插入图片描述
  • tar cfv file.tar f1 f2 f3 打包 打包之后可以追加包

  • tar xfv file.tar 解开包

  • tar cfvz file.tar.gz f1 f2 f3 压缩包 压缩之后不能追加

  • tar xfvz file.tar.gz f1 f2 f3 解包

远程拷贝

  • scp
    • 基于ssh的cp
    • 在这里插入图片描述

身份认证

  • 密码
  • 密钥
    • 在这里插入图片描述

Vim

  • vim分为三种模式:普通(命令)模式,编辑状态和视觉模式。

a 从光标后面开始添加文本(表示新增 append)
A 从光标所在行的末尾开始添加文本
i 从光标前面开始插入文本(表示插入 insert)
I 从光标所在行的开始处插入文本

光标移动

^ 光标移动到行首 -------------- -------------- -------------- --------------
$ 光标移动到行尾 -------------- -------------- -------------- --------------
ctrl+d 向下翻半页(down)
ctrl+f 向下翻一页(forward)
ctrl+u 向上翻半页(up)
ctrl+b 向上翻一页(backward)
gg 光标定位到文档头 -------------- -------------- -------------- --------------
G 光标定位到文档尾 -------------- -------------- -------------- --------------
H 光标定位到当前页首(head)
L 光标定位到当前页的最后一行的行首(lastline)
w 光标往后移一个字 (word)
b 光标往前移一个字 (block)
[n]+ 光标向后移动n行,[n]表示一个整数 10+
[n]- 光标向前移动n行,[n]表示一个整数 10-
[n]G 光标定位到第n行行首, [n]表示一个整数 20G -------------- -------------- -------------- --------------
:[n] 第n行

命令模式
删除和修改
d就行剪切,p就是粘贴

x 删除光标处的字符
dd 删除光标所在的整行
3dd 删除光标所在行以及下面的两行(删除3行)
d$ 删除光标到行尾的文本,常用语删除注释语句 (等价于d$)
d^ 删除光标到行首的文本 dt"删除到双引号位置
1,19d删除1到19行
dw 删除一个字
d3w 删除三个字
yy 复制光标所在的整行 yank复制
[n]yy 从光标开始往下复制n行,[n]表示一个整数
p 将复制后的文本粘贴到光标处
u 撤销上次操作
取消撤销:Ctrrl+r

查找与替换

/[str] 查找字符串str,[str]表示要查找的字符串
回车后会加亮显示所有找到的字符串,接着输入n移动到下一个找到的字符串,输入N移动到上一个找到
的字符串
: s/[src]/[dst]/[i忽略大小写][g处理本行中所有的匹配项] 用dst替换字符串src
: s/hello/world/ig 替换一行
:x,y s/[src]/[dst]/ig(x-y行中找)
:3,6 s/hello/world 将3-6行里面,找到第一个hello替换为world
:%s/[src]/[dst]/g 将文档中所有src的字符串替换为dst字符串
:%s/^ //g 将文档每一行的行首的空格去掉
:%s/^\t//g 将文档每一行的行首的制表符去掉
提问:如何使用替换命令注释所有块内代码?
提问:如何使用替换命令转换实现制表符和4个空格之间的转换?

可视模式
在这里插入图片描述
选中之后,按=,代码对齐
gg=G全文代码对齐

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • vimdiff

编译工具链

gcc

  • 三种主流的编译工具链

    • gcc
      • MinGW(gcc移植到Windows的)
    • clang
    • msvc
      • windows
  • <>/usr/include目录中查找

  • ""在本目录下进行查找

  • 生成可执行程序的流程

    • 预处理 a.i gcc -E
      • #include文件包含
      • #define宏定义
    • 编译 a.s 汇编语言代码 gcc -s
      • 变量名/数组名都变成地址
      • 类型信息变成指令的长度
      • 函数调用 压栈/弹栈
      • 调用其他函数 call指令
    • 汇编 a.o 机器语言 gcc -c
      • as命令 汇编语言(.s) -> 机器语言(.o)
      • 在vim中输入:!xxd.o翻译为十六进制,:!xxd -r十六进制恢复到原来的 或者od -h test.o
      • nm 列出目标文件的所使用的函数
    • 链接
      • ld链接器
      • ldd 可以看到用到那些库

在这里插入图片描述
在这里插入图片描述

  • -D 定义一个宏
  • -Wall 开启所有警告
  • -I 设置头文件搜索路径,默认是当前目录

gdb

  • gcc -c的时候需要加上-g选项 ,补充符号信息

    • gcc -o 编译优化 o0, o1,o2,o3。调试的时候不要开启编译优化
  • 启动gdb的两种方式

    • gdb 然后 file test
    • gdb test
  • list

    • list 列出10行代码 按一下list 列出下一个10行代码,回到第一个10行list 1 list可以简写为l
    • list print 列出print函数的代码
    • list test.c:10列出test程序的第10行
  • run/r 执行

  • 断点操作

    • break\b print 打断点
    • info\i break\b 展示断点信息
    • disable 1 取消断点1
    • enable 1 断点1恢复
    • delete 1 删除 断点1
  • 监视

    • print arr[1] 看一次
    • display arr[1] 一直看
    • 关闭display
      • 在这里插入图片描述
  • next/n 逐过程

  • step/s 逐语句 会进入函数

  • continue 运行到下一个断点

  • 看内存

    • x
    • 在这里插入图片描述
  • 查看栈的情况

    • backtrace/bt
  • ulimit -a 是 Unix/Linux 系统中用于 显示当前用户进程的资源限制 的命令。这些限制决定了进程可以使用的系统资源(如内存、文件句柄、CPU 时间等)。

  • 使用gdb处理系统报错

    • 调试core文件 man core

      • 在这里插入图片描述
      • 如果没有core文件,可能的原因
        • 在这里插入图片描述
    • 使用gdb调试

      • 在这里插入图片描述
  • 添加命令行参数

    • 在这里插入图片描述
    • 在这里插入图片描述

库文件

  • 头文件在编译阶段起作用,库文件在链接阶段起作用。

静态库

在这里插入图片描述
在这里插入图片描述

动态库

在这里插入图片描述
在这里插入图片描述

产品更新

  • 升级库
  • 通过软链接

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

Makefile

  • 代码构架工具

  • 增量编译

  • 文件名

    • Makefile
    • makefile
  • 在这里插入图片描述

  • 命令什么时候会执行

    • 目标没有产生时—伪目标就是利用这种规则
    • 依赖的文件的日期发生改变时
  • 伪目标

    • 什么是伪目标,看是否可以生成目标
    • 文件不存在,但是一直生成不了 ,就会一直执行
    • 在这里插入图片描述
    • 在这里插入图片描述
    • 全量编译
      • 在这里插入图片描述
    • 在这里插入图片描述
  • 变量

    • 只能操作字符串
    • 自定义变量
      • 在这里插入图片描述
    • 自动变量
      • 在这里插入图片描述
    • 预定义变量
      • 在这里插入图片描述
      • 可以更改预定义变量的值
        • 在这里插入图片描述
  • %匹配符

    • 在这里插入图片描述
    • 在这里插入图片描述
  • makefile提供的函数

    • SRCS:=$(wildcard *.c) 找出当前目录下的.c文件
    • OBJS:=$(patsubst %.c %.o $(SRCS))将变量SRCS中的.c变成.o
    • 在这里插入图片描述

http://www.kler.cn/a/551659.html

相关文章:

  • 嵌入式学习第十六天--stdio(二)
  • SQL进阶技巧:如何统计用户跨端消费行为?
  • STM32 HAL库USART串口中断编程:环形缓冲区防止数据丢失
  • 【开源】基于SSM框架网上招聘系统(计算机毕业设计)+万字毕业论文+远程部署+ppt+代码讲解 ssm592
  • android studio 界面启动模拟器无反应——从命令行启动模拟器
  • LLaVA-Mini部署教程 :模态预融合与视觉符元压缩,重新定义图像视频理解边界!
  • 调试变量的变化 vs数据断点调试
  • 核函数简述
  • 【MySQL排错 】mysql: command not found 数据库安装后无法加载的解决办法
  • 高效执行自动化用例:分布式执行工具pytest-xdist实战
  • leetcod20-有效的括号
  • 基于机器学习的医疗图像分析:从图像识别到精准诊断
  • 关于JavaScript中的事件
  • 设计模式-结构型-享元模式
  • 【Python pro】基本数据类型
  • CentOS/RHEL如何更换国内Yum源
  • 深度学习笔记之自然语言处理(NLP)
  • 推荐几款较好的开源成熟框架
  • vue中为什么在实现双向绑定时
  • BSD协议栈:UDP输入