首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux,常常会用到 vim ,其中 q ,wq wq!的区别,以及 vim -r 的作用

w ->表示保存退出 wq! ->表示强制保存退出,可以保存”readonly”只读文件 q ->在vim中表示退出 q! ->表示强制不保存退出,不对文件进行保存 wqwq!...的区别如下: 有些文件设置了只读,一般不是修改文件的,但是如果你是文件的owner或者root的话,通过wq!...还是能保存文件退出 如果文件设置为只读了的话,用 :wq命令是不能保存并退出的,但是最高权限者可通过wq!来进行文件的保存并退出文件。 已设定选项 ‘readonly’ (请加 ! 强制执行) !...“x” 和 “wq” 的区别如下: (1) :wq 强制性写入文件并退出(存盘并退出 write and quite)。即使文件没有被修改也强制写入,并更新文件的修改时间。...vim :!、:r、:w 命令 :!{cmd} 「 执行cmd命令 」 :r[ead] !{cmd} 「 输出到缓冲区」 :w[rite] !

5.1K31
您找到你想要的搜索结果了吗?
是的
没有找到

Linux】关于Linux的权限

Linux的文件类型和后缀无关(后缀名可以作为提示,用户可以使用后缀区分文件类型),但是对linux来说区分文件和文件本身的后缀是无关的(但是gcc等工具对文件后缀可能有要求)。...开始之前,我们输入ll指令,来看看前面10个字符代表什么意思: 在linux,是通过ll显示的众多属性列的第一列的第一个字符来区分文件类型的。...则无法用ls等命令查看目录的文件内容....可写权限: 如果目录没有可写权限, 则无法在目录创建文件, 也无法在目录删除文件 所以这也是为什么系统规定目录的起始权限从777开始,所有的目录被创建出来,一般都要能够被进入 换句话来讲, 就是只要用户具有目录的写权限..., 用户就可以删除目录的文件, 而不论这个用户是否有这个文件的写权限。

7.2K20

linux udp编程_linuxsocket编程

在前面的文件,我们介绍了linux网络编程与IP相关的知识和常用的函数总结,本文针对具体的UDP通信,来详细的介绍UDP通信的使用,包括UDP通信中的点对点通信,多播,广播等。...2、在上面的通信框架,客户端并没有使用bind的操作,确实如此,因为客户端一般作为通信的发起者,都是主动往外发送数据,如1的描述,这个过程由系统聪明的帮我们记录的端口信息,当服务端有数据回复的时候,...3、关于服务端的bind操作,在存在组播,多播等多种通信方式的情况下,也还有一些需要注意的点,这个我们在下面的章节描述 二、UDP通信的基本函数说明 在UDP,完成一个基本的通信涉及到的几个函数如下...IP信息,addr_size存放addr数据的长度,但是,在实际使用,这样调用后,我们打印addr的信息,确实一个错误的IP信息或者0.0.0.0这样的地址信息,这是什么原因呢,在那个男人的的描述...但是我们在实际的使用,通常只是某些主机对通信数据感兴趣,而不是整个局域网上的所有主机都需要这个数据,这种情况就需要组播登场了。 3.1、组播的IP地址 组播的地址是特定的,D类地址用于多播。

11K10

Linux】进程信号(

在上一个文章,关于信号的产生,还有没补充完的,所以在这篇文章补充一下 1.信号的产生 硬件异常产生信号 a/=0问题 创建mysignal.cc文件 #include using...当代码除0时,程序运行后就崩溃了,程序运行变为进程,进程运行代码时出现了非法代码,进程退出了 ---- 将内存的指令数据load到CPU 状态寄存器中有比特位表示当前计算的状态 CPU中有的寄存器保存未来的计算结果...2是 p作为nullptr,*p取的是内存的0号地址 *p=100,相当于向0号地址处写入100,但是0号地址并没有申请过, 所以就造成了野指针问题 ---- 运行可执行程序后,发生段错误 --...容我慢慢来说 ---- Linux在系统级别提供了一种能力,可以将一个进程异常的时候, 操作系统可以将该进程在异常的时候,核心代码部分进行核心转储 (将内存中进程的相关数据,全部dump到磁盘) 一般会在当前进程的运行目录下...1运行可执行程序,在终端2发送8号信号干掉进程,并出现core dump即核心转储 ---- 再次使用 ls -l 指令,发现多出来一个 core.2257的文件 即核心转储文件 ---- Term

19030

聊聊Linux IO()

由图可见,从系统调用的接口再往下,Linux下的IO栈致大致有三个层次: 1.文件系统层,以 write(2) 为例,内核拷贝了write(2)参数指定的用户态数据到文件系统Cache,并适时向下层同步...3.设备层,通过DMA与内存直接交互,完成数据和具体设备之间的交互 结合这个图,想想Linux系统编程里用到的Buffered IO、mmap(2)、Direct IO,这些机制怎么和Linux IO栈联系起来呢...假设要去读一个冷文件(Cache不存在),open(2)打开文件内核后建立了一系列的数据结构,接下来调用read(2),到达文件系统这一层,发现Page Cache不存在该位置的磁盘映射,然后创建相应的...然后请求继续到达块设备层,在IO队列里排队,接受一系列的调度后到达设备驱动层,此时一般使用DMA方式读取相应的磁盘扇区到Cache,然后read(2)拷贝数据到用户提供的用户态buffer中去(read...除了传统的Buffered IO可以比较自由的用偏移+长度的方式读写文件之外,mmap(2)和Direct IO均有数据按页对齐的要求,Direct IO还限制读写必须是底层存储设备块大小的整数倍(甚至Linux

2.2K22

linux安装docker

有些日子没有安装docker了,这也导致忘记了如何操作,踩了很多坑,特此记录一下,如果还能帮到大家就更好了,如果帮到江湖朋友了,就点个赞,在此谢过一、Docker安装环境检查以centOS 7为例,首先要确定Linux...版本新版本的Docker对Linux系统版本有一定的要求。...如果Linux的发行版系统是centOS,安装最新版的docker需要centOS 7以上的系统。在Docker安装帮助页面查看支持的系统版本。...lvm22、添加软件源信息sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3...但没有提供者可以被安装 - 软件包 podman-1:3.4.1-3.module_el8.6.0+954+963caf36.x86_64 需要 runc >= 1.0.0-57,但没有提供者可以被安装(尝试在命令行添加

4.1K21

Linux开机流程(

MBR是主引导记录,位于磁盘的第一个扇区,和分区无关,和操作系统无关,bios一定会读取MBR的记录。 在MBR存储了bootloader/分区表/BRID。...这个启动扇区也放了boot loader,大小也很有限。...但即使如此,在分区还是存在boot sector。 分区表 硬盘分区的好处之一就是可以在不同的分区安装不同的操作系统,但boot loader必须要知道每个操作系统具体是在哪个分区。...在装LINUX操作系统时,其中有一个步骤就是询问你MBR装在哪里的,但这个MBR并非一定真的是MBR,可能是MBR,也可能是VBR,还可能是EBR,并且想要单磁盘多系统共存,则MBR一定不能被覆盖(此处不考虑...unrestricted { search --no-floppy --fs-uuid --set=root f5d8939c-4a04-4f47-a1bc-1b8cbabc4d32 linux16

3.7K30

Linux 安装MySQL

RPM:全称为 Red-Hat Package Manager,RPM软件包管理器,是红帽Linux用于管理和安装软件的工具。 1、安装 首先我们要 检测当前系统是否安装过MySQL相关数据库。...需要通过rpm相关指令,来查询当前系统是否存在已安装的mysql软件包,执行指令如下: rpm -qa 查询当前系统安装的所有软件 rpm -qa | grep mysql 查询当前系统安装的名称带...通过查询,我们发现在当前系统存在mariadb数据库,是CentOS7自带的,而这个数据库和MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。...在rpm,卸载软件的语法为: rpm -e --nodeps 软件名称 那么,我们就可以通过指令,卸载 mariadb,具体指令为: rpm -e --nodeps mariadb-libs-5.5.56...登录mysql(复制日志的临时密码登录) mysql -uroot -p ②.

3.8K10

linux 安装JDK

一般公司差不多所有的服务器都是搭建在Linux上面的,所以这就免不了,(要是使用Java语言)要在Linux上面布一套JDK也就是Java虚拟机环境。...首先你要把Linux拷贝到你的Linux系统文件夹。 2:如果你的JDK是压缩文件,你就要在Linux下执行命令 ./JDK (记住一定要到当前路径下)这样就进行解压缩了。...如果在Linux不让你进行解压缩,你就执行命令 chmod u+x  JDK(给它赋予权限) 3:配置环境变量:执行命令 vi  /etc/profile 设置环境变量,在文件增加以下部分 JAVA_HOME...:$JAVA_HOME/bin:$PATH    最后:wq保存并推出 最后执行source    /etc/profile 文件生效 4:输入Java -version 发现你安装的jdk版本 ,说明已经安装成功了...不过你要在使用Linux时对命令要熟悉一点,例如,在插入时,首先必须点击a或者i进入输入模式,然后点击Esc进入命令模式,自己平时可以看看 Linux,这东西有点意思。

4.1K40
领券