Linux运维常用命令

查询命令所在的安装包

1
$ yum provides '*/nslookup'

搜索安装包

1
$ yum search 'php*'

查看启用的yum源

1
$ yum repolist all

可查看是否有i权限

1
$ lsattr filename

添加i权限(不可修改权限),锁定文件。 -i 取消i权限 -R 递归添加或取消权限

1
$ chattr +i filename

获取HTTP返回码

1
$ curl -o /dev/null -s -m 10 --connect-timeout 10  -w %{http_code} 192.168.2.40/index.php

IO测试

1
2
# if=文件名:输入文件名,缺省为标准输入。bs=1M:块大小,每块1M,单位可以为M或G。count=400:读取多少个bs,这里是400个即读取总计400M
$ dd if=/dev/zero of=/filename bs=1M count=400

使用sendmail发送邮件 -s 标题 echo 内容

1
$ echo "123123" | mail -s "hello word" 1067028071@qq.com

查询硬件信息,很详细

1
$ lshw

安装Linux console下的滑鼠驱动程序,它主要提供文字模式下的滑鼠事件处理

1
$ yum -y install gpm && chkconfig gpm on

释放linux缓存

1
$ echo 1 > /proc/sys/vm/drop_caches

vi下转换文本格式

1
$ :set fileformat=unix

让vim退出后保留编辑内容再屏幕上,写入vimrc可永久生效

1
$ :set  t_ti= t_te=

删除带 - 的文件,在前面加–即可

1
$ rm -f -- -a-b-filename

column 格式化列显示,在linux中排序简直就是神器,不用再打tab和空格来控制文本了

1
$ column -t filename

修改linux时区为上海

1
$ cp  /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

wget 进度条无限刷新的解决方法

1
2
3
$ yum  -y install gettext
$ msgunfmt /usr/share/locale/zh_CN/LC_MESSAGES/wget.mo -o - | sed 's/eta(英国中部时间)/ETA/' | msgfmt - -o /tmp/zh_CN.mo
$ cp /tmp/zh_CN.mo /usr/share/locale/zh_CN/LC_MESSAGES/wget.mo

Centos7电源管理(适用于物理机)

1
2
3
4
5
6
7
$ vi /etc/systemd/logind.conf
#HandlePowerKey:按下电源键后的动作
#HandleSleepKey:按下挂起键后的动作
#HandleHibernateKey: 按下休眠键后的动作
#HandleLidSwitch:合上笔记本盖后待机
#动作可以是 ignore(忽略)、poweroff(关机)、reboot(重启)、halt(挂起)、suspend(暂停)、hibernate(休眠)、hybrid-sleep(混合睡眠)、lock(锁定)或 kexec
$ systemctl restart systemd-logind #运行使上述更改立即生效。

SElinux管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
centos7 修改selinux 开机导致 faild to load SELinux policy  freezing 错误
1. 重启时在启动页面 按 E, 进入 grub 编辑页面;
2. 找到 linux 那一行,在最后 language 后面,空格 加上 selinux=0
3. 然后 ctrl + x 重新运行,即可了
4. 重新启动之前,ls /etc/selinux 发现多了一个 config~的文件,,应该就是这个文件的问题了,把 config~文件删除
5. reboot重新启动

getenforce #查看Selinux当前状态
setenforce 1/0 #1:临时启动Selinux 0:临时关闭Selinux
#永久生效需要编辑Selinux配置文件
$ vi /etc/selinux/config
# enforcing - SELinux 强制执行安全政策。
# permissive - SELinux 打印警告,而不是强制执行。
# disabled - 不使用SELinux
SELINUX=permissive
# targeted - 目标进程保护,
# minimum - 修改针对性的政策。只有选定的进程受到保护。
# mls - 多层次的安全保护。
SELINUXTYPE=targeted

shopt的extglob用法

1
2
3
4
5
6
7
8
9
10
11
#Bash Shell有个extglob选项,开启之后Shell可以另外识别出5个模式匹配操作符,能使文件匹配更加方便。 
#开启方法很简单,使用shopt命令:shopt -s extglob
#关闭,使用shopt命令:shopt -u extglob
#开启之后,以下5个模式匹配操作符将被识别:
#?(pattern-list) - 所给模式匹配0次或1次; *(pattern-list) - 所给模式匹配0次以上包括0次;+(pattern-list) - 所给模式匹配1次以上包括1次; @(pattern-list) - 所给模式仅仅匹配1次;!(pattern-list) - 不匹配括号内的所给模式。

#示例:
#删除文件名不以jpg结尾的文件:
rm -f !(*jpg)
#删除文件名以jpg或png结尾的文件:
rm -f *@(jpg|png)

卸载源码安装的服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#通常的方法是在源代码目录下执行
make uninstall
#如果源代码没有提供uninstall 方式,那么就没有什么好的方法卸载
#这就需要我们在安装此类源代码软件时养成良好的习惯:

#将软件安装在独立目录树下,在安装配置时:
$ ./configure --prefix=/usr/local/
#安装后如要卸载直接删除/usr/lcoal/package-name 即可
#安装时记录下所安装的所有软件,卸载时删除所有文件,下面介绍方法一例:
$ ./configure
$ make
$ touch /tmp/timestamp
$ make install
$ find /{bin,lib,sbin,usr} -cnewer /tmp/timestamp -type f -print / -exec sh -c " md5sum {} >>/var/lib/packages/your-package-name "
#以上find 命令可以建立一个系统函数随时调用,以简化操作步骤