Linux(2)
Linux 的常用命令
管道与重定向
管道:将前面命令的结果作为参数传递给后面的命令
grep :文本搜索工具
grep的-A, -B, -C选项分别可以显示匹配行的后,前,后前多少行内容
ps -ef | grep 程序名
**重定向:**改变数据输出的位置,方向
0 in 1 out 2 err
ls / 1> sxt 标准输出
ls / > sxt 标准输出
ls abcd 2>sxt 错误输出
> 替换 >> 追加
ls / 1>> sxt
ls / 1> sxt
结合使用
ls /etc /abc > sxt 2>&1
ls /etc /abc >> sxt 2>&1
信息黑洞
ls /etc /abc >> /dev/null 2>&1
进程信息
ps -ef
UID PID PPID C STIME TTY TIME CMD
UID 所属用户
PID 当前进程编号
PPID 当前进程编号的父进程编号
ps -ef | grep redis
ps -aux 所有信息
ps -aux --sort -pcpu
top 当前服务器内存使用率
后台进程
只需要在命令的后面添加一个 & 符号
ping www.baidu.com >> baidu &
jobs -l 查看当前的后台进程
nohup 可以防止后台进程被挂起(挂起的意思就是暂停)
kill -9 杀死进程
RPM
可以查询软件
rpm -qa | grep jdk
rpm -q jdk
rpm -ivh …rpm 通过RPM命令安装软件
rpm -e … 卸载
source /etc/profile 重新加载配置文件
压缩包解压安装
tar -zxf …tar.gz 解压文件
yum命令
search 查询命令或者软件
info 查看包的信息
list / list jdk 查询安装的rpm包,或者只查询某一周
更换yum源
首先安装wget
yum install wget -y
将系统原始配置文件失效
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
使用Wget获取阿里yum源配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清空以前yum源的缓存
yum clean all
获取阿里云的缓存
yum makecache
Linux的三剑客
普通剑客
cut
用指定的规则来切分文本
cut -d’:’ -f1,2,3 passwd | grep school
sort
sort sxt
对文本中的行进行排序
sort -t’ ’ -k2 sxt
对每一行的数据进行切分,按照第二列进行排序
sort -t’ ’ -k2 -r sxt
逆序
sort -t’ ’ -k2 -n sxt
按照数值大小进行排序,如果有字母,字母在前
wc
统计单词的数量
wc sxt
4 15 79 sxt
-l line
-w word
-c char
剑客1号:grep
可以对文本进行搜索
同时搜索多个文件
grep school passwd sxt
显示匹配的行号
grep -n school passwd
显示不匹配的忽略大小写
grep -nvi school passwd --color=auto
使用正则表达式匹配
grep -E “[1-9]+” passwd --color=auto
剑客2号:sed
sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器
Sed软件从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行…
一次一行的设计使得sed软件性能很高
vi命令打开文件是一次性将文件加载到内存
了解即可
https://www.cnblogs.com/chensiqiqi/p/6382080.html
行的选择模式
10 第十行
m,n --> 第m行到第n行 [m,n]
m,+n–>第一行到第四行 [m,m+n]
m~n–>从m行开始,依次累加n
m,$ -->从m开始到最后一行
/school/ -->匹配到school的行
/u1/,/u4/–>从匹配u1到匹配u4
增
sed ‘2a sxtisgood’ passwd
sed ‘2i sxtisgood’ passwd
打印到控制台
sed -i ‘2a sxtisgood’ passwd
直接修改到文件
删
sed ‘3,10d’ passwd
改
整行替换
sed ‘3,20c hahaha’ passwd
sed ‘3~1c hehehe’ passwd
字符替换
sed ‘1,5s/root/sxt/g’ passwd
sed ‘1,5s#/#-#g’ passwd
剑客3号:awk
它不是一个剑客,它是一门语言
了解即可
https://www.cnblogs.com/chensiqiqi/p/6481647.html
模式与动作
awk -F “:” ‘NR>=2&&NR<=6’ /etc/passwd
awk -F “:” ‘{print NR,$1}’ /etc/passwd
awk -F “:” ‘NR>=2&&NR<=6 {print NR,$1}’ /etc/passwd
awk -F “:” ‘NR1{print NR,$1}NR2{print NR,$NF}’ /etc/passwd
Linux的Shell编程
什么是Shell编程
如今很多公司在面试的时候,都会加上一条:熟悉shell编程/脚本优先。那么,什么是Shell编程呢?说白了就是这么一句话:shell编程就是对一堆Linux命令的逻辑化处理
初识Shell编程
Hello World
第一行比较特殊,#!后面跟的是解释器的路径(shell本身就是一种解释型语言),解释器的路径是/bin/bash。一般都会以#!开始来指定使用的shell类型,除了bash shell以外,还有很多版本的shell, 例如zsh、dash等等…不过bash shell还是我们使用最多的。
第二行以**#符号开始,表示本行是注释**。
第三行中的echo是linux中的输出命令,该行的意思很明显的就是输出hello world!
Shell变量
shell编程中有两种变量,一种是我们自己定义的变量(自定义变量),第二种是Linux已定义的环境变量(如 PATH,HOME等等…这类变量我们可以直接使用)
自定义变量和系统环境变量的用法: $符号+变量名即可
需要记住的是:定义变量不用[$]符号,使用变量加符号即可
在自定义变量时,如果变量出现空格或者引号,那么也必须加引号, 否则就可以省略。还有一点需要注意,定义变量的时候,"="左右不能有空格。
我们可以把程序写入txt文档,并更后缀名为.sh 届时一个命令即可执行该shell脚本。
执行Shell的方式
./shsxt.sh 执行的必须是一个可执行文件(chmod u+x shsxt.sh)
sh shsxt.sh 执行的文件可以是一个普通文件
source shsxt.sh 直接在当前进程执行脚本
当我们执行bash的时候开启一个子进程,当脚本中出现ping的时候又开启了一个子进程
shell语法
https://www.runoob.com/linux/linux-shell-basic-operators.html
./shsxt.sh 执行的必须是一个可执行文件(chmod u+x shsxt.sh)
sh shsxt.sh 执行的文件可以是一个普通文件
source shsxt.sh 直接在当前进程执行脚本
当我们执行bash的时候开启一个子进程,当脚本中出现ping的时候又开启了一个子进程
shell语法
https://www.runoob.com/linux/linux-shell-basic-operators.html