### 1、Linux
#### 1.1、文件或目录操作常用命令
cd:切换目录
vi/vim文本编辑器
ls:列出目录内容
-a:查看全部文件
-l:列出文件详细信息
mkdir:创建目录
-p:创建多级目录
rmdir删除空目录
rm -rf 递归删除目录,或文件,-r表示递归删除-f表示不用询问直接删除
touch:创建文件
cp 复制文件或目录
-r:表示递归复制
mv:移动文件,也可以用于重命名
cat、tac倒叙查看、more、less、head、tail都是查看文件内容
tail -f表示监控文件更新,常用于flume采集数据使用
head -n 表示查看前n行
> :覆盖写 >>追加写
ln -s [原文件] [目标文件] 给源文件创建一个软连接放在 目标文件目录
date:显示当前日期 -s表示设置日期
cal查看日历
#### 1.2、用户管理命令
useradd 用户名:添加用户
passwd 用户名:设置密码
id 用户名:判断用户是否存在
su 用户名:切换用户
userdel 用户名:删除用户 userdel -r 用户名:删除用户和其家目录
sudo :普通用户配置sudo后,在操作前加sudo可以拥有管理员的权限
usermod:
usermod -g 用户组 用户名:将用户加入用户组中,使其具有某个用户组的权限
chmod [-R] 777 文件名/目录:给予某个文件或目录所有权限 -R表示递归
chown [-R] 用户名 文件名 :更改当前文件或目录所有者 -R表示递归更改
chgrp [-R] 用户组 文件名:更改文件所属组
#### 1.3、磁盘分区类
df查看磁盘使用量
-a:列出所有
-h:以人类容易理解的方式显示
Du 查看目录空间占用
-s:汇总展示
-h:以人类容易理解的方式显示
#### 1.4、常用命令
find:查找命令
grep:过滤常和“|”管道符连用,跟在管道符后,对管道里面的内容进行过滤
-e 或的关系匹配用于链接过滤条件
-i 不区分大小写
-v 取反,取得不符合当前条件的内容
ps -aux或者ps -ef查看所有进程
top查看系统进程 执行top命令后可以选择【P】按照cpu使用率排序 【M】按照内存使用量排序
【R】切换升序或降序
-d n :每n秒更新一次系统进程情况
kill -9 pid进程号:强制杀死进程
netstat -anp :显示当前进程网络使用情况
#### 1.5文件压缩和解压缩
gzip/gunzip
gzip+文件 压缩
gunzip+文件.gz 解压缩文件
特点:只能压缩文件不能压缩目录,压缩不保留源文件
zip/unzip
zip [-r] 压缩后文件名.zip 要压缩的文件
unzip 压缩文件名.zip [-d 目录] :-d表示解压到指定目录
tar打包
tar -zcvf 打包后文件名 要打包的内容
tar -zxvf 文件包 【-C 目录】:-C表示解压到指定目录
#### 1.6、后台服务管理
service 后台服务管理
service 服务名 status/stop/start 进行服务状态查看,或停止或启动
chkconfig设置后台服务的自启配置
chkconfig 服务名 off/on :关闭服务自启或者开启服务自启
#### 1.7 、crond定时任务
crond -e 编辑定时任务
进入编辑页面,编写定时任务:
* * * * * 任务
第一个*代表一个小时的第几分钟 0-59
第二个*代表一天的第几小时0-23
第一个*代表一个月的第几天 1-31
第一个*代表一年的第几月 1-12
第一个*代表一周的星期几 0-7 (0和7都代表周日)
#### 1.8、软件安装命令
rpm从本地安装
rpm -qa 查询所有安装的rpm软件包
rpm -e 安装包 :卸载rpm安装包
rpm -ivh 安装包:安装rpm软件包
yum网络安装
yum install 【-y 】软件名 :-y表示确认安装 特点:会自动安装当前软件所需依赖
### 2、shell编程
2.1、echo 输出内容到控制台
2.2、脚本格式
脚本以 #!/bin/bash 开头,指定用bash来解释我们编写的shell脚本。
脚本必须有可执行权限
2.3、常用执行方式
有可执行权限的直接 在文件路径下输入文件名回车执行
没有可执行权限的通过在文件路径下 输入 sh 文件名 回车执行
2.4、变量定义时等号两侧不能有空格
2.5、··反引号或者$()表示引用 可以将其包含的结果返回给变量
2.6、export 变量名=变量值 设置环境变量
2.7、脚本中位置参数
$n (功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十以上的 参数需要用大括号包含,如${10}。)
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$# (功能描述:这个变量代表命令行中所有参数的个数)
2.8、运算规则
$((运算式))或则$[运算式]
2.9、条件判断
[ 条件语句 ] 前后要有空格
常用条件语句:
= 字符串比较
整数比较:
-lt 小于 less than
-le 小于等于
-eq 等于 equal
-gt 大于great than
-ge 大于等于 greant than equal
-ne 不等于not equal
权限判断:
-r 有读的权限
-w 有写的权限
-x 有执行的权限
eq:判断student.txt是否具有写权限断[-w student.txt ]:
文件类型判断:
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并是一个目录
eq: 判断/root/install.log目录中的文件是否存在断
[ -e/root/install.log ]
2.10、流程控制语句
##### if条件:
if 条件
then 操作
elif 条件
then 操作
fi
##### case语句:
case $变量名 in
"值1")
操作1;;
"值2")
操作2;;
*)
上面全没匹配到执行此操作;;
esac
##### for循环:
格式一:
for 变量 in 值1 值2 值3…
do
程序
done
格式二:
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
##### while循环:
while [ 条件判断式 ]
do
程序
done
2.11、从控制台读入数据
read(选项)(参数)
选项:
-p:指定读取值时的提示符
-t:指定读取值时等待的时间(秒)
参数
变量:指定读取值的变量名
2.12、自定义函数
格式:
[ function ] funname[()]
{
Action;
[return int;]
}
Funname
### 3、文本处理工具
3.1、cut 不会改变源文件
cut [选项参数] filename **等同于 split**
-f 列号,提取第几列
-d 分隔符,按照指定分隔符分割列 默认为空格
eq: cut -d: -f1 student.txt
-b 按照字符分割
eq:切割每一行第 1-5 个字符:cut -b 1-5 cut.txt
3. 2 sed
sed [选项参数] '操作逻辑' filename
参数:-i表示修改文件内容 不加则输出到控制台源文件不修改
操作用于组合成操作逻辑:
a\表示新增,前面加【行号】后面加【内容】表示在某行后加入内容
d表示删除:前面加【内容】表示删除所有包含该内容的行 sed -i '/h/d'test.txt
s表示替换 sed -i 's/h/H/g' test.txt 表示将所有h替换为H g表示全局 /是区分符号
3.3、awk
awk -F : ` 逻辑 ` 文件名 -F表示指定分隔符