linux学习(二)

linux学习(二)_第1张图片


10.5.1 Shell基础-Bash变量-数值运算与运算符





声明变量declare  -+ 选项   变量

-   设定属性
 +    删除属性
-p    查看变量
-x    设定为环境变量  (功能类似export)
-i     设定为整数型变量(integer)

数值运算方式1.   declare  -i cc=$aa+$bb              运行命令
数值运算方式2.    dd=$(expr $aa  +  $bb)             调用工具
数值运算方式3.    ff=$((运算)) 或ff=$[运算]           括符



10.5.2 Shell基础-Bash变量-变量测试与内容替换





linux学习(二)_第2张图片


第一个 
unset y
x=${y-new}
echo $x           -----》new

通过测试x的值,判断y: 不存在,空,值

10.6.1 Shell基础-环境变量配置文件-简介


让配置文件直接生效命令:source  配置文件     或     .   配置文件









10.6.2 Shell基础-环境变量配置文件-作用





/etc 下的环境变量对所有用户都生效  

最后一个是未登陆(输入密码)直接切换bash shell定义文件 

linux学习(二)_第3张图片


10.6.3 Shell基础-环境变量配置文件-其他配置文件和登录信息


注销时生效:  ~/.bash_logoout

历史命令: ~/.bash_history


shell登陆提示信息

1.   /etc/issue   (只对本地用户生效,远程不生效)

linux学习(二)_第4张图片


2.  /etc/issue.net  远程登陆

开启方法:

/etc/ssh/sshd_config  ---》    找Banner 改为 Banner /etc/issue.net   ----》重启sshd服务  


3.都可以看到的信息 /etc/motd


11.1 Shell编程-正则表达式 



通配符:针对文件名(不认识通配符)完全匹配

正则表达式:针对文件中的字符串 包含匹配


linux学习(二)_第5张图片


a*  任意字符

aa*  一个a

aaa*  2个连续的a


.    相当通配符的?

.*  相当通配符的*


^$ 空白行


11.2.1 Shell编程-字符截取命令-cut命令


提取列(段),配合grep使用

cut  -d ":"  -f  1,2  /etc/passwd

-d  指定分界符,默认是TAB制表符

-f   指定第几列


缺点:对空格分隔提取不好

 

11.2.2 Shell编程-字符截取命令-printf命令


printf   '输出类型输出格式'  输出内容       (可以输出行列)

%ns   输出字符串         N为个数,不带n为1个  一个字符串可以单一字母也可以是长串字母

%ni    输出整数

%m.nf   输出浮点数  %8.2f   带表2位小数,6位整数


  输出格式包括 

linux学习(二)_第6张图片




printf '%s %s\n'  1 2 3 4 5 6

1 2

3 4

5 6

2个字符空格再换行


printf  '%s'   $(cat aa.txt)

只能输出  自定义或者命令输出给变量,不能直接输出文件


11.2.3 Shell编程-字符截取命令-awk命令


awk '条件{动作1}...'    文件名                                       可以识别df -h   里的空格 

说明:可以直接处理文件,类似已经用过cat

条件: x>=10

动作:格式化输出printf 或流程控制


例:成绩表

awk '{printf $2 "\t" $6"\n" }'   文件名

说明: 输出 第2列 制表符 第6列 换行



print比printf 最后多了个换行,省去了后者要输入"\n"


 df -h | grep sda1 | awk  '{print $5}' | cut -d "%" -f 1

截取 12% 中的 12


BEGIN:

awf 'BEGIN{print "this is test} {print $2 "\t" s6}'  成绩.txt

输出成绩前先输出“this is test“


END: 所有数据执行完后执行END里面的命令


FS内置变量(分隔符)

awk默认分隔符是空格或者制表符,用{FS=":"}这个可以指定分隔符


11.2.4 Shell编程-字符截取命令-sed命令 


sed 有别于vim,用以支持命令输出结果的删除,替换(支持管道符)   (类似数据库操作里的字段处理)


sed [选项]'[动作]   文件名

-n 只输出sed命令处理过的结果

-e 允许执行多条sed命令

-i  结果保存到文件里


 

sed  '2p' /etc/passwd

打印第2行,其它的内容也会重新打印一遍;加-n 只输出第2行


sed '2,10d' /etc/passwd

删除2-4行


sed '2a nihao'  /etc/passwd

第二行后追加,写成2i 为第二行前插入


sed '2c no list' /etc/passwd

全行替换成no list


sed '3s/99/55/g' 成绩单

把第3行的99分换成55分


sed  -e  's/99/55/g  ;  s/88/55/g' 成绩单

多次替换


11.3 Shell编程-字符处理命令

linux学习(二)_第7张图片

sort 选项 文件名         (排序)

-r 取反


sort  -t ":"  -k 3,3 -n  /etc/passwd

 按第3个段UID数值大小进行排序


wc /etc/passwd 统计命令

行  单词  字符个数

-l   -w       -m


11.4 Shell编程-条件判断


linux学习(二)_第8张图片


2种判断格式:

test -e /etc/passwd

[ -e /etc/passwd ]


查看echo $?



linux学习(二)_第9张图片


[ -r /etc/passwd ] && echo "yes" || echo "no"



linux学习(二)_第10张图片



ln a aa.lk
[ a -ef aa.lk ] && echo yes || echo no


linux学习(二)_第11张图片



linux学习(二)_第12张图片



linux学习(二)_第13张图片

11.5.1 Shell编程-流程控制-if语句


1.单分支if
if [ 条件 ]; then
程序
fi

或者

if [ 条件 ]
then
程序
fi

2.双分支
then后面加else







12.1 Linux服务管理-服务分类



服务分类:1. RPM包默认安装的服务  A.独立服务(常驻内存)  B.基于xinetd服务(通过调用常驻内存的xinetd访问相关服务)

                   2.源码包安装的服务

RPM包自启动状态查看:chkconfig --list


12.2.1 Linux服务管理-RPM服务的管理-独立服务管理



RPM包安装位置:

linux学习(二)_第14张图片



独立服务的启动方式1.  /etc/init.d/独立服务  start|stop|status|restart  (status查看状态)
                                    2.  service

查看所有独立服务启动状态: service --status-all

独立服务的自启动: 1.  chkconfig 服务名 on|off
                                  2. 修改/etc/rc.d/rc.local文件   (推荐)
                                  3. 命令ntsysv

12.3 Linux服务管理-源码包服务的管理

启动方法:绝对路径  start|stop
自启动改配置文件

源码包能被service识别,只需将源码包启动文件做软链接到 /etc/init.d/下

12.4 Linux服务管理-服务管理总结

linux学习(二)_第15张图片





13.1.1 Linux系统管理-进程管理-进程查看


查看所有进程
ps aux   (常用unix)
ps -le 

查看系统健康状态
top
排序  P:cpu  M:内存

进程树  pstree 
-p 显示PID
-u 显示用户

13.1.2 Linux系统管理-进程管理-终止进程

kill -l  查看所有可用的杀死方式

kill -15 PID  默认杀死
kill -9 PID  强制杀死
kill -1 PID 重起进程


杀死进程名killall -9 httpd(进程名)
-i 访问
-I 忽略大小写

pkill 和 killall 同
不同可以踢用户先w再 pkill -9 -t 终端名


13.2 Linux系统管理-工作管理


进程最小化方法
1.tar -czf  etc.tar.gz /etc &   (进程继续运行)
2.ctrl+Z 暂停放入后台

查看后台工作
jobs
-l 显示中文 可显示进程号,并杀死


进程恢复到前后台
fg(bg)   工作号


13.3 Linux系统管理-系统资源查看

1.vmstat 监控系统资源
   2   3   每隔2秒,共刷新3次

2.dmesg 查看系统开机自检系统
   grep 查看想要的信息

3.free 内存信息

4.cat /proc/cpuinfo  查看CPU信息

5.uptime 系统运行时间

6.查看内核相关信息
uname
-a 所有
-r 内核

7.系统位数
file /bin/ls

8.查看系统发行版本
lsb_release -a

9.查看进程调用的文件
lsof 
-c  进程名
-p  PID

13.4 Linux系统管理-系统定时任务

定时任务进程crond默认是开启的,如没开启
service crond start 或者 chkconfig crond on

crontab
-e 编辑  格式 * * * * *  命令
-l  查询
-r  删除所有任务

linux学习(二)_第16张图片


linux学习(二)_第17张图片

linux学习(二)_第18张图片


14.1 日志管理-简介

确定rsyslog是否启动
ps aux | grep rsyslogd
chkconfig --list | grep rsyslog

linux学习(二)_第19张图片



linux学习(二)_第20张图片


14.2 日志管理-rsyslogd服务




/etc/rsyslog.conf

14.3 日志管理-日志轮替

/etc/logrotate.conf
加轮替代码

logrotate /etc/logrotate.conf


15.1.1 启动管理-启动流程-运行级别

runlevel 查看当前级别
init n  改变级别

linux学习(二)_第21张图片


15.1.2 启动管理-启动流程-启动过程




linux学习(二)_第22张图片




15.2.1 启动管理-启动引导程序-Grub配置文件



vi /boot/grub/grub.conf  (启动配置文件)


15.3 启动管理-系统修复模式

单用户模式进入步骤: 菜单---->e----> 选项2+e ----->最后空格1------>b
单用户模式修复:1.root密码  2.运行级别

光盘修复: 作用:取消grub密码,修复文件
rescue install system (抢救,安全模式)
挂载硬盘目录  chroot /mnt/sysimage

修复文件思路:查要修复的文件属于哪个包------挂载光盘-----提取文件到root





16.1 备份与恢复-概述








增量备份----差异备份-----完全备份





16.2 备份与恢复-备份命令



linux学习(二)_第23张图片




linux学习(二)_第24张图片



目录备份不支持增量备份


restore命令

-C  比较模式(源和目的)         -C  -f  备份文件

-t    查看备份里有哪些文件

-r   恢复备份, (恢复到当前,所有要先建空目录,记得加-f)

































































你可能感兴趣的:(linux学习(二))