Linux3

35.nmap

扫描指定服务器上所开启的tcp端口。

 

 

34.for

格式1:

 

 

 格式2:

 

例子:

 

 y=的那行是判断num是否是数字:sed是对以数字开头和以数字结尾的数字扔掉

34.while

 

 说明:计算1+2。。。。+100

34.until

循环条件成立,则终止循环。与while相反

 

34.服务管理

 

 说明:xinetd服务本身是独立的,即总是在内存中。而基于xinetd的服务不用在内存,需要它们时,得以xinetd服务作为中介,它就像代理一样。

 chkconfig 

 

 

说明:这些都是rpm安装的服务,这个命令是查看自启动的(进入某一级别时要不要自动启动)。以第一个为例,当系统处于0级别时(关机),abrt-ccpp服务关闭。1:单用户,2:不完全多用户,3:字符界面,4:未分配,5:图形界面,6:重启动

ps aux:查看系统中,所有已经运行的进程。

查看当前服务是否运行:

ps aux | grep 服务名

netstat -tlun:不过这个需要服务使用到端口号才行。

rpm服务与源码包服务的区别:

rpm包安装服务的主要位置:

 

服务启动:

 

说明:下面的命令是上面的命令的简化版

service --status-all:列出所有服务状态

Apache服务的自启动开启的第一种方法:

 

说明:--level默认级别就是2345,所以可以省略

Apache服务自启动的关闭:

chkconfig httpd off

Apache服务的自启动开启的第二种方法:

修改/etc/rc.d/rc.local文件,也可以修改它的连接文件/etc/rc.local:

 

说明:该文件会在用户登录前执行一遍。touch在没有文件时会新建,有文件时则更改文件的最后访问时间。 下面一行使得开机能够先启动。

Apache服务的自启动开启的第三种方法:

执行:ntsysv进入自启动配置界面,若想启动,则打*,否则去掉。

34.基于xinetd服务

注意:基于xinetd服务的启动等价于自启动,改了自启动,启动也改了

 

说明:此处修改Telnet配置文件。不能直接启动Telnet,因为它是基于xinetd的。把disable改为no

 说明:Telnet就跟着启动了

 

34.源码包安装服务

启动:

 

注意:rpm和源码都可以安装,因为位置不同,但不能同时启动,因为端口冲突

自启动:

 

利用服务管理命令启动:

 

利用chkconfig和ntsysv自启动源码的(默认是找不到的):

 

 

 说明:在刚才的链接文件中继续更改,其中35是级别,86是第86个启动httpd的的。在/etc/rc.d/rc3.d中,可以找到,在运行级别为3(rc3)时,各个文件的运行顺序是多少。注意,两行#都得有。

chkconfig add apache:把apache加入chkconfig管理序列

之后就可以用chkconfig和ntsysv来修改了。

 34.进程

一个程序或命令在执行时,可能产生多个进程。

ps:

 

 说明:-a:查看所有前台进程,-x:查看所有后天进程,-u:这个进程由哪个用户产生的,-l:显示更加详细的信息,-e:显示所有进程。

结果:

 

 说明:每行代表一个进程,init进程是其他所有进程的父进程

每列说明:

 

说明:如果TTY=?,则表示不认识,但其实是由系统内核创建的。

top:

 

输入top,得到:

 

 说明:

 

 

 说明:僵尸进程指的是快要结束了但是还没有结束的进程。

 

 说明:第一行就是说用户用了多少CPU。第四行最重要,越高cpu越轻松。

 

说明:第三行重要,越高越好。

 

利用交互模式可以看不同的格式,如按下shift+m

 进程树:

pstree

 查看各个进程的关系

 

 表示httpd进程下产生了8个httpd子进程

pstree -p:显示pid

pstree -u:显示进程所属用户

终止进程:

kill:

kill -l:查看可用进程信号,通过信号操纵进程

 

说明:第一行就是重启服务并重新调用配置文件,service用的就是这个。

kill -1 123:重启pid=123的进程,若进程是父进程,所有子进程都被杀死

killall:

 

killall -9 httpd:输入名字就行

pkill:

 

说明:和killall几乎一样的。

 w:先查询已经登陆的用户

pkill -9 -t tty1:把tty1踢出系统

 34.工作管理

把进程放到后台:

第一种方法:

后面加&,放到后台还在运行

tar -zcf a.tar.gz /etc &

第二种方法:

在任何命令执行的时候按住ctrl+z,这种方法是放到后台,暂停了。 

jobs

查看后台

 

 

 说明:1表示第一个放入后台,这是工作号,+表示这个进程是最后一个放入后台的,-代表倒数第二个。

 fg:

恢复后台工作

 

bg:

把后台暂停的工作恢复到后台执行 

 

 

34.vmstat

监听cpu和内存资源

 

说明:每次间隔1s,监听3次 

dmesg:

 

dmesg | grep etho:也能看网卡

free:

专门看内存的

 

 

总共占用1006MB,用了887MB,其中缓冲占了36MB,缓存占用了761MB,Linux真正用了887-36-761MB,空闲119MB

缓冲和缓存的区别:

 

 

 查看CPU详细信息:

cat /proc/cpuinfo

 uptime

 

uname:

 

 filie:

file /bin/ls : 通过输入一条外部命令(不能是内部命令)来判断当期系统的位数

lsb_release:

 

lsof:

 

例如:lsof -p 213:列出 pid=213的进程所打开的文件;lsof -c init:按字符串来查找。

34.定时

先把crond服务启动和自启动

 

crontab:

 

 

 

 

 

 

 

说明:如果写的是*,代表任意时间,第一个是每天的那个点执行。如果第二个例子的第一个是*,则是在17点时,每分钟执行一次。10 * * * * 命令:表示每小时第10分钟执行。

注意:用crontab时,%会对crontab有特殊的含义。所以脚本里面有用到%的都要在前面加上\:

 

 

 crontab -r:删除所有定时任务

 34.日志

通常的日志服务:rsyslogd

此服务是否启动?

 

日志作用:

 

 

 

 若安装了rpm服务,则对应日志:

 

 

 日志格式:

举例:

说明:第一条日志:在。。。时间,由本机(localhost)的sshd服务,产生了一条日志信息:root密码成功输入;第二条日志:由pam模块验证了用户的登录。

 

 一些服务:

 

 

说明:需要什么日志,就把对应的服务写到/etc/rsyslog.conf配置文件  

日志等级

 

说明:从上到下,等级递增,记录的信息递减,处理优先级递增。

日志记录位置:

 

说明:第一行指的是可以将日志保存到一个文件中去;第二行指的是将日志信息传给设备文件直接显示到屏幕。第四行指发给用户 。

 

 说明:在/etc/rsyslog.conf文件中的这句话表示:*.info:只要等级比info高的日志信息都输出到/var/log/messages中,后面的.none表示不要这些日志了,不用管。

34.日志轮替

指的是将大日志分成小日志或者把旧的日志扔掉。

第一种日志命名:

 

第二种命名:

 

说明:生成第一个日志文件时,命名:s0;生成第二个日志文件时:s0,s1,注意此时之前那个s0改名为s1,而新的日志文件名为s0。

/etc/logrotate.conf配置文件的参数说明:

 

说明:0600的第一个0指的是suid权限。如果就一个create,则按他默认的来。

 

 例如在/etc/logrotate.conf中:

 

说明:{}里面有monthly,就高于外面的weekly 。4表示保留4个日志。

把源码包安装的Apache加入轮替(rpm的默认已经有轮替,因为日志所在的目录是会搜到的,不需要手工轮替,而源码的日志位置找不到,所以需要在配置文件中进行轮替管理),因为定时任务会定时读取这些配置文件,日志就会依次轮替:

 

logrotate命令:

 

 说明:-v可以看下日志是否具备轮替条件。

logrotate -f /etc/logrotate.conf:全部规定的日志强制轮替

34.启动

init 运行级别:改变运行级别,切换运行级别,总共0-6运行级别

init 0:只关机,不保存

 修改默认级别:

 

 启动过程:

 

 说明:BIOS开机自检,加载MBR(主引导记录),主引导记录中保存有启动引导程序(对Linux而言,是grub)。若下载了多个操作系统,则进入下面一栏。不直接到硬盘加载驱动,而是先找到initramfs(/boot/下),在加载驱动

 

有了驱动就能读取硬盘了。

 查看initramfs:

 

 34.grub

 

配置文件内容:

 

 解释:

说明:当有多个操作系统时,默认启动第一个操作系统。隐藏菜单:当倒计时5s时,除非用户按了上下键,否则不显示菜单。

 

 

说明:第二行指的是启动的主目录都保存在第一块硬盘的第一个分区 。第三行就是在加载内核,第四行就是加载initramfs

 34.备份

完全备份:完完全全备份一份

增量备份:第二次备份时只备份增加的数据,最后恢复麻烦

差异备份:

 

 34.dump

 

说明:不用-level,直接-数字

先安装dump:yum -y install dump

 备份分区:

说明:0就是0级别的备份,1就是1级别的备份。上面的过程是:在install.log复制过去之前进行完全备份,复制过去之后进行增量备份。这里cat是查看dump是在什么时候执行的。

 

说明:这是查询整个分区的备份情况。/boot分区最后是1级别备份,它是在Wed。。。进行的 

dump对分区才能进行增量备份,不能对文件进行:

 

34.restore

 

 说明: 利用restore比较文件是否发生变化,/root/boot.bak.bz2是之前对boot分区的完全备份。

然后再改回来,重新restore比较。

 

 

说明:能够查看boot.bak.bz2拥有哪些数据

还原分区:

 

说明:这里要把0级别的完全备份和1级别的增量备份都恢复,才能实现分区恢复,得利用备份才能恢复。这里在自己建立的目录里面,所以也恢复到这里

34.source或.或bash或者#! 

vi新建一个a.txt,里面写:echo "asd"

source a.txt就能执行了,或者. a.txt

bash a.txt : 先开启一个bash进程,此时当前进程id更换(可以用echo $$查看),随后读入a.txt

还有一种方法,在a.txt里面的开头一行写上:#!/bin/bash

随后chmod +x a.txt将普通文件变成程序

最后直接./a.txt就能执行了,此时也是又开辟一个新bash进程,然后让它读取文件去执行。

35.函数

 

 先定义后使用:

vi 一个脚本里面写入:

#!/bin/bash #先声明用什么shell解释器,如果不写则默认bash

调用脚本传入参数。

调试两种方法(每行都会执行并用+打印该行的执行结果):

 

 

 

说明:参数最好用{}起来

想在外部调用其他脚本的函数的话用:source 其他脚本:

 

source 脚本或者. 脚本:使得该脚本的运行能够在调用source命令的相同空间中进行,因此可以不用管作用域了,能够互相调用了 

 36.bash7步扩展

37.netstat 查看建立了什么连接

netstat -nap : n:以ip地址显示,不进行ip地址与逻辑名称的转换,a:所有,p:进程

38.router -n

查看路由表

39.arp -a:

打印arp表

 

cd -P 链接文件:如果是个目录,则是正常的cd,如果是个链接文件,则cd到文件的链接处

posted @ 2019-05-11 14:49  Jary霸  阅读(418)  评论(0编辑  收藏  举报