Linux+Shell基础入门总结

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章