C语言Linux vim shell命令

news2024/10/6 12:19:37

无论是在插入模式或者是其他模式下对于文件的修改都是对于内存缓冲区进行修改,只有当点击w进行保存以后才会将数据写入到一个新的文件中的,将源文件删除,并且新文件改为文件的名字

1. action+motion

dG删到文件尾

ggdG先到开头再删除到末尾

d^到达行首

d$到行尾

w移动到下一个词的开头,b移动到上一个词的开头

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之后不跟文件名会从标准输入中读取数据进行统计。

文件的输入有两种方式可以是wc < text, wc text,

一般采用第二种方式,不会重定向标准输入因为文件有自己的文件缓冲区使用自己的缓冲区就可以,不用重定向指向标准输入缓冲区stdin

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的输入参数

2.cmd1 | cmd2 

ls -lh | grep -E "test"  列出当前目录的详细列表,并通过grep搜索包含"test"的行。

3. cmd1 | xargs cmd2 (通过例子与第二个指令进行区分)

查找当前目录下所有的.c文件,然后找到文件内容中存在main函数的行:

find . -name "*.c" | xargs grep -nE "\<main\("

创建硬链接

ln target_file link_name      target_file 硬链接的原始文件的名字,link_name 硬链接的名字

 不允许链接向目录,为了防止破坏目录结构

创建软链接

ln -s target_file slink_name    #添加一个选项-s,表示soft软链接

可以理解为快捷方式和指针,这个时候是可以指向目录的

远程复制指令

scp是一种在本地和远程计算机之间进行安全传输文件的工具

分为上传和下载

归档压缩指令

tar指令一开始是用于创建维护修改以及提取tar归档文件的指令

归档文件就是一种将多个文件或者目录合成单一文件的方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1619183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务项目实战-黑马头条(八):App端-文章ES搜索、MongoDB搜索记录和关键词联想

文章目录 一、今日内容介绍1.1 App端搜索-效果图1.2 今日内容 二、搭建ElasticSearch环境2.1 拉取镜像2.2 创建容器2.3 配置中文分词器 ik2.4 使用postman测试 三、app端文章搜索3.1 需求分析3.2 思路分析3.3 创建索引和映射3.4 数据初始化到索引库3.4.1 导入es-init到heima-le…

光纤网络电力控制系统设计方案:623-6U CPCI的光纤网络电力控制系统

6U CPCI的光纤网络电力控制系统 一、设备概述 柔性直流输电系统中用于控制与测量的FS系统&#xff0c;适用于风电和太阳能发电的并网快速数值计算和闭环控制&#xff0c;以及与直流输电系统的换流器有关的特殊控制功能&#xff0c;包括门控单元的信号处理。该控制板的最大…

Tensorflow2.0笔记 - BatchNormalization

本笔记记录BN层相关的代码。关于BatchNormalization&#xff0c;可以自行百度&#xff0c;或参考这里&#xff1a; 一文读懂Batch Normalization - 知乎神经网络基础系列&#xff1a; 《深度学习中常见激活函数的原理和特点》《过拟合: dropout原理和在模型中的多种应用》深度…

ZYNQ--PL读写PS端DDR数据

PL 和PS的高效交互是zynq 7000 soc开发的重中之重&#xff0c;我们常常需要将PL端的大量数 据实时送到PS端处理&#xff0c;或者将PS端处理结果实时送到PL端处理&#xff0c;常规我们会想到使用DMA 的方式来进行&#xff0c;但是各种协议非常麻烦&#xff0c;灵活性也比较差&am…

【Linux-14】进程地址空间&虚拟空间&页表——原理&知识点详解

前言 大家好吖&#xff0c;欢迎来到 YY 滴 系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

k8s calico vxlan式详解

之前的文章讲了k8s ipip模式的使用以及流量路径&#xff0c;本篇文章主要是来讲解一下vxlan 模式下pod 流量是如何通信的。 一、ipip模式转vxlan 修改calico backend参数 将calico_backend参数由bird设置为vxlan,因为vxlan部署不使用bgp 修改calico controllers的configmap…

Linux安装redis(单机和集群)

一、单机安装 1.源码安装&#xff08;方式一&#xff09; 1.1 下载并上传tar包 将redis-6.2.6.tar.gz 上传到/home/data/install_pkg/redis下 1.2 解压缩 cd /home/data/install_pkg/redis //切到指定目录 tar -xvf redis-6.2.6.tar.gz //解压缩 1.3 编译安…

Esp8266 - USB开关分享(开源)

文章目录 简介推广自己gitee项目地址:嘉立创项目地址&#xff1a;联系我们 功能演示视频原理图嘉立创PCB开源地址原理图PCB预览 固件烧录代码编译烧录1. 软件和驱动安装2. 代码编译1. 安装所需要的依赖库文件2. 下载源代码3. 烧录代码 使用说明1. 设备配网2. 打开设备操作页面3…

vue3去掉el-table底部白色边框

加入下面这一行代码就行了&#xff0c;我用的是less :deep(.el-table__inner-wrapper:before) {background: none;}效果图

腾讯云向量数据库-RAG介绍2

1.chunk拆分对最终效果的影响 2.改进知识的拆分方案 3.AI套件 4.相似性检索的关键&#xff1a;embedding技术 嵌入技术是相似性检索的关键&#xff0c;它能够将数据转换为向量表示&#xff0c;并通过比较向量之间的相似性来实现相似性检索&#xff1b;embedding&#xff1a;将…

全面解析平台工程与 DevOps 的区别与联系

平台工程的概念非常流行&#xff0c;但很多开发人员仍然不清楚它是如何实际运作的&#xff0c;这是非常正常的。 平台工程是与 DevOps 并行吗&#xff1f;还是可以相互替代&#xff1f;或者 DevOps 和平台工程是两个完全不同的概念&#xff1f; 一种比较容易将两者区分开来的方…

网站在线生成链接

源码简介 输入前缀、开始数字、结束数字、后缀 即可快速生成 几万、十万、百万 条链接。 支持 一键复制、 一键导出本地 txt 文件。 安装教程 纯HTML&#xff0c;直接将压缩包上传网站目录解压即可 首页截图 源码下载 网站在线生成链接-小8源码屋源码简介 输入前缀、开始…

算法练习(2)——约瑟夫环和坐标公式的推导

看一下上面的牛客题。题目的意思是n个小朋友围成一个圆环&#xff0c;编号从0开始&#xff0c;数m个数时&#xff0c;让小朋友出列&#xff0c;然后出列小朋友的下一个位置为0&#xff0c;继续数m个数&#xff0c;然后小朋友出来&#xff0c;直到最后一个小朋友&#xff0c;然后…

【Java Spring MVC项目异常解决】HTTP 500

HTTP 500状态码表示“内部服务器错误”&#xff08;Internal Server Error&#xff09;。这是一个通用的错误响应&#xff0c;表明服务器在处理请求时遇到了预料之外的情况&#xff0c;导致无法完成请求。500错误是服务器端错误的一种&#xff0c;与客户端无关。在Web开发中&am…

Docker常用命令(镜像、容器、网络)

一、镜像 1.1 存出镜像 将镜像保存成为本地文件 格式&#xff1a;docker save -o 存储文件名 存储的镜像docker save -o nginx nginx:latest 1.2 载入镜像 将镜像文件导入到镜像库中 格式&#xff1a;docker load < 存出的文件或docker load -i 存出的文件…

网络基础3

目录 网络层基本概念IP协议头格式网段划分特殊的IP地址IP地址的数量限制运营商的理解全球网络的理解私有IP地址和公网IP地址路由IP层分片与组装数据链路层以太网帧格式以太网通信原理ARP协议ARP数据报的格式DNS域名简介ICMP协议NAT技术NAPT技术代理服务器 网络层基本概念 一个…

PostgreSQL 免费的对象-关系数据库

目录 一、什么是数据库 二、ORDBMS 的一些术语 三、PostgreSQL 概述 四、PostgreSQL数据库优点和缺点 4.1PostgreSQL数据库的优点 4.2PostgreSQL数据库的缺点 4.3PostgreSQL 特征 五、Linux 上安装 PostgreSQL 5.1Yum 安装 PostgreSQL 5.1.1安装postgreSQL的官方yum仓…

【学习】软件测试自动化,是未来的趋势还是当前的必需

在当今快速迭代的软件开发周期中&#xff0c;速度和质量成为了企业生存的关键。随着DevOps实践的普及和持续集成/持续部署&#xff08;CI/CD&#xff09;流程的标准化&#xff0c;软件测试自动化已经从未来的趋势转变为当前的必要性。本文将探讨自动化测试的现状、必要性以及其…

[Qt的学习日常]--初识Qt

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、Qt的基本…

漫谈AI 时代的信息模型

模型化- 数字化转型的重要基石 在各行各业推行数字化转型过程中&#xff0c;构建信息化模型十分重要&#xff0c;它是数字化转型的基石。事实上&#xff0c;数字化转型的核心是“万物皆模型”&#xff0c;在工业领域&#xff0c;以德国为主导的工业4.0 发展进程中&#xff0c;…