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

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 22
jps显示当前用户已启动的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 '$a\haha' hello.txt$表示最后一行
i在指定行的前面插入一行sed ‘2i\haha’ 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 $1}' /etc/passwd
$0代表文本行中的第1个数据字段
$1代表文本行中的第1个数据字段
$2代表文本行中的第2个数据字段
$n代表文本行中的第n个数据字段

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=0;i<10;i++))
do
...
done

第二种写法:

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

6.5.2 while循环

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

while 测试条件
do 
循环体
done

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

整型测试:

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

字符串测试:

符号含义
=等于
!=不等于

6.5.3 if判断

单分支

if 测试条件
then
	分支
fi

双分支

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

多分支

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

6.6 Shell 扩展

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

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

输出

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

重定向

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

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

  1. /dev/null表示是一个无底洞,数据丢进去就找不到了
    2./dev/null前面省略了一个1,表示把标准输出重定向到无底洞当中
  2. 2>&1表示把标注错误输出重定向到了标准输出中
  3. 重定向后面指定描述符的时候需要使用&来指定

7. Crontab定时器

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

*:分钟(0-59)
*:小时(0-23)
*:一个月中的第几天(1-31)
*:月份(1-12)
*:星期几(0-6) (星期天为0)
user-name:用户名,用哪个用户执行
command:具体需要指定的命令

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

参考文献

慕课网 https://www.imooc.com/wiki/BigData

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是希望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值