Error[8]: Undefined offset: 108, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

大数据开发中常用的Linux知识

文章目录

1. vi命令 1.1 vi常用命令 常用命令功能vi表示要编辑某文件i进入编辑模式esc退出编辑模式shift + :wq保存,强制退出shift + :q不保存,退出 1.2 vi高级命令 功能方法备注查找字符串在命令模式下输入 /,然后再输入想要查找的字符串,最后按回车键即可按n可快速匹配下一个查找某一行内容在命令模式下首先按shift+:,然后输入具体的行号即可复制光标所在行yy向下复制2行2yy粘贴到光标所在的行下面p删除光标所在行dd删除光标所在行及下面行999dd快速跳到文件首行命令行模式输入gg快速跳到文件末行命令行模式输入G

【注意】
在使用vi编辑文件时未成功保存直接关闭程序,会默认在文件同级目录下产生一个临时文件,临时文件的文件名后缀为 .swp。以后再修改这些文件每次都会先出现一些提示信息,想要避免此问题,需要删除此.swp临时文件(使用ls -a命令可查看此临时文件)。


2. date命令

date命令默认显示当前时间
date 的基本格式: date +"%Y-%m-%d %H:%M:%S"


【注意】双引号不是必须的,中间没有空格则不需要双引号


常用功能命令备注获取当前时间戳date +%s获取指定日期的时间戳date +%s --date="2022-01-01 00:00:00"获取昨天的日期date --date="1 days ago"获取指定日期的前一天date --date="2022-01-02 1 days ago"可以在命令后面通过+号指定日期输出格式 3. 进程相关命令 命令功能案例psps -e显示系统中的所有进程ps -ef | grep java查看ava进程信息netstat -anp查看端口信息netstat -anp | grep 22jps显示当前用户已启动的Java进程top查看服务器进程信息(动态显示) 4. 文件相关命令 命令功能案例备注wc统计字数相关信息-w 统计字数;-c 统计Bytes数;-l 统计行数sort排序-n 依照数值大小排序; -r以相反的顺序排序; -k 按照指定列排序uniq检查重复的行-u 仅显示不重复的行通常与sort结合使用实现去重head获取前几条的数据head -3取前3条数据 5. Linux三剑客 5.1 grep 命令

grep 用来查找文件内符合条件的字符串,经常结合管道符 | 来实现数据过滤查找。

命令功能-i忽略大小写-n显示字符串所在的行号-v忽略包含指定字符串的数据 5.2 shed命令

主动用来编辑一个或多个文件、简化对文件的反复 *** 作。

命令功能示例备注a在指定行的后面附加一行sed '$ahaha' hello.txt$表示最后一行i在指定行的前面插入一行sed ‘2ihaha’ hello.txt-i直接修改源文件d删除d 后面通常不接任何内容s替换sed [address]s/pattern/replacement/flags hello.txt1.address表示指定要 *** 作的具体行(可选项);2. s表示替换 *** 作;3. pattern是需要替换的内容;4. replacement是要替换的新内容;

【注意】
flags 表示指定要替换的字符串在这一行中出现第几次时才进行替换,也可以直接表示为g,对所有匹配到的内容进行替换,若flags的值为空,则只会在第一次匹配成功时做替换

5.2.1 shed使用案例

sed -i 's/abc/xyz/g' hello.txt
说明:此命令表示将hello.txt中的abc字符全部替换为xyz

1.-i表示直接修改文档内容;
2. s表示用一个字符替换另一个;
3. abc表示需要替换的源字符串;
4. xyz表示需要替换的目的字符串;
5. g表示对文件内的所有匹配数据进行替换,如果不加此参数,则只会替换第一个源字符串的数据

5.3 awk命令

awk时一种处理文本文件的语言,是一个文本分析工具。
基本格式:awk [option] programe file

命令功能示例-F指定行中字段的分隔符(默认字段分隔符时任意的空白字符)awk -F:'{print }' /etc/passwd代表文本行中的第1个数据字段代表文本行中的第1个数据字段代表文本行中的第2个数据字段$n代表文本行中的第n个数据字段
for ((i=0;i<10;i++))
do
...
done
6. Shell 编程

shell脚本第一行:!#/bin/bash
打印变量使用 echo $变量名

6.1 本地变量

定义格式: VAR_NAME=VALUE
变量引用:${VAR_NAME}

6.2 环境变量

export VAR_NAME=VALUE
想要环境变量永久有效则需在/etc/profile中添加此环境变量,然后执行source /etc/profile即可生效

6.3 位置变量

$0:脚本自身
$1:脚本的第一个参数
$2:脚本的第二个参数
【注意】位置变量相当于Java中main函数的args参数,可在shell脚本中动态获取外部参数
使用格式: hello.sh abc xyz

6.4 特殊变量

#?:上一条命令的状态码,0为成功
$#:shell脚本所有参数的个数

【注意】:echo ' "$JAVA_HOME" '和" ' $JAVA_HOME' "的区别,单引号不解析变量,双引号解析变量,反引号执行并引用命令的执行结果

6.5 循环判断 6.5.1 for循环

第一种写法:

for i in 0 1 2 3 4 5
do
...
done

第二种写法:

while 测试条件
do 
循环体
done
6.5.2 while循环

while循环适用于循环次数未知,或不便于使用for直接生成较大列表的情况

符号

【注意】测试条件中的test EXPR 或者[ EXPR ]中括号和表达式的空格不能少

整型测试:

含义-gt大于-lt小于-ge大于等于-le小于等于-eq等于-ne不等于符号

字符串测试:

含义=等于!=不等于
if 测试条件
then
	分支
fi

6.5.3 if判断

单分支

if 测试条件
then
	分支1
else 
	分支2
fi

双分支

if 测试条件
then
	分支1
elif 测试条件2
then 
	分支2
...
else 
	分支n
fi

多分支

  • &:可以将脚本在后台运行,但是当用户注销或者网络断开时,终端会受到Linux HUP信号从而关闭其所有子进程
  • 6.6 Shell 扩展

    后台模式运行脚本
    nohup hello.sh &
    【注意】nohup会在当前执行的目录生成一个nohup.out日志文件


    输出


    重定向

    实例:
    nohup command >/dev/null 2>&1 &

    1. /dev/null表示是一个无底洞,数据丢进去就找不到了
      2./dev/null前面省略了一个1,表示把标准输出重定向到无底洞当中
    2. 2>&1表示把标注错误输出重定向到了标准输出中
    3. *:分钟(0-59)
      *:小时(0-23)
      *:一个月中的第几天(1-31)
      *:月份(1-12)
      *:星期几(0-6) (星期天为0)
      user-name:用户名,用哪个用户执行
      command:具体需要指定的命令
      
    7. Crontab定时器

    crontab作用于周期性被执行的命令
    格式:* * * * * user-name command

    [+++]

    在/etc/crontab文件中进行定时任务的配置
    crontab的日志在/var/log/cron文件中,可使用tail -f命令实时监控
    crontab中任务是这样执行的,假设设置7分钟执行一次,那么就会在每个小时的第0、7、14、21、28…分钟执行。由于7分钟无法被60整除,那执行到这个小时的最后一次,下一次执行就是下一个小时的0分开始执行了,所以针对这种除不尽的到下一小时就开始重新计算了,不累计。

    )
    File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
    File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
    File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
    大数据开发中常用的Linux知识_随笔_内存溢出

    大数据开发中常用的Linux知识

    大数据开发中常用的Linux知识,第1张

    大数据开发中常用的Linux知识

    文章目录
    • 1. vi命令
      • 1.1 vi常用命令
      • 1.2 vi高级命令
    • 2. date命令
    • 3. 进程相关命令
    • 4. 文件相关命令
    • 5. Linux三剑客
      • 5.1 grep 命令
      • 5.2 shed命令
        • 5.2.1 shed使用案例
      • 5.3 awk命令
    • 6. Shell 编程
      • 6.1 本地变量
      • 6.2 环境变量
      • 6.3 位置变量
      • 6.4 特殊变量
      • 6.5 循环判断
        • 6.5.1 for循环
        • 6.5.2 while循环
        • 6.5.3 if判断
      • 6.6 Shell 扩展
    • 7. Crontab定时器

    1. vi命令 1.1 vi常用命令 常用命令功能vi表示要编辑某文件i进入编辑模式esc退出编辑模式shift + :wq保存,强制退出shift + :q不保存,退出 1.2 vi高级命令 功能方法备注查找字符串在命令模式下输入 /,然后再输入想要查找的字符串,最后按回车键即可按n可快速匹配下一个查找某一行内容在命令模式下首先按shift+:,然后输入具体的行号即可复制光标所在行yy向下复制2行2yy粘贴到光标所在的行下面p删除光标所在行dd删除光标所在行及下面行999dd快速跳到文件首行命令行模式输入gg快速跳到文件末行命令行模式输入G

    【注意】
    在使用vi编辑文件时未成功保存直接关闭程序,会默认在文件同级目录下产生一个临时文件,临时文件的文件名后缀为 .swp。以后再修改这些文件每次都会先出现一些提示信息,想要避免此问题,需要删除此.swp临时文件(使用ls -a命令可查看此临时文件)。


    2. date命令

    date命令默认显示当前时间
    date 的基本格式: date +"%Y-%m-%d %H:%M:%S"


    【注意】双引号不是必须的,中间没有空格则不需要双引号


    常用功能命令备注获取当前时间戳date +%s获取指定日期的时间戳date +%s --date="2022-01-01 00:00:00"获取昨天的日期date --date="1 days ago"获取指定日期的前一天date --date="2022-01-02 1 days ago"可以在命令后面通过+号指定日期输出格式 3. 进程相关命令 命令功能案例psps -e显示系统中的所有进程ps -ef | grep java查看ava进程信息netstat -anp查看端口信息netstat -anp | grep 22jps显示当前用户已启动的Java进程top查看服务器进程信息(动态显示) 4. 文件相关命令 命令功能案例备注wc统计字数相关信息-w 统计字数;-c 统计Bytes数;-l 统计行数sort排序-n 依照数值大小排序; -r以相反的顺序排序; -k 按照指定列排序uniq检查重复的行-u 仅显示不重复的行通常与sort结合使用实现去重head获取前几条的数据head -3取前3条数据 5. Linux三剑客 5.1 grep 命令

    grep 用来查找文件内符合条件的字符串,经常结合管道符 | 来实现数据过滤查找。

    命令功能-i忽略大小写-n显示字符串所在的行号-v忽略包含指定字符串的数据 5.2 shed命令

    主动用来编辑一个或多个文件、简化对文件的反复 *** 作。

    命令功能示例备注a在指定行的后面附加一行sed '$ahaha' hello.txt$表示最后一行i在指定行的前面插入一行sed ‘2ihaha’ hello.txt-i直接修改源文件d删除d 后面通常不接任何内容s替换sed [address]s/pattern/replacement/flags hello.txt1.address表示指定要 *** 作的具体行(可选项);2. s表示替换 *** 作;3. pattern是需要替换的内容;4. replacement是要替换的新内容;

    【注意】
    flags 表示指定要替换的字符串在这一行中出现第几次时才进行替换,也可以直接表示为g,对所有匹配到的内容进行替换,若flags的值为空,则只会在第一次匹配成功时做替换

    5.2.1 shed使用案例

    sed -i 's/abc/xyz/g' hello.txt
    说明:此命令表示将hello.txt中的abc字符全部替换为xyz

    1.-i表示直接修改文档内容;
    2. s表示用一个字符替换另一个;
    3. abc表示需要替换的源字符串;
    4. xyz表示需要替换的目的字符串;
    5. g表示对文件内的所有匹配数据进行替换,如果不加此参数,则只会替换第一个源字符串的数据

    5.3 awk命令

    awk时一种处理文本文件的语言,是一个文本分析工具。
    基本格式:awk [option] programe file

    命令功能示例-F指定行中字段的分隔符(默认字段分隔符时任意的空白字符)awk -F:'{print }' /etc/passwd代表文本行中的第1个数据字段代表文本行中的第1个数据字段代表文本行中的第2个数据字段$n代表文本行中的第n个数据字段
    for ((i=0;i<10;i++))
    do
    ...
    done
    
    6. Shell 编程

    shell脚本第一行:!#/bin/bash
    打印变量使用 echo $变量名

    6.1 本地变量

    定义格式: VAR_NAME=VALUE
    变量引用:${VAR_NAME}

    6.2 环境变量

    export VAR_NAME=VALUE
    想要环境变量永久有效则需在/etc/profile中添加此环境变量,然后执行source /etc/profile即可生效

    6.3 位置变量

    $0:脚本自身
    $1:脚本的第一个参数
    $2:脚本的第二个参数
    【注意】位置变量相当于Java中main函数的args参数,可在shell脚本中动态获取外部参数
    使用格式: hello.sh abc xyz

    6.4 特殊变量

    #?:上一条命令的状态码,0为成功
    $#:shell脚本所有参数的个数

    【注意】:echo ' "$JAVA_HOME" '和" ' $JAVA_HOME' "的区别,单引号不解析变量,双引号解析变量,反引号执行并引用命令的执行结果

    6.5 循环判断 6.5.1 for循环

    第一种写法:

    for i in 0 1 2 3 4 5
    do
    ...
    done
    

    第二种写法:

    while 测试条件
    do 
    循环体
    done
    
    6.5.2 while循环

    while循环适用于循环次数未知,或不便于使用for直接生成较大列表的情况

    符号

    【注意】测试条件中的test EXPR 或者[ EXPR ]中括号和表达式的空格不能少

    整型测试:

    含义-gt大于-lt小于-ge大于等于-le小于等于-eq等于-ne不等于符号

    字符串测试:

    含义=等于!=不等于
    if 测试条件
    then
    	分支
    fi
    
    
    6.5.3 if判断

    单分支

    if 测试条件
    then
    	分支1
    else 
    	分支2
    fi
    
    

    双分支

    if 测试条件
    then
    	分支1
    elif 测试条件2
    then 
    	分支2
    ...
    else 
    	分支n
    fi
    
    

    多分支

  • &:可以将脚本在后台运行,但是当用户注销或者网络断开时,终端会受到Linux HUP信号从而关闭其所有子进程
  • 6.6 Shell 扩展

    后台模式运行脚本
    nohup hello.sh &
    【注意】nohup会在当前执行的目录生成一个nohup.out日志文件

    • 标准输出使用描述符1表示,可以省略不写

    输出

    • 标准错误输出,使用描述符2表示
    • 重定向后面指定描述符的时候需要使用&来指定

    重定向

    • >: 普通重定向,会覆盖上一次重定向的内容
    • >>:追加重定向,把本次重定向的内容追加到后面

    实例:
    nohup command >/dev/null 2>&1 &

    1. /dev/null表示是一个无底洞,数据丢进去就找不到了
      2./dev/null前面省略了一个1,表示把标准输出重定向到无底洞当中
    2. 2>&1表示把标注错误输出重定向到了标准输出中
    3. *:分钟(0-59)
      *:小时(0-23)
      *:一个月中的第几天(1-31)
      *:月份(1-12)
      *:星期几(0-6) (星期天为0)
      user-name:用户名,用哪个用户执行
      command:具体需要指定的命令
      
    7. Crontab定时器

    crontab作用于周期性被执行的命令
    格式:* * * * * user-name command

    在/etc/crontab文件中进行定时任务的配置
    crontab的日志在/var/log/cron文件中,可使用tail -f命令实时监控
    crontab中任务是这样执行的,假设设置7分钟执行一次,那么就会在每个小时的第0、7、14、21、28…分钟执行。由于7分钟无法被60整除,那执行到这个小时的最后一次,下一次执行就是下一个小时的0分开始执行了,所以针对这种除不尽的到下一小时就开始重新计算了,不累计。

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zaji/5690168.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-12-17
    下一篇 2022-12-17

    发表评论

    登录后才能评论

    评论列表(0条)

    保存