linux命令、vi命令、vim命令、shell语法(完整详细)
关于linux的其他文章:
1.linux命令、vi命令、vim命令、shell语法(完整详细)https://blog.csdn.net/qq_52877060/article/details/1233913862.linux(ubantu)系统如何安装vim编辑器以及如何使用vim
https://blog.csdn.net/qq_52877060/article/details/124274585?utm_source=app&app_version=5.3.0&code=app_1562916241&uLinkId=usr1mkqgl919blen3.如何在linux(ubantu)操作系统运行c语言文件
https://blog.csdn.net/qq_52877060/article/details/124276409
4.如何在Linux(ubantu)系统通过c程序将文档1指定内容替换到文档2的指定内容https://blog.csdn.net/qq_52877060/article/details/124471474?utm_source=app&app_version=5.3.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
5.如何在Linux(ubantu)系统通过c程序创建目录https://blog.csdn.net/qq_52877060/article/details/124488527?utm_source=app&app_version=5.3.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
题目:linux命令、vi命令、vim命令、shell语法
目录
题目:linux命令、vi命令、vim命令、shell语法
一、vi编辑器
(一)编辑模式(快捷键模式)
<一> vi:打开文件(没有该文件则自动创建)
<二>gg:定位行
<三>dd:删除行
<四>y:复制
<五> x:剪切
<六> p:粘贴
<七>r:替换
<八>方向键
<九>组合快捷键
(二)输入模式(文本模式)
(三)命令行模式
<一>行号设置
<二>保存与退出
<三>替换
三、vim编辑器
四、终端编辑器:linux系统知识
(一)windows与linux间的数据传输
(二)文件压缩
<一>tar.gz文件
<二>zip文件
<三>软件安装
(二)常用命令
<一>文件属性:类型符
<二>文件属性:权限位
<三> chmod:更改文件属性
<四>cd:切换目录
<五> mkdir:创建文件夹
<六> 创建文件
<七>rm:删除
<八>cp:复制(文件直接用,文件夹加-r)
<九>mv:剪切并重命名
<十>查看
<十一>ll:查看详细信息
<十二> ls:查看信息
<十三>查看命令
<十四>echo:打印
<十五>date与sleep
<十六>head与tail:显示文件内容
<十七>find:查找
<十八>特殊字符的含义
五、shell编程/shell语法
(一) shell脚本的执行
(二)shell变量
(三)shell字符串
(四)shell数组
(五)shell注释
(六)shell运算符
(七)text判断
(八)if语句
(九)case语句
(十)for循环
(十一)while循环
(十二) break
(十三)continue
(十四)shell函数
一、vi编辑器
(一)编辑模式(快捷键模式)
- ctrl+alt+f3:进入编辑模式,输入“账户信息”。
<一> vi:打开文件(没有该文件则自动创建)
- vi a:打开a文件
- vi +5 a:打开并定位到a文件的第5行
- vi + a:打开并定位到a文件的末行
- vi +/if a:定位到a文件的if字符(按n键会跳到下一个if字符)
<二>gg:定位行
- gg:定位到第1行
- 5gg:定位到第5行
- 7777gg:定位到末行(超过最多行数)
- G:定位到最后一行
<三>dd:删除行
- dd:删除本行
- 5dd:删除包含本行往后5行
- u:撤销上一步操作
- .:撤销u的操作
- w:定位到下一个单词
<四>y:复制
- yy:复制一行
- 5y:复制5行
<五> x:剪切
- x:剪切光标后1个字符
- 5x:剪切光标后5个字符
<六> p:粘贴
- pp:粘贴1份
- 5p:粘贴5份
<七>r:替换
- r:替换1个字符【ra:光标后的1个字符替换为a】
- 5r:替换5个字符【5ra:光标后的1个字符替换为aaaaa】
<八>方向键
- 方向键快捷键:h:左。j:下。k:上。l:右
- zz:保存并退出
<九>组合快捷键
- yw:复制1个单词
- 5yw:复制5个单词
- pw:粘贴1份单词
- 5pw:粘贴5份单词
- dw:删除该单词的后部分
- 5dw:删除该单词后的5个字母
- Ctrl+s:锁屏
- Ctrl+q:解锁
(二)输入模式(文本模式)
- 按i进入输入模式,按esc键回到编辑模式
- 按i:在光标后插入字符
- 按a:替换光标后的字符
- 按I:定位到首行
- 按A:定位到尾行
- 按O:定位到上一行
- 按o:定位到下一行
(三)命令行模式
- 桌面下按win+enter进入命令行模式
- 按英文冒号进入命令行模式,按esc键回到编辑模式
<一>行号设置
- set nu:显示行号
- set nonu:不显示行号
<二>保存与退出
- w:保存
- q:退出
- wq:保存并退出
- q!:不保存并退出
- /a:查找字符串中的a字符
<三>替换
- s/aaa/bbb/g:将当前行aaa替换为bbb
- g/aaa/s/bbb/g:将全部aaa替换为bbb
三、vim编辑器
- vim使用提示
- yum install vm -y:自动安装vim编辑器
- vim 回车:进入vim编辑器
- vim语法与vi语法相同
- rm -rf .文件名:强制删除该文件,解决每次进入vim出现的提示
四、终端编辑器:linux系统知识
(一)windows与linux间的数据传输
- rz:将文件从win传输到linux
- sz:将文件从linux传输到win
- df -h:查看分区信息
(二)文件压缩
<一>tar.gz文件
- tar -zxvf xxx.tar.gz:解压xxx文件(tar.gz:linux系统的压缩包后缀)
- tar -zcf aaa.tar.gz bbb:压缩bbb文件为aaa.tar.gz压缩包
<二>zip文件
- yum install zip unzip -y:要先输入命令安装yum文件
- zip -r xxx.zip zzz:压缩zzz文件为xxx.zip压缩包
- unzip aaa.zip :解压aaa.zip压缩包
<三>软件安装
- make install a:安装a软件
- sduo dpkg -i a.deb:安装类型为deb的a文件
(二)常用命令
- xdg-open:打开文件、目录、网址等
<一>文件属性:类型符
- - --- --- ---:类型符说明
- -:表示普通文件
- c:表示字符设备(character)
- b:表示块设备(block)
- d:表示目录(directory)
- l:表示链接文件(link)
<二>文件属性:权限位
- a:所有权限位all
- 第一个---:用户权限位u(user)
- 第二个---:组权限位g(group)
- 第三个---:其他权限位o(other)
- 权限位:包括r(读权限:read)、w(写权限:write)、x(执行权限)
- d -w- - - - - - -:该目录的用户权限为可读状态,组权限和其他权限不可读
<三> chmod:更改文件属性
- 格式:chmod (a/u/g/o)(+/-/=)(r/w/x)
- 说明:+(赋予权限),-(删除权限),=(设置权限并删除其他权限)
- chmod a+rwx a:赋予a文件所有权限位的所有权限
- chmod u+rwx,g+rw,o-rwx a:赋予a文件的用户权限位的所有权限,赋予a文件的组权限位的读和写权限,删除a文件的其他权限位的所有权限
- chmod u=w a:设置a文件的用户权限位拥有w(可写)权限,其他权限位的权限不变【假如a文件原来的属性为rwx rwx rwx,输入了该命令,则属性变为-w- rwx rwx】
<四>cd:切换目录
- cd:切换到家目录
- cd 路径1:切换到相对路径1
- cd /路径1:切换到绝对路径1
- cd ../路径1:返回上一级目录下的路径1
<五> mkdir:创建文件夹
- mkdir a:在当前目录创建文件夹a
- mkdir -p a/b/c:在当前目录创建一连串文件夹(没有文件夹则会自动创建文件夹)
- mkdir -p /a/b/c:在根目录创建一连串文件夹(没有文件夹则会自动创建文件夹)
- mkdir a{b,c,d}:在当前目录创建文件夹(文件夹包括ab,ac,ad三个文件夹)
- mkdir a/{b,c,d}:在当前目录创建文件夹a(a包括b,c,d三个子文件夹)
<六> 创建文件
- touch a:在当前目录创建a文件
- vi a:创建文件a
- ln:创建链接
- ln -s abcd a:创建软链接a,内容为abcd字符串
- ln abcd a:创建硬链接a,内容为abcd
<七>rm:删除
- rm a.txt:删除当前目录的a.txt文件(需要确认)
- rm -f a*:强制删除当前目录的以a开头的文件(不用确认)
- rm -r a:删除当前目录的a文件夹(需要确认)
- rm -rf a:强制删除当前目录的a文件夹或文件(不用确认)
- rmdir a:删除当前目录的空文件夹a
- rm /user/a/b.txt:删除指定目录下的b.txt文件
<八>cp:复制(文件直接用,文件夹加-r)
- cp a.txt /b:复制当前目录的a.txt文件到b文件夹
- cp /a/b.txt /c:复制a目录下的b.txt文件到c目录
- cp -r a b:复制a文件夹到b文件夹
- cp -r a* /b:复制以a开头的文件夹到目录b
<九>mv:剪切并重命名
- mv a b:将a剪切到b(a,b可以是文件也可以是文件夹)
- mv a.txt ab.txt:重命名
- mv a b/c:移动a文件到目录
<十>查看
- stat a:查看a文件的属性
- more a:以页查看a的内容:查看a的内容(按回车:翻行。按空格:翻页。按b:返回。按q:退出。)
- pwd:显示当前目录的位置
<十一>ll:查看详细信息
- ll:显示当前目录的所有文件的详细信息
- ll -a:显示当前目录的所有文件的详细信息(包含隐藏文件)
<十二> ls:查看信息
- ls:显示当前目录的所有可见文件
- ls -a:显示当前目录的所有文件(包括隐藏文件)
- ls -l:按列显示当前目录的所有文件的详细信息
- ls -R:显示当前目录的文件及子目录
- ls -1:显示当前目录的文件:按列显示,即1行显示1个文件
- 简写用 - :【ls -cd】
- 单词用- -:【ls - -cd】
<十三>查看命令
- infor 命令名:详细解释命令含义
- man 命令名:简单解释命令含义
- 命令名 - -help:查看命令的信息及使用方法【cd --help:查看cd的信息和使用方法】
- type 命令名:查看命令类型
- help 内置命令名:查看该命令的解释
- man 外置命令名:查看该命令的解释
- whereis 命令名:查看命令的路径地址
- file 路径:查看文件类型
<十四>echo:打印
- echo `pwd`:打印当前目录信息(该符号作用是将pwd作为命令执行)
- echo abcd:打印字符abcd
- echo abcd >> a:将abcd导入到文件a
- cat a:打印a文本的信息
<十五>date与sleep
- sleep 1:1秒刷新一次(1可以更改为想要的时间)【echo '你好!';sleep 1】
- date:显示当前日期、时间(选项如图所示)
- date +%x%A%X:结果为“2022年3月10日星期四12时52分16秒”
- date +%F/%a/%T:结果为“2022-03-10/四/12:52:16”
- date的使用方法参考下图
<十六>head与tail:显示文件内容
- head与tail:显示与实时显示
- head -5 a:显示a文件的前5行
- tail -5 a:显示a文件的后5行
- head -5 a | tail -1:显示a文件的第5行(先显示a文件前5行,最后显示这5行的最后1行)
- tail -f a:实时显示a文件的内容
- tail -F a:实时显示名字为a的文件的内容
<十七>find:查找
- find / -name a:全局搜索a文件
- find /a -name b:搜索a目录内的b文件
- find / -name a*b:全局搜索以a开头b结尾的文件
<十八>特殊字符的含义
- 点
- .a:a是隐藏文件
- .:当前目录
- ..:上级目录
- $变量1:引用变量1
- /:根目录
- ./:当前目录
- ./:运行文件【./文件名.后缀】
- *:通配符
- ll *a:查看a结尾的文件
- ll a*:查看a开头的文件
五、shell编程/shell语法
(一) shell脚本的执行
- 在写shell脚本之前需要写“#! /bin/bash”来调用bash库
- ./a.sh:执行a.sh脚本(次次选择)
- sh a.sh:执行a.sh脚本(次选择)
- source a.sh:执行a.sh脚本(推荐优先选择用该命令)
(二)shell变量
- echo $a:打印变量a(&:引用/调用符号)
- unset a:删除变量a(a变为空变量)
(三)shell字符串
- 单引号:只打印文本【a=xxx,b='zzz,a',echo b,结果:zzz,a】
- 双引号:可解析变量【a=xxx,b="zzz,a",echo b,结果:zzz,xxx 】
- echo ${#b}:打印变量b的长度,结果:6
(四)shell数组
- 定义数组:a=("zz" "xx" "cc")
- 读取数组
- echo ${a[1]},结果:xx(下标从0开始)
- echo ${a[100]}:结果:
- echo ${a[@]}:结果:zz xx cc
- echo ${#a[@]}:结果:3
- echo "scale=2;1/3" | bc:结果:0.33,scale:取小数位数,bc:计算器
(五)shell注释
- 单行注释:#xxx。xxx:你输入的字符
- 多行注释::<<eof xxx eof。xxx:你输入的字符
(六)shell运算符
- eq:等于
- ne:不等于
- gt:大于
- lt:小于
- ge:大于等于
- le:小于等于
(七)text判断
text:用于判断,相当于if语句中的[ ]
- 运算符及text用法如下图介绍
(八)if语句
- if语句介绍:if开始,then执行,fi结束。[]作判断,可用text
(九)case语句
case语句介绍:case开始,esac结尾。;;:执行结束符,*:其余的
(十)for循环
- for语句介绍:for开始,do执行,done结束
(十一)while循环
- while语句结介绍:while开始,do执行,done结束
(十二) break
- break:跳出所有循环
(十三)continue
- continue:跳出当前循环
(十四)shell函数
- shell函数的语法及使用方法看下面图片的详细介绍