57. mail
格式:mail -s「title」「receiver@mail.com」
示例:
56. date
格式:date +%s
功能:打印Unix时间戳
示例:
格式:date +%Y-%m-%d date +%Y%m%d date +%y%m%d
功能:打印当前日期
示例:
55. gcc44/g++44
若CentOS系统版本过低(如CentOS 5.4),则可能不支持「-std=c++0x」选项。解决办法是安装gcc44/g++44
① 安装:
yum install gcc44
yum install gcc44-c++
② 设置
export CXX=g++44
说明:对于C++项目,cmake使用的编辑器由环境变量「CXX」指定,默认为「/usr/bin/c++」;对于C项目,cmake使用的编辑器由环境变量「CC」指定,默认为「/usr/bin/gcc」
③ 编译
cmake ../project_dir && make
说明:运行cmake之前,需要先删除build目录的 CMakeCache.txt
54. bash_history
文件:~/.bash_history
名称:历史命令记录文件
功能:记录特定用户在命令行上执行过的命令
说明:
① bash_history跨会话和连接共享,即用户A以「some_user」账号登录到系统,用户B同样以「some_user」账号登录到系统,则A和B执行过的命令都将记录到同一个bash_history文件,即/home/some_user/.bash_history;
② 历史命令写入bash_history文件的时机是,当前会话关闭时;③ 此文件的访问权限为600;
安全问题:
bash_history文件可能造成密码泄露,请妥善处理
53. strings命令
语法:strings「options」file...
功能:打印文件中的可打印字符串。对于给定的每个文件,GNU strings会打印至少4个(或选项中指定的个数)字符长的可打印字符序列,后跟一个不可打印字符。strings主要用于确定非文本文件的内容
选项及参数:
-n min-len:打印长度至少为「min-len」个字符的字符序列,而不是默认值4
52. DNS
修改
vim /etc/resolv.conf
立即生效
51. 主机名
查看
hostname
echo $HOSTNAME
设置
◇ 临时设置
hostname 「name」
立即生效,系统重启后失效
◇ 永久设置
分别设置「/etc/hostname」「/etc/sysconfig/network」「/etc/hosts」
说明:
① 系统启动时,启动脚本中的一个(未知),会检查当前「主机名」是否为「localhost」或「localhost.localdomain」,若是,那么该脚本就会使用「接口IP」对应的「主机名」对其进行重置
②「接口IP」与「主机名」的映射,存在于「/etc/hosts」文件,若「/etc/hosts」中不存在此映射,则默认为该接口的「IP地址」
③「ip addr show to 0/0 scope global | awk '/[[:space:]]inet/{ print gensub("/.*","","g",$2) }'」命令可以获取「接口IP」
50. nslookup
命令:nslookup {hostname|ip}
说明:向DNS(域名服务器,domain name server)发送请求,进行域名解析:
① nslookup hostname,正向解析,通过主机名,获取ip地址
② nslookup ip,反向解析,通过ip地址,获取主机名
功能:
① 查看DNS服务器地址
② 验证DNS功能正常
示例:
正向解析
反向解析
前面两行「Server」「Address」为DNS服务器地址
49. 自启动
49.3 设置
① 编写自启动脚本
说明:
a. 系统启动或手动执行service「Name」start命令时,系统运行该脚本,并传入「start」参数
b. 系统关机或手动执行service「Name」stop命令时,系统运行该脚本,并传入「stop」参数
c. 脚本程序的主体,menu $1,决定了运行该脚本即执行menu()函数,并传入对应参数,分别调用start()或stop()
d. start()和stop()函数体内,包含了你想执行的操作
注意:
脚本开头必须包含如下两行注释:
#chkconfig:「RunLevel...」「StartPL」「StopPL」
#description: 「UrDescription」
「RunLevel...」为该程序指定默认运行级
「StartPL」即Start Priority Level,指定程序的启动优先级
「StopPL」即Stop Priority Level,指定程序的停止优先级
先启动的应该后关闭,后启动的应该先关闭,因此,一般情况下「StartPL」+「StopPL」应该等于100
② 在/etc/init.d/目录中,为该脚本添加符号链接
③ chkconfig
chkconfig --add「name」
49.2 目录
/etc/init.d
作用:存放启动脚本
说明:实为目录/etc/rc.d/init.d的符号链接
用法:通常是在该目录下创建一个指向实际启动脚本的符号链接,而不是直接将脚本文件放于该目录中
/etc/rcN.d
作用:开机启动目录
说明:
◇ N从「0」到「6」,共七个目录
◇ 实为目录/etc/rc.d/rcN.d的符号链接
内容:目录中的文件实为指向/etc/init.d目录中对应脚本的符号链接
符号链接的命名规则为{S|K}+{nn}+{Name}
{nn}表示两位整数,代表程序启动或停止的优先级,{00}-{99},数值越大,优先级越低,即:
△ 系统启动时,会按数值大小,先启动排在前面(数值小)的程序,后启动排在后面(数值大)的程序
△ 系统关机时,会按数值大小,先停止排在前面(数值小)的程序,后停止排在后面(数值大)的程序
{Name}表示程序的名称,务必与/etc/init.d目录下的脚本文件名对应
描述:系统启动时,会根据当前所处运行级别,分别进入对应的rcN.d目录,并按照文件名中包含的优先级,顺序处理目录下的链接文件:
◇ 对于以S开头的文件,系统启动对应的程序,即系统执行/etc/init.d目录下的对应脚本,并传入start参数
◇ 对于以K开头的文件,系统停止对应的程序,即系统执行/etc/init.d目录下对应的脚本,并传入stop参数
49.1 运行级
Linux下共有7个运行级,分别是:
等级0表示:关机,默认运行级别不能设为0,否则系统不能正常启动
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重启,默认运行级别不能设为6,否则系统不能正常启动
查看系统当前运行级:runlevel
48. chkconfig
chkconfig是管理程序自启动的命令行工具,它可以帮助系统管理员在/etc/rcN.d目录下创建对应程序的符号链接,从而使得我们无需手动地逐个添加
添加
命令:chkconfig --add「name」
功能:按照/etc/init.d目录中对应的程序脚本中指定的运行级和优先级,为该程序添加自启动
设置
命令:chkconfig --level「n...」「name」{on|off|reset|resetpriorities}
功能:将「name」程序在运行级「n...」下的自启动{开启|关闭|重置|重置优先级}
说明:
重置,即将该程序在对应运行级下的自启动开关,重置为目录/etc/init.d对应脚本中指定的配置
重置优先级,即将该程序在对应运行级下的优先级,重置为目录/etc/init.d对应脚本中指定的优先级
查看
◇ chkconfig --list :列出所有自启动程序的配置
「0-6」对应Linux系统下的7个运行级别,「on」表示该程序在对应运行级下开启自启动,「off」表示该程序在对应运行级下禁用自启动
◇ chkconfig --list「name」:列出名为「name」的程序的配置
◇ chkconfig「name」:查看服务「name」在当前运行级下是否自启。若是则返回true,echo $? 结果为0;否则返回false,echo $? 结果为1
◇ chkconfig --level「n」「name」:查看服务「name」在运行级「n」下是否自启
删除
命令:chkconfig --del「name」
功能:删除「name」程序的自启动
说明:仅删除/etc/rcN.d目录下的符号链接,/etc/init.d中的脚本文件不受影响
47. 系统服务
查看
查看所有服务:ls /etc/init.d
添加
编写服务脚本,参考49.3
若不需要自启动,则不必添加头信息:
#chkconfig:「RunLevel...」「StartPL」「StopPL」
#description: 「UrDescription」
运行
命令:service「name」{start|stop}
说明:运行该命令后,系统会运行/etc/init.d中对应的脚本程序,并传入对应的参数{start|stop},最终调用脚本中的start()或stop()函数。因此,只需要将你想执行的操作放入start()或stop()函数体即可
46. at命令
命令:at 「Options」「Cmds」「Time」
功能:指定命令何时执行
输出:命令的STDOUT和STDERR,发往提交作业的用户的邮箱
选项:
-M:禁止向用户发送邮件
-l:显示所有作业
-f「FileName」:从文件读取命令
-d「JobNo」:删除作业,「JobNo」为作业号
命令:从STDIN,或通过-f「FileName」从指定的文件中,读入所要执行的命令
时间:精确到分,格式包括
△ 日期时间 YYYY-MM-DD hh:mm
△ 时间 hh:mm
默认为今日hh:mm,若今日当前时间已超过hh:mm,则为明日hh:mm
△ now 代表当前时间
now + 1min 一分钟后
now + 2hour 两小时后
now + 3day 三天后
示例:
45. 查看CentOS版本
② 查看/etc/redhat-release文件
命令:cat /etc/redhat-release
示例: