1、Linux文件处理常用命令
grep -ri“xxx” 文件名(查找文件内包含的文本)
find . -name 文件名(查找文件)
vi 文件名 或 touch 文件名 或 >文件名(新建文件的三种方式)
rm -f 文件名(删除文件)
rm -rf 目录(删除文件夹)
2、vi命令
vi命令模式:一般模式、指令模式、编辑模式
一般模式>>
移动跳转: 跳到文本开头/结尾 >> gg G、[[ ]]、 :0 :9999
跳到行头/尾>> ^$
上下左右移动>>j k h l
复制粘贴: y yy yw y^ y$ yG p
删除: x dd cw
撤回:u(undo)
指令模式>>
搜索: /xxx 自上而下 ?xxx 自下而上
n :下一个 N:上一个
:1,$s/word1/word2/g 替换
:set nu 显示行号
:set ic 忽略大小写
:set fileencoding 显示文件编码
编辑模式>>
i,o,a(插入)、R(取代)
3、shell - 基础
(1)执行规则
第一行 #!/bin/bash 在宣告这个 script 使用的 shell 命令,如果没有这个标识就不是个shell脚本;
除了第一行的『 #! 』是用来宣告 shell 的之外,其他的 # 都是『注解』用途;
命令的运行是从上而下、从左而右的分析与运行;
命令、选项与参数间的多个空白都会被忽略掉,空白行将被忽略掉;
变量与等号之间不能有空格;
如果读取到一个 Enter 符号 (CR) ,就尝试开始运行该行命令;如果一行的内容太多,则可以使用『 \[Enter] 』来延伸至下一行;
(2)符号
单引号(' '):所见即所得,即原样打印,不会对变量解析
双引号(" "):所见非所得,会对变量解析后再输出(常用于框住某个范围,比如内部有空格场景时)
反引号(` ` piao号):命令替换,通常用于把命令输出结果传给变量中(功能同$( ))
反斜杠(\):转义字符
(3)参数
${param} 或 $param 参数使用
$0 命令本身
$1 第一个参数 。。。$9第9个参数,后面的参数要???
$# 参数的总个数
$* 获取所有的参数
$? 获取上一命令执行结果,0-成功,1及其他-失败
(4)时间 date
>>date + "%Y-%m-%d %H:%M:%S"
>>2019-10-18 17:00:00
>>date -d 1day + "%Y-%m-%d %H:%M:%S"(增加一天)
>>date -d -1day + "%Y-%m-%d %H:%M:%S"(减去一天)
>>date -d "-1day -1hour -1min" + "%Y-%m-%d %H:%M:%S"(减去一天一小时一分钟)
(5)数据运算
数学计算要用’[ ]’括起来并且外头要带一个’$’
>>a=1
>>b=1
>>sum=$[$a+$b]
(6)和用户交互---read命令
>>read a(read -p "Please input a number:" a)
>>read b
>>sum=$[$a+$b]
(7)逻辑判断
>>第一种:if
if 判断语句; then
command
fi
>>第二种:if else
if 判断语句 ; then
command
else
command
fi
>>第三种:if elseif else
if 判断语句一 ; then
command
elif 判断语句二; then
command
else
command
fi
在判断数值大小可以用 >, < , = &&, || ,但是要在( )中使用,除了可以用”(( ))”的形式外,还可以使用”[ ]”,但是就不能使用>, < , = 这样的符号了,要使用 -lt (小于),-gt (大于),-le (小于等于),-ge (大于等于),-eq (等于),-ne (不等于)。
shell 脚本中if还经常判断关于档案属性,比如判断是普通文件还是目录,判断文件是否有读写执行权限等。常用的也就几个选项:
-e :判断文件或目录是否存在
-d :判断是不是目录,并是否存在
-f :判断是否是普通文件,并存在
-r :判断文档是否有读权限
-w :判断是否有写权限
-x :判断是否可执行
使用if判断时,具体格式为: if [ -e filename ] ; then
(8)循环
>>for 循环
for 变量名 in 循环的条件; do
command
done
>>while 循环
while 条件; do
command
done
(9)函数
function 函数名() {
command
}
4、shell - 数据流重定向
标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
标准错误输出(stderr):代码为 2 ,使用 2>(中间无空格) 或 2>> ;
垃圾桶黑洞装置:/dev/null
启动应用(后台模式运行)>> nohup ./start.sh >./logs/start.log 2>&1 &
例:清空文件内容>> echo > insert_olc_trading_day_info.sh 或 echo ""> insert_olc_trading_day_info.sh
标准输出到test.sh,错误输出到test2.sh>> cat insert_olc_trading_day_info.sh>test.sh 2>test2.sh
标准输出到test.sh,错误输出也重定向到test.sh>> cat insert_olc_trading_day_info.sh>test.sh 2>&1
将异常吞掉不做任何处理>>cat insert_olc_trading_day_info.sh>/dev/null
5、其他常用:
查看系统结构>>pstree
查看历史执行记录>>history
查看所有变量(环境变量+自定义变量)>>set 删除变量>>unset
定义环境变量>>export
增加文件权限>>chmod +x insert_olc_trading_day_info.sh
改变文件拥有者>>chown user insert_olc_trading_day_info.sh
查看文件夹大小>>du --max-depth=1 -h
分析磁盘使用情况>>df -h 文件目录
查看当前内存使用情况>>free -m
>> top