C语言Linux vim shell命令

embedded/2024/11/14 13:12:50/

1. action+motion

dG删到文件尾

ggdG先到开头再删除到末尾

d^到达行首

d$到行尾

2. num + action

2dd删除两行

t"向后寻找"找到,找到前面一个位置

f"向后寻找"找到,直接找到本来的位置

diw删除单词并保持在视图状态,ciw删除并进入插入状态

ci”删除到“并且进入编辑模式

p粘贴到下一行

P粘贴到上一行

将文件进行格式化整齐,gg =G  (格式化)  gi  (回到格式化以前的位置)

:21,25d

:21,25y

yw复制到下一个单词词首

v行选,ctrl+v列选

多行注释 ctrl + v    +    I      +      //     +   esc      修改以后用@a快速

man浏览页面的时候f向下翻一页,b向上翻一页,q退出

关闭主机以前一定先关闭虚拟机否则会损坏虚拟机文件

sudo shutdown now 立刻关机

linux系统用于服务器所以一般服务器不是一个人在使用,可以多个人登录同一个Linux系统

硬链接允许VFS当中的多个文件可以映射到物理文件系统的同一文件中,也就是说,尽管在VFS中,这些文件或目录看起来可能位于不同的位置,或者有不同的名字,但它们实际上都代表同一份数据和信息。

pwd打印当前工作目录

cd回到家目录

cd /user/lib 切换到user/lib目录

cd / 切换到目录/

cd ~ 切换到用户家目录

cd .. 切换到父目录上一级目录

mkdir -p a/b/c 创建多级目录,加上-p是当父节点不存在的时候会创建父目录然后再创建子目录

mkdir dir1 dir2 dir3 创建多个目录

rmdir删除空目录,只能是空目录!

rmidr -p

通配符:(还需要学学怎么就好用了???)

*:表示匹配0个或者多个任意字符

?: 表示1个任意字符

[...]表示根据括号中的字符进行匹配[characters]匹配括号内的任意一个字符[!character]匹配括号外的任意一个字符

ls+文件名  显示文件的相关信息

ls+目录名  显示目录的相关内容

-a查看全部内容(含以 . 开头的隐藏文件)

.存储当前工作目录的路径

.. 存储当前工作目录的父目录的路径

cd..跳到上一级目录中去

ls -i 显示的数字是inode 如果两个的数字相同说明指向的是一个inode节点

【重要】ls -l 显示的总用量表示所有的文件占用的磁盘空间总和

第一列的字符- 表示普通文件

        d目录文件       l  符号链接(软连接,快捷方式)    c 逐字符处理的硬件设备鼠标键盘显示器

在读写权限之后就是硬链接数, 文件拥有者名,拥有组名

ls -lh 显示更详细的文件大小信息

cp用于复制文件或者目录

cp text1 text2 将text1复制到text2中,2存在则覆盖

cp -n text1 text2 若2存在则不覆盖

cp -r dir1 dir2 递归将目录dir1复制到dir2(目录文件必须要加-r)

cp 创建新文件的时候创建一个内容相同但是有不同inode编号的新文件

在进行覆盖的时候只是将内容进行修改,并没有修改文件的元数据

mv移动文件和目录,也可以用来对于文件或者目录重命名

mv text1 text2 将text1重命名为text2,若2存在则 "覆盖"

mv dir1 dir2 将dir1重命名为dir2

mv -n text1 text2 若2存在不 "覆盖"

mv text1 text2 dir 将text1和text2移动到dir中,若文件存在就 "覆盖"

mv -i text1 text2 dir 若文件存在则询问“ 覆盖 ” 吗

在Linux中重命名不能简单的理解为文件改名,因为大多时候是改变路径的

【mv 与cp区别】mv不是文件内容数据上的覆盖(cp是这样),而是直接删除文件,然后将源文件重命名

mv指令的覆盖是不涉及修改物理文件的所以mv命令的执行效率是更高的

cp 在 复制目录的时候需要加上 -r 表示递归复制子目录,mv指令不需要因为mv不要递归复制就是改个指针位置的命名

rm删除文件和目录

rm text1 删除文件text1

rm text1 text2 删除文件1,2

rm -i *.txt 删除当前目录下所有以.txt结尾的文件,并询问

rm -rf dir 递归删除目录dir

rm删除不可能恢复小心!

【与rmdir】rmdir只能删除空目录

指令取别名

alias 查看别名

alias h = 'history' 设置别名

alias指令定义的别名只在这一次连接会话中生效,若想持续生效要改配置文件哎

改变文件权限指令

chmod用于对于文件的权限进行修改

目录:

目录文件中存储的是其他文件和子目录信息(目录项),目录项中主要存储文件名inode编号(目录项不会存文件内容)(文件类型,权限,硬链接数文件大小等数据信息存在inode中)

逻辑上目录文件的目录项以李娜表的形式存储,有些文件系统可能采用b树或者哈希树

目录权限

写权限: 目录内进行新增删除或者重命名文件或者子目录用到 写 权限

执行权限: 有执行权限就是可以进入目录,没有执行权限的目录是不能进入的,目录是不可读也不可写的(所以当没有执行权限的时候即使有读写权限也没有用)

普通文件权限

【区分】查看目录下的文件名称是不需要有文件的读权限的,只需要有目录的执行和读权限

【注意】文件的删除和重命名在于目录的写权限和执行权限,而不在于文件本身

执行权限也是操作一个文件必备的

chmod 修改文件的权限两种常见的方式

文字设定法:

$ chmod a-r dir1/   #表示将目录dir1/的所有用户的读权限(Read)设置为关闭。

数字设定法:九个位置有权限与否采用二进制表示,后用八进制输出775

【技巧】二进制中奇数的化最后一位一定是1


文件相关命令

1.创建文件:

最常用的三种方式:

echo "Hello World ! " > text

touch text1 text2 text3 (要求文件们不存在)

vim hello.c 

2.which查找可执行文件 显示可执行文件的完整路径

which bash 查看bash的路径

which ls tree 查看命令ls和tree的路径

which -a vim 查看vim的所有路径(在有多个vim版本的时候)

find命令

find命令在一个或者多个目录中递归查找指定文件或者目录,只需要大体知道要查找什么就可以

find /usr/include -name "stdio.h" 在include目录下查找stdio.h文件

find . -name "*.c" 当前目录下查找.c结尾的文件

find . -size 5M 当前目录下大小 为 5M的文件

find . -size +5M 当前目录下大小 大于 5M的文件

find . -user he 当前目录查找he用户的文件

.表示当前目录

cat查看文件内容

cat -n /etc/passwd 在屏幕上打印用户的相关信息(显示行数)

head 和 tail查看文件的前几行和后几行

less 查看文件内容

重定向指令:改变源或者目的地

wc(word count)统计输入数据中行数单词数和字符数的指令  wc之后不跟文件名会从标准输入中读取数据进行统计。

ctrl + D表示输入EOF结束键盘录入

重定向往往重定向自己的文件缓冲区这样就可以获得更多的信息

grep搜索文件内容(globally search for a regular expression)

按正则表达式去搜索匹配文件内容,如果文件中某一行匹配指定的正则表达式,grep命令则会显示这一行。

grep强大也主要是在于正则表达式上

正则表达式的三个核心的概念

基本单位,基本操作, 基本单位出现的位置找到某个字符串出现的位置和情况

匹配所有以f或F开头,以t结尾的单词: \<[fF][^ \t]*t\> 注意中间是不能取空格还有制表符避免出现跨字符的情况,\<与\>组合表示一个单词

命令的组合

命令的组合主要是有三种方式:1.cmd;cmd2单纯先执行a再执行b mkdir dir;cd dir

2. cmd1 | cmd2 |表示管道,表示将cmd1指令输出的结果作为cmd2的输入

3. cmd1 | xargs cmd2 表示将cmd1 输出结果的每一行作为cmd2的输入参数


http://www.ppmy.cn/embedded/5680.html

相关文章

Windows10安装配置nodejs环境

一、下载 下载地址&#xff1a;https://nodejs.cn/download/ ​ 二、安装 1、找到node-v16.17.0-x64.msi安装包, 根据默认提示安装, 过程中间的弹窗不勾选 2、安装完成后, 打开powershell(管理员身份) ​ 3、命令行输入 node -v 和 npm -v 如下图所示则nodejs安装成功 ​ 三…

CUDA编程【1】

CUDA编程【1】 29. 检测内核执行时间29.1 CPU计时器29.2 内核同步 30. nvprof监测内核执行时间30.1 监测结果30.2 使用方法 31. 用网格和块索引数据31.1 索引结果31.2 索引原理 36. 线程束分支优化37. 线程束分支特点37.1 分支特点37.2 使用方法 38. 线程束计算资源分配38.1 线…

20240419金融读报:加大绿色债券支持绿色金融货币政策仍有空间人民银行对金融服务实体理解摘抄

1、国家发文支持通过发行绿色债券、绿色资产支持正确等支持绿色金融。但2023年绿色债券发行规模占比1.17%。&#xff08;是不是可以买一支&#xff0c;乘风起&#xff1f;&#xff09; 2、4月18日&#xff0c;国新办举行新闻发布会&#xff0c;表明货币政策还有空间&#xff0c…

docker基础

docker为什么出现 docker和传统虚拟机的对比 docker三要素 docker平台结构 docker常用命令 docker iamges docker search 容器命令 docker ps 镜像分层 容器数据卷 查看数据卷是否挂载成功 读写规则 分布式存储 容错性

基于51单片机智能鱼缸仿真LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机智能鱼缸仿真LCD显示 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接&#xff1a; 基于51单片机智能鱼缸仿真LCD显示( proteus仿真程序设计报告讲解视频&#xff09; 仿真图prot…

嵌入式学习57-ARM7(字符设备驱动框架led)

知识零碎&#xff1a; kernel 内核 printk 内核打印 cat /proc/devices mknod ? 查看指令 gcc -oapp hello.c 字符设备驱动流程 字符设备程序运行流程 gcc中-c和-o是编译时可选的参数 -c …

有没有手机上使用的库存软件

库存软件是一种仓库的信息管理系统&#xff0c;它主要针对出库与入库这些数据进行管理&#xff0c;传统的库存管理都是在电脑上安装一个专门的数据库管理系统进行管理&#xff0c;这也是一种比较成熟的管理方式&#xff0c;那么有没有手机上使用的库存软件。 手机上使用的库存软…

【Java网络编程】网络编程中的基本概念及实现UDP、TCP客户端服务器程序

目录 一、什么是网络编程&#xff1f; 二、网络编程中的基本概念 1. 客户端和服务器 2. 请求和响应 三、Socket套接字 UDP数据报套接字编程 1. DatagramSocket 2. DatagramPacket 3. UDP回显客户端服务器程序 4. UDP字典客户端服务器程序 TCP流套接字编程 1. Serve…