Chapter 13. 小技巧
Chapter 13. 小技巧
禁止非root用户登录系统
在/etc目录下新建一个nologin文本文件,内容随意。当系统发现该文件,就会禁止其它用户登录,并显示该文件内容。
禁用CTRL+ALT+DEL组合键,防止非法重启电脑。
修改/etc/inittab文件,注释掉以下内容即可:
由 ca::ctrlaltdel:/sbin/shutdown -t3 -r now 改成: #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
重新配置键盘布局
debian:~#dpkg-reconfigure console-data
要在终端下使用中文,可安装zhcon平台,该平台自带多种输入法,包括拼音和五笔。zhcon要求内核支持framebuffer功能。软件的安装方法很简单,使用以下命令即可:
debian:~#apt-get install zhcon
modconf是一个内核模块配置工具,我们可利用该工具增删正在运行的内核模块。修改可保存,下次重启服务器修改仍有效。它修改的配置文件是/etc/modules。
Debian系统有很多配置文件,系统的功能都是通过这些配置文件来配置的,所以这些文件是非常重要的,特别对系统管理员来说,在日常工作都需和这些文件打交道。作为一个合格的系统管理员,应该要确保系统的稳定,并在出错后能迅速恢复。所以在修改这些配置文件前,应该以.old为后缀进行备份,并修改文件属性为只读,确保能准确恢复到初始状态。
debian:~# cd /etc debian:~# cp fstab fstab.old debian:~# chmod a-w fstab.old
使用write username [tty]命令可与其它终端在线通信。用Ctrl+D结束输入并发送信息。wall命令可向所有用户发送信息。
在.profile文件中设置mesg n命令可阻止其它用户用write发送过来的信息。
/etc/issue是一个文本文件,里面的内容会在用户登录前被显示在终端上。/etc/issue.net文件是供网络登录的用户使用的。
/etc/motd也是一个文本文件,它是message?of?today(今天的信息)的缩写,里面的信息会在用户登录后显示,该文件经常被用作系统公告,用于把最新的信息通知终端用户。
使用losetup个程序可在Linux下实现虚拟光驱功能。
/proc目录下的文件包含大量系统的信息,通过cat命令可直接查看。
/proc/cpuinfo,CPU相关的信息,如主频、型号、缓存等。
/proc/interrupts,中断信息。
/proc/ioports,设备IO端口信息。
/proc/meminfo,内存信息,如MemTotal、MemFree、Cached等。
/proc/partitions,分区信息。
/proc/pci,PCI设备信息。
/proc/swaps,Swap分区的信息。
/proc/version,Linux版本信息。
Table 13.1. 一般设备的设定值
设备 I/O地址 IRQ ttyS0(COM1) 3f8 4 ttyS1(COM2) 2f8 3 ttyS2(COM3) 3e8 4 ttyS3(COM4) 2e8 3 lp0(LPT1) 378-37f 7 lp1(LPT2) 278-27f 5 fd0、fd1(floppy1,floppy2) 3f0-3f7 6 /var/run/utmp是一个二进制文件,记录当前登录系统的用户信息。可用who或w命令显示当中的内容。如:
debian:/var/log# w 23:23:46 up 3:14, 3 users, load average: 0.61, 0.60, 0.45 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root :0 - 20:12 ?xdm? 33:58 1.91s x-session-manager root pts/1 :0.0 23:19 8.00s 0.28s 0.21s ssh reomte root pts/3 :0.0 22:31 0.00s 0.23s 0.00s w
/var/log/wtmp也是一个二进制文件,记录每个用户的登录次数和持续时间等信息,可以last命令输出当中内容,如:
debian:/var/log# last root pts/1 :0.0 Thu Jul 7 23:19 still logged in root pts/3 :0.0 Thu Jul 7 22:31 still logged in root pts/3 :0.0 Thu Jul 7 20:17 - 22:24 (02:06) root pts/1 :0.0 Thu Jul 7 20:14 - 22:39 (02:24) root :0 Thu Jul 7 20:12 still logged in reboot system boot 2.6.10 Thu Jul 7 20:10 (03:17) ....
安装sysvinit软件包可管理debian中启动的各种服务。
sync命令可强制把缓存中所有未保存的数据写回磁盘中,有效保证数据的完整性。
/proc/ide/hd*/media文件只有一行,记录ide设备的类型(cdrom、disk、type、floppy)如:
disk #表示是硬盘
通过/proc/ide/hd*/model文件,可以查询到ide设备的型号信息,如:
IBM-DJSA-220
通过/proc/ide/hd*/geometry文件,可以查询到ide设备的参数(cylinders/heads/sectors)。如:
physical 16383/16/63 logical 38760/16/63
在Linux上有各种的压缩文件格式,不同的压缩格式用不同的程序来处理
.gz压缩包用gunzip程序
.Z压缩包用uncompress程序
.zip压缩包用unzip程序
.bz2压缩包用bunzip2程序
UTC表示国际标准时间,CST表示中国标准时间,UTC比CST慢8小时。使用tzconfig工具可以配置本机的时区。
dpkg -L packagename命令可列出已安装的软件包的所有文件及其所在的目录。
crontab -e命令可以创建当前用户的定时任务,如每天8点发一封邮件给管理员等。设置格式如下:
m h dom mon dow command 分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 日/周(0-7) 命令
每小时的01分执行一次ping命令的示例:
01 * * * * ping -c 3 192.168.1.254
几种特殊符号:
* 星号表示任何时候 , 逗号表示不连续的时间段,如01,03 * * * * ping -c -3 192.168.1.254,每小时的01和03分都执行一次ping命令 - 中横扛表示连续的时间段,如10 01-08 * * * ping -c -3 192.168.1.254,1点到8点每个小时的10分都执行一次ping命令 /n 表示每隔n个单位间隔,如*/07 * * * * ping -c -3 192.168.1.254,每隔7分钟执行一次ping命令
用crontab -e命令设置的是用户级的任务计划,系统的任务计划在/etc/crontab文件中设置,它是一个文本文件,设置的语法是一样的。如:
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file. # This file also has a username field, that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily 47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly 52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly #
run-parts命令后指定一个目录名为参数会自动搜索并执行该目录下所有的可执行文件。
在bash shell中查找命令历史是很方便,使用Ctrl+r命令即可进入查找状态,依次键入曾经使用过的命令,bash shell会自动匹配相似的命令行。
xvidtune工具可以调整显示模式。xrandr工具可显示和设置显示模式。
apropos命令可查找命令名和相关描述。
lsusb可列出usb设备。