Linux 系统管理
关键词:lsb_release
, reboot
, exit
, shutdown
, date
, mount
, umount
, ps
, kill
, systemctl
, service
, crontab
1. Linux 系统管理要点
- 查看 Linux 系统发行版本
- 使用 lsb_release(此命令适用于所有的 Linux 发行版本)
- 使用
cat /etc/redhat-release
(此方法只适合 Redhat 系的 Linux)
- 查看 CPU 信息 - 使用
cat /proc/cpuinfo
- 重新启动 Linux 操作系统 - 使用 reboot
- 退出 shell,并返回给定值 - 使用 exit
- 关闭系统 - 使用 shutdown
- 查看或设置系统时间与日期 - 使用 date
- 挂载文件系统 - 使用 mount
- 取消挂载文件系统 - 使用 umount
- 查看系统当前进程状态 - 使用 ps
- 删除当前正在运行的进程 - 使用 kill
- 启动、停止、重启、关闭、显示系统服务(Centos7),使用 systemctl
- 启动、停止、重启、关闭、显示系统服务(Centos7 以前),使用 service
- 管理需要周期性执行的任务,使用 crontab
2. 命令常见用法
2.1. lsb_release
lsb_release 不是 bash 默认命令,如果要使用,需要先安装。
安装方法:
- 执行
yum provides lsb_release
,查看支持 lsb_release 命令的包。
- 选择合适版本,执行类似这样的安装命令:
yum install -y redhat-lsb-core-4.1-27.el7.centos.1.x86_64
2.2. reboot
reboot 命令用来重新启动正在运行的 Linux 操作系统。
参考:http://man.linuxde.net/reboot
示例:
2.3. exit
exit 命令同于退出 shell,并返回给定值。在 shell 脚本中可以终止当前脚本执行。执行 exit 可使 shell 以指定的状态值退出。若不设置状态值参数,则 shell 以预设值退出。状态值 0 代表执行成功,其他值代表执行失败。
参考:http://man.linuxde.net/exit
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [root@localhost ~] logout
cd $(dirname $0) || exit 1
if [ "$#" -ne "2" ]; then echo "usage: $0 <area> <hours>" exit 2 fi
trap "rm -f tmpfile; echo Bye." EXIT
./mycommand.sh EXCODE=$? if [ "$EXCODE" == "0" ]; then echo "O.K" fi
|
2.4. shutdown
shutdown 命令用来系统关机命令。shutdown 指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。
参考:http://man.linuxde.net/shutdown
示例:
1 2 3 4 5
| shutdown -h now
shutdown +5 "System will shutdown after 5 minutes"
|
2.5. date
date 命令是显示或设置系统时间与日期。
参考:http://man.linuxde.net/date
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| date +"%Y-%m-%d" 2009-12-07
date -d "1 day ago" +"%Y-%m-%d" 2012-11-19
date -d "2 second" +"%Y-%m-%d %H:%M.%S" 2012-11-20 14:21.31
date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S" 2009-02-13 23:02:30
date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S" 2009/12/12 00:00.00
date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S" 2009-12-05 00:00.37
date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S" 2007-12-05 00:00.37
date +%Y%m%d date -d "+1 day" +%Y%m%d date -d "-1 day" +%Y%m%d date -d "-1 month" +%Y%m%d date -d "+1 month" +%Y%m%d date -d "-1 year" +%Y%m%d date -d "+1 year" +%Y%m%d
date -s date -s 20120523 date -s 01:01:01 date -s "01:01:01 2012-05-23" date -s "01:01:01 20120523" date -s "2012-05-23 01:01:01" date -s "20120523 01:01:01"
start=$(date +%s) nmap man.linuxde.net &> /dev/null
end=$(date +%s) difference=$(( end - start )) echo $difference seconds.
|
2.6. mount
mount 命令用于挂载文件系统到指定的挂载点。此命令的最常用于挂载 cdrom,使我们可以访问 cdrom 中的数据,因为你将光盘插入 cdrom 中,Linux 并不会自动挂载,必须使用 Linux mount 命令来手动完成挂载。
参考:http://man.linuxde.net/mount > https://blog.csdn.net/weishujie000/article/details/76531924
示例:
1 2 3 4 5 6 7 8 9
| mount /dev/hda1 /mnt
mount -o ro /dev/hda1 /mnt
mount -o loop /tmp/image.iso /mnt/cdrom
|
2.7. umount
umount 命令用于卸载已经挂载的文件系统。利用设备名或挂载点都能 umount 文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
参考:http://man.linuxde.net/umount
示例:
1 2 3 4 5 6 7
| umount -v /dev/sda1 /dev/sda1 umounted
umount -v /mnt/mymount/ /tmp/diskboot.img umounted
|
2.8. ps
ps 命令用于报告当前系统的进程状态。可以搭配 kill 指令随时中断、删除不必要的程序。ps 命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
参考:http://man.linuxde.net/ps
示例:
1 2 3 4 5
| ps aux | sort -rnk 4
ps aux | sort -nk 3
|
2.9. kill
kill 命令用来删除执行中的程序或工作。kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 job 指令查看。
参考:http://man.linuxde.net/kill
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
ps -ef | grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
kill 3268 kill 3268 -bash: kill: (3268) - 没有那个进程
|
2.10. systemctl
systemctl 命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
参考:http://man.linuxde.net/systemctl
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| systemctl start nfs-server.service
systemctl enable nfs-server.service
systemctl disable nfs-server.service
systemctl status nfs-server.service
systemctl restart nfs-server.service
systemctl list -units --type=service
iptables -I INPUT -p tcp --dport 22 -j accept
sudo systemctl status firewalld.service sudo systemctl stop firewalld.service sudo systemctl disable firewalld.service
|
2.11. service
service 命令是 Redhat Linux 兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
参考:http://man.linuxde.net/service
示例:
1 2 3 4 5 6 7 8 9 10 11 12
| service network status 配置设备: lo eth0 当前的活跃设备: lo eth0
service network restart 正在关闭接口 eth0: [ 确定 ] 关闭环回接口: [ 确定 ] 设置网络参数: [ 确定 ] 弹出环回接口: [ 确定 ] 弹出界面 eth0: [ 确定 ]
|
2.12. crontab
crontab 命令被用来提交和管理用户的需要周期性执行的任务,与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
参考:http://man.linuxde.net/crontab
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| * * * * * command
3,15 * * * * command
3,15 8-11 * * * command
3,15 8-11 */2 * * command
3,15 8-11 * * 1 command
30 21 * * * /etc/init.d/smb restart
45 4 1,10,22 * * /etc/init.d/smb restart
10 1 * * 6,0 /etc/init.d/smb restart
0,30 18-23 * * * /etc/init.d/smb restart
0 23 * * 6 /etc/init.d/smb restart
* */1 * * * /etc/init.d/smb restart
* 23-7/1 * * * /etc/init.d/smb restart
0 11 4 * mon-wed /etc/init.d/smb restart
0 4 1 jan * /etc/init.d/smb restart
01 * * * * root run-parts /etc/cron.hourly
|