Linux vi的使用 vi模式转换 经常使用的三种基本模式:命令模式(Command Mode),输入模式(Input Mode),末行模式(Last Line Mode),其他的9种模式不做介绍,...很少会使用。...(其左边)的一个字符,需输入X 删除一个词或词的部分内容 为删除一个词,需将光标放置到该词的开头并输入dw 为删除词的部分内容,需将光标放置到该词要保存部分的右边。...输入dw来删除该词余下的部分 删除一行 将光标放置到该行的任意处并输入dd 删除多行 ndd 包括当前行 删除到文件的结尾 为删除从当前行到文件结尾的所有内容(包括当前行),需输入dG 4、复制...如果是默认安装,CentOS和RHEL一般在/etc/vimrc下面,Debian和Ubuntu一般在/usr/share/vim/vimrc vi的使用参考资料 http://wiki.dzsc.com
这个是在网上找的一张关于vim键盘的图 1. 前言 vim是Linux编辑器,功能上和记事本没有区别。不仅仅可以用来写c语言和c++,其它语言也可以在上面写。...2. vim的基本概念 vim是一款多模式的编辑器,但是目前掌握这3种即可,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下...该模式是我们后面用的最频繁的编辑模式。 末行模式(last line mode) 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下shift+: 即可进入该模式。...4. vim正常模式命令集 4.1 命令模式 允许使用者通过命令,来进行文本的编辑控制。 像键盘是用来做输入的,那么鼠标是用来对文本进行控制,例如复制粘贴,区域选择、大小写转换。...shift+6=^:将光标的位置定位到当前行的开始 gg:将光标定位到整个文本的最开头 shift+g=G:将光标定位到整个文本的最后一行 n+shift+g=G:将光标定位到整个文本的任意一行
Linux的fork使用 fork函数可以算是Linux里有点不好明白的函数了,调用一次,返回两次,虽然在平时的写法中,有基本固定的写法,但是有时候看起来还是有些让人头疼的。...子进程所独有的只有它的进程号,计时器等(只有小量信息)。因此,使用 fork()函数的代价是很大的。 ?...实际上,更准确来说,Linux 的 fork() 使用是通过写时拷贝 (copy- on-write) 实现。写时拷贝是一种可以推迟甚至避免拷贝数据的技术。...一般来说,在 fork() 之后是父进程先执行还是子进程先执行是不确定的。这取决于内核所使用的调度算法。...因此,在实际的使用过程中,一般都需要对fork()的返回值进行判断,看我们操作的是父进程还是子进程。
在linux的图形环境下,我们可以通过鼠标点击来完成所有的管理任务,这是图形界面终端,另外一种就是文本界面的终端,在这个界面的终端下我们可以使用linux命令来控制系统完成响应的工作,而这个文本终端也是服务器常用的模式...linux命令控制系统的工具,我们点击屏幕左上角的“活动”就可以找到这个它 打开之后我们会看到linux的命令行,在这里面我们可以输入linux命令来进行操作 第二种 打开文本终端,这个需要键盘上的组合键...[Ctrl] + [Alt] + [F1] - [F6] ,其中F1和F2是两个可供登录的图形终端,F3-F6为文本终端,现在我们使用[Ctrl] + [Alt] + [F3]打开文本终端,然后使用root...,会有对应快捷键的提示 2、通用快捷键 Ctrl+r: 实现快速检索使用过的历史命令....以上的快捷键都是在工作中可能会经常用到的,不论是在图形界面打开的终端还是字符界面的终端都可以使用,在这里面就不挨个演示了,各位可以在终端中使用任意字幕和空格模拟命令输入然后多多熟悉,尽快掌握。
大家好,又见面了,我是你们的朋友全栈君。...--get-hw-description /mnt/hgfs/VMShare/ZYNQ7035_Linux/ZYNQ7035_Linux.sdk/ 重新配置petalinux工程:petalinux-config...配置Linux内核:petalinux-config -c kernel 配置Linux根文件系统:petalinux-config -c rootfs 编译Petalinux工程:petalinux-build.../images/linux/zynq_fsbl.elf --fpga --u-boot --force 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
---- ---- 一、gdb的介绍 1. gdb是linux上面的调试器,是非图形化界面纯命令行调试的,用起来非常的麻烦! 2....debug是给程序员用的版本,添加了调试信息,用于解决软件或程序中出现的问题,realease是发行给客户使用的版本,并未添加调试信息,只需要给客户提供优越的产品使用环境即可,至于是否能够debug调试...值得注意的是:每一个二进制程序不仅仅只是一堆二进制代码,他们内部都是有特定格式的,Linux中形成的可执行程序是elf格式。...中所添加的调试信息,而realease版本是没有这些调试信息的 三、gdb的使用 1.显示代码: l+行号(list)指令 gdb会默认记住历史上曾经输入的指令,l+0输入后gdb会从第零行开始显示部分的代码...如果有断点,就停下来,如果没有断点就直接运行起来,如果想要跳到下一个断点,可以继续按fn+f5 2.取消调试:fn+shitf+f5 3.直接运行:fn+crtl+f5直接运行,有断点也不会调试 linux
一、前述 awk是一个强大的文本分析工具。相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。...简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。...map(key) 支持内置变量 ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用...浏览记录的域的个数 NR 已读的记录数 OFS 输出域分隔符 ORS 输出记录分隔符 RS ...2、举例 只是显示/etc/passwd的账户:CUT awk -F':' '{print $1}' passwd 只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割
动态库并不存在于我的程序中,但是我知道这个动态库的地址,每当我有使用动态库的需求时就能根据这个地址去找到这个动态库。 静态链接 你觉得每次都要出去上网太不安全了,所以你就和你的家长商量买一台电脑。...你的家长十分的开明,他们把你在网吧经常用的那台电脑买回来放到了你的房间。此后你再有上网需要的时候就不必再跑到网吧了,而是直接在房间里就可以使用。...那么你家长从网吧买回那个你经常使用的电脑让你以后不用再去网吧了,这个过程就相当于静态链接。所谓静态链接就是每次我需要使用库中的函数时,直接从库中拷贝一份。...区分动/静态链接 查看链接属性 file+可执行程序文件名 知道是动态链接以后还可以使用ldd+可执行程序文件名来查看所依赖的动态链接库 动态链接库:前缀为lib,后缀为.so 静态链接库...:前缀为lib,后缀为.a libc.so.6去掉前缀lib和后缀.so以及版本号.6,最后只剩下c,所以这个是C标准库 指定静态链接 当我不指定时Linux将自动采用动态链接,如果要使用动态链接就要在编译生成可执行文件时加上
都表示强制操作 vs + 文件名进入分屏,但无论分多少屏,光标只有一个 ctrl + ww 切换光标到另一屏幕 可以不退出vim在底行模式下执行linux命令,但是需要在命令前加感叹号!...四、vim配置原理 vim的配置是一人一份的,一个用户配置的是该用户的,不影响其他用户!...每一个用户虽然用的是同一个vim程序,但是大家用的是不同的vim配置,因为每一个用户(root和普通用户都包括),在自己的家目录下,都有一个属于自己的配置文件。.../install.sh 五、解决普通用户无法使用sudo提权 将用户切换为root,在root中找到/etc/sudoers文件并用vim打开,然后在下面列表中仿照root的格式添加普通用户,最后在底行模式下输入...wq保存并退出 上面步骤完成之后,普通用户也可以使用sudo指令了,因为我们已经将普通用户添加至信任列表了。
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。...也是Linus Torvalds雷纳斯托瓦兹为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 2. 说白了git就是一个进行项目版本管理的一个软件。...配置用户名和邮箱(否则git commit无法正常使用) 1.下面是已经配置好的配置信息 git config --list // 查看git的配置列表 2.配置成全局,当前普通用户的所有本地仓库都有效...git config --global user.name "username" // 名字缩写即可 git config --global user.email "email"// 正常使用的邮箱...第7行的modified内容表示我们刚刚修改过文件.gitignore的内容 第9行的Untracked代表未被管理的文件,这些文件是仓库中没有的文件 2.
常用lsof -i:***来查看 端口被什么程序正在使用 使用lsof时若提示command not found则可以通过 yum install lsof -y 来安装lsof 1.列出所有打开的文件...查看谁正在使用某个文件 lsof /filepath/file 3.递归查看某个目录的文件信息 lsof +D /filepath/filepath2/ 备注: 使用了+D,对应目录下的所有子目录和文件都会被列出...比使用+D选项,遍历查看某个目录的所有文件信息 的方法 lsof | grep ‘/filepath/filepath2/’ 5....列出除了某个用户外的被打开的文件信息 lsof -u ^root 备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示 10....列出谁在使用某个端口 lsof -i :3306 17. 列出谁在使用某个特定的udp端口 lsof -i udp:55 特定的tcp端口 lsof -i tcp:80 18.
有时候我们新建完项目,想查看一下项目的目录结构,此时我们就可以使用tree命令了,但是mac电脑没有自带tree命令,我们需要安装tree。...npm来安装, npm install tldr -g 之后运行: tldr tree 打印如下: tree 以树的形式显示当前目录的内容...-a - 打印没有缩进行的树,显示完整路径(使用-N不转义空格和特殊字符): tree -i -f - 以可读格式打印每个文件节点的大小,目录显示其累积大小(类似在du命令中所示)...: tree -s -h --du - 使用通配符(glob)模式在树层次结构中查找文件,并删除不包含匹配文件的目录: tree -P '*.txt' --prune - 在树层次结构中查找目录...,删除不属于所需目录的目录: tree -P 文件夹名 --matchdirs --prune See also: du 以上便是tree命令的使用,希望对你有所帮助。
由命令行环境中,我们不能直观地看到一些文件或目录的名称及其他一些信息,这时候通配符就派上用场啦!当不知道真正字符或懒得输入完整文件或目录名称时,使用通配符代替一个或多个真正的字符就十分方便啦!...例如 0-9 代表0到9 之间的所有数字,因为数字是连续的!...^ 若中括号内的第一个字符为指数符号(^),那表示取反,例如^abc表示除了a,b,c之外一定有一个字符 {str1,str2,…} 匹配sr1或str2(或更多)其一字符串 二、使用示例 星号(*)...,这里搭配了*使用。...很多命令都可以使用通配符,比较常见的有ls,dir,vdir,cp,mv,scp,rm,rmdir等。
一.安装依赖 yum install cronie 二.添加 Crontab crontab -e 三.查看crontab内容 crontab -l 其中常见的一些内容 例子: # 每月的最后1天 0...0 L * * * 说明: Linux * * * * * - - - - - | | | | | | | |...星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。...逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率...同时正斜线可以和星号一起使用,例如*/10, 示例 0 2 * * * xx.sh .每天 02:00 执行任务 0 5,17 * * * xx.sh 每天 5:00和17:00执行任务 * *
一、前述 Vi类似记事本,所以用好记事本对编程效率有很大得影响,有着事半功倍的效率。...vim /path/to/somefile vim +# :打开文件,并定位于第#行 vim +:打开文件,定位至最后一行 vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首...,转为输入模式; a: 在当前光标所在字符的后面,转为输入模式; o: 在当前光标所在行的下方,新建一行,并转为输入模式; O:在当前光标所在行的上方,新建一行,并转为输入模式; ... I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 输入-->编辑: ESC 编辑-->末行: : 末行-->编辑: ESC, ESC 4、...编辑模式 移动光标 字符 h: 左;j: 下;k: 上;l: 右 单词 w: 移至下一个单词的词首 e: 跳至当前或下一个单词的词尾 b: 跳至当前或前一个单词的词首 行内 0: 绝对行首 ^: 行首的第一个非空白字符
首先,就昨晚的发的消息道歉,虽然整蛊大家了,但是我还是挺开心的。...sed是一种流编辑器,配合正则表达式使用,sed处理文件之时,把当前处理的文保存在缓冲区,sed命令处理缓冲区的内容,将缓冲区的内容显示在到屏幕上,sed能够对一些重复操作的动作进行简化。...在当前行下面插入文本 i \ 在当前行上面插入文本 c\ 将选定的行,改为新的文本 D 删除模板块的第一行 d 删除选择的行 g 获取缓冲区的内容,并替换当前模板块中的文本 G 。。。。。。。。.../NewString/g' filename 全面替换标记 使用后缀 /g 标记会替换每一行中的所有匹配: sed 's/StringOriginal/NewString' filename 定界符...以上命令中字符 / 在sed中作为定界符使用,也可以使用任意的定界符: sed 's:StringFileOriginal:NewStringFile:g' sed 's|StringFileOriginal
初识 Pipe pipe , 中文翻译为管道,是 Unix/Linux 系统中一种比较常用的 IPC(Inter Process Communication) 。...随后,内核会返回管道的读端和写端的文件描述符,它们分别存放于参数数组的第 0 个元素和第 1 个元素。...那么子进程在读之前必须关闭管道的写端,父进程同样地必须关闭管道的读端。不然就会形成了闭环。 image.png 想要正确使用管道就必须避免出现 (a) 这种情况。...write_buff[] = "hello world"; int writen = write(pfd[1], write_buff, BUFF_SIZE); close(pfd[1]); 结语 管道的原理和使用方法都特别简单...参考 [^1] 44.2 Figure 44-2, The Linux Programming Interface [^2] 44.2 Figure 44-3, The Linux Programming
当我们能够在windows下,使用vs 2019等编译器去进行调试的时候,我们可以将在Linux下使用gdb调试这两者之间进行对比: 调试这个操作,在方法上有区别吗?...(Linux和windows)其实,在调试思路上是一样的,在调试的操作方式上一定不一样。 因此,在学习Linux的gdb调试时,一定要抓住我们的调试思路去学习。...在Linux下,我们使用的是命令行调试。...在Linux中,用gcc/g++生成的软件程序是release版本! (这里顺便复习一下:gcc默认:动态链接、默认release) 所以,我们需要将其变成debug。...当我们进入一个函数后(这里依然使用24行的函数,也就是第一个断点的函数进行举例),想要查看main函数的栈堆情况,可以使用指令bt 进入这个函数后,我们只想要跑完这个函数,又不到下一个断点,那么使用指令
/******************** * 内核中链表的应用 ********************/ (1)介绍 在Linux内核中使用了大量的链表结构来组织数据,包括设备列表以及各种功能模块中的数据组织...这些链表大多采用在include/linux/list.h实现的一个相当精彩的链表数据结构。...和以前介绍的双链表结构模型不同,这里的list_head没有数据域。在Linux内核链表中,不是在链表结构中包含数据,而是在数据结构中包含链表节点。...如: struct my_struct{ struct list_head list; unsigned long dog; void *cat; }; linux中的链表没有固定的表头,从任何元素开始访问都可以...这些函数都使用一个或多个list_head结构体指针作参数。
Liunx使用 命令管道连接 | 命令管道符合为|,可以将两个命令进行连接,连接后第一个命令的输出结果作为第二个命令的输入信息 比如 ls /ect | more -10 分屏显示etc文件夹下的...10行数据 Linux文件系统结构 / : 根目录 /home: 主文件夹,登录用户的主文件夹 /etc :操作系统配置文件的保存位置 /usr : 用于添加的程序文件,用户的很多应用程序和文件都放在这个目录下...root : 超级用户的目录 改变当前工作目录命令 cd 目标目录 cd 没有参数的时候直接返回用户主目录 cd /etc : 使用绝对路径切换当前的工作目录 cd .....上传本地当前文件abc.txt到远程服务器 exit : 退出 windows 操作Linux pyttty 开源软件 Linux打包命令 tar -czvf 包文件.tar.gz 文件夹1...,我们可以使用vi编辑器修改 重启tomcat,我们使用zip安装方式安装的,因此需要在Tomcat的bin下执行: .
领取专属 10元无门槛券
手把手带您无忧上云