Linux Shell简单总结 & vim 常用命令

一 概念

Shell是一个作为用户与Linux系统间接口的程序,允许用户向操作系统输入需要执行的命令,默认的shell是/bin/bash

二 常用功能

> 进行输出重定向,>>也可以,区别是后者是附加在文件末尾。<用来进行输入重定向

*经常用这种功能进行文件内容的输入/输出,也可以直接接字符设备,Linux把所有设备都看做文件

| 进行管道连接,即同时运行多个命令,并把左侧的输出作为右侧的输入,最右端命令默认输出至屏幕

./ 进行Shell脚本或程序可执行文件的运行

三 Shell语法

1.变量 

与其他语言不一样的是,变量不需要提前声明,默认为字符串。在变量赋值的情况下使用名称,取值的情况加$,注意空字符串的情况需要用双引号

2.引号 

' '单引号和" "双引号都用于直接语句输出,区别是双引号会将变量进行等值替换(如果有)

3.环境变量

 $HOME $PATH $IFS分隔符 $0脚本名 $#参数个数 $$进程号 $1..$n各参数 $* $@所有参数

4.条件 

test 或[] 主要比较类型:字符串(-n,!=) 算术(-eq,-gt,-le) 文件条件(-d,-e,-f,-s,-r)

if --- then --- elif --- then--- else --- fi

for .. in .. ---do --- done

while --- do --- done

case .. in .. --- ..) ...;; --- ..) ,,,;; esac

5.函数 

function () {},参数使用$1...$n传递调用,使用return返回值

6.主要命令 

break continue 类似C语言 

: 空命令 

. 在当前环境执行脚本 

echo 输出带换行(-n不带) 

eval 对参数求值 

exec 将当前shell替换成另一程序 

exit n 返回退出码 

export 导出变量到子shell 

expr 表达式求值,通常配合` `或$( ) 

printf 类似C语言

set 设置参数变量,一般取某个程序的输出

shift 把所有参数左移

trap 接受信号后采取的行动 trap 'xxx' INT

unset 删除变量或参数

find 搜索文件,用法 find [PATH] [OPTIONS] [TESTS] [ACTIONS]    find . -newer myfile -type f -print

grep 通用正则表达式解析器,搜索内容 grep [OPTIONS] patten [FILES] 默认输出匹配行,常用参数-c行数 -l文件名,常用正则表达式 ^开头 $结尾 .任意字符 []指定范围 *+{n} 匹配次数(加\)

7.获得程序输出

使用$(...)取得命令程序输出结果 ;$((...))获得算术运算的值 ;${}进行参数扩展,即用值完全替换变量或进行字符串操作

8.here文档

<< 输入重定向,将需要参数在脚本中直接传递给程序

四.shell调试

-n 只检查错误 -v 执行前显示 -x 执行后显示 -u 报错未定义变量 。选项xtrace进行跟踪报告

五.图形化工具

dialog 通过参数设置,实现简单给定的图形界面显示和选择,Linux内核编译就是这样。图形化的选择输出为标准错误流,一般采用重定向到文件后读取

六.常用Vim 命令

跳转命令

gg到文件头,GG到文件尾(加上shift进行相反操作),{{ 和 }}类似,shift + h/m/l 到屏幕第一行/中间/最后一行

:set nu 显示文件行号

:n 跳转到指定行数n 非命令模式下也可以nG

0 | ^ 移动到行首 $ 移动到行尾 b 向前移动到单词首 e向后移动到单词尾  w向后移动到单词首


u撤销修改,U恢复修改


字符操作 

r替换,x删除,a在下一位置插入


字符串操作

:/xxx 查找字符串,n向下查找 N向上查找

:m,ns/old/new/g 在m和n 行之间将old替换为new

*多行注释: 起始行,终止行s/要替换的字符/新字符/g eg: :20,32s/^/#/g ^表示在行首插入,#为要插入的字符,g表示替换时不确认,若要确认修改可将g改为c,这条命令在编程中能起到注释的作用,在shell中用#,C/c++中用//

*列替换: 文本中第1列至30列替换成“foo” :%s/^.\{30\}/foo/g 其中\{n\}表示.重复n次 将第12列至30列替换成“foo” :%s/\(^.\{11\}\).\{19\}/\1foo/g 其中\(...\)是pattern的用法,后面的\1就是引用了这个pattern


单词操作 

yw复制当前单词,cw替换当前单词(光标位置开始往后)


行操作 

对于光标所在行,使用yy复制当前行(nyy复制当前n行),p粘贴,dd删除当前行(ndd删除当前n行)


调用外部shell命令

:模式下加!和shell命令可以暂时中断vim去执行,之后返回

K可以查看单词的man手册(在Linux C库函数中)


插入内容

:r 文件名    可以将文件内容复制粘贴到当前位置,也可以配合调用命令,将命令输出结果插入到当前位置

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值