【学会使用快捷键】
Ctrl + C:这个是用来终止当前命令的快捷键,当然你也可以输入一大串字符,不想让它运行直接Ctrl + C,光标就会跳入下一行。
Tab: 这个键是最有用的键了,也是笔者敲击概率最高的一个键。因为当你打一个命令打一半时,它会帮你补全的。不光是命令,当你打一个目录时,同样可以补全,不信你试试。
Ctrl + D: 退出当前终端,同样你也可以输入exit。
Ctrl + Z: 暂停当前进程,比如你正运行一个命令,突然觉得有点问题想暂停一下,就可以使用这个快捷键。暂停后,可以使用fg 恢复它。
Ctrl + L: 清屏,使光标移动到第一行。
【日期操作】
date '+%Y%m%d %H:%M:%S' 显示当前时间,如果Y为小写的话是显示的年份的后两位数字;
date -d '-1 day' '+%Y%m%d' d 选项也是经常要用到的,它可以打印n天前或者n天后的日期,当然也可以打印n个月/年前或者后的日期。
date +%w 显示为当前为星期几
【linux中文件颜色,蓝色,白色等各自代表的含义】
绿色文件---------- 可执行文件,可执行的程序
红色文件-----------压缩文件或者包文件
蓝色文件----------目录 www.2cto.com
白色文件----------一般性文件,如文本文件,配置文件,
源码文件等
浅蓝色文件----------链接文件,主要是使用ln命令建立的文件
【目录操作】
进入目录 :cd 后边跟路径就直接进入了该目录, cd后边跟要进入的目录路径,然后回车输入pwd;
创建目录 : mkdir 【参数】 后边跟路径 参数为-p 加这个参数的时候如果路径不存在则会根据这个路径进行创建,不存在的就给
创建出来而不报错,不加这个参数的时候如果路径不存在的话就会报错;
删除目录:rmdir 【参数】 后边跟路径,参数为-p有这个参数的话是将目标目录和上级目录全部删除;
删除文件和目录: rm 【参数】 后边跟路径 -f 强制的意思,如果不加这个选项,当删除一个不存在的文件时会报错。 -i 这个
选项的作用是,当用户删除一个文件时会提示用户是否真的删除;-r 当删除目录时,加该选项,如果不加这个选项会报
错。rm是可以删除不为空的目录的。(可以多个参数放在一起用 -rf)
查看目录:ls 【参数】 后边跟路径 就是查看某个目录或者某个文件,是list的简写。ls 后可以跟一个目录,也可以跟一个文
件。以下是ls的选项,在这里笔者并没有完全列出,只是列出了平时使用最多的选项。其他选项,你可以自行通过man
ls 查询。-a 全部的档案都列出,包括隐藏的。linux文件系统中同样也有隐藏文件。这些隐藏文件的文件名是以.开头
的。例如.test, /root/.123, /root/.ssh 等等,隐藏文件可以是目录也可以是普通文件。-l 详细列出文件的属性信
息,包括大小、创建日期、所属主所属组等等。ll 这个命令等同于ls –l 。
文件的重命名: mv [ 选项 ] [源文件] [目标文件] 移动到,但是也可以通过mv【原名称】【新名称】来对文件进行重新命名;
【修改文件】
修改文件可以通过vim【路径】 直接是进入了文件编辑模式
vim的三种模式:一般模式、编辑模式、命令模式。这需要你牢记的,因为以前笔者刚刚从事linux工作的时候去面试,很多单位的
笔试题就有这个知识点。
* 一般模式: 当你vim filename 编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,你可以做的操作有,上下移动
光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
* 编辑模式:一般模式下,是不可以修改某一个字符的,只能到编辑模式了。从一般模式进入编辑模式,只需你按一个键即可
(i,I,a,A,o,O,r,R)。当进入编辑模式时,会在屏幕的最下一行出现“INSERT或REPLACE”的字样。从编辑模式回到
一般模式只需要按一下键盘左上方的ESC键即可。
* 命令模式:在一般模式下,输入”:”或者”/”即可进入命令模式。在该模式下,你可以搜索某个字符或者字符串,也可以保
存、替换、退出、显示行号等等。
操作过程是,vim一个文件,之后通过点击i进入编辑模式,然后输入:进入命令模式,输入wq,然后回车,修改就保存了
【正则表达式】
语法: grep [-cinvABC] ‘word’ filename(路径 只能对文件进行匹配查询)
-c :打印符合要求的行数
-i :忽略大小写
-n :在输出符合要求的行的同时连同行号一起输出
-v :打印不符合要求的行
-A :后跟一个数字(有无空格都可以),例如 –A2则表示打印符合要求的行以及下面两行
-B :后跟一个数字,例如 –B2 则表示打印符合要求的行以及上面两行
-C :后跟一个数字,例如 –C2 则表示打印符合要求的行以及上下各两行
【linux脚本shell】
shell脚本就是一系列linux命令写在一段儿,后缀名为.sh通过执行这个脚本来运行着一系列的命令Shell脚本通常都是以.sh 为后
缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它一定
会是一个shell脚本了。test.sh中第一行一定是 “#! /bin/bash” 它代表的意思是,该文件使用的是bash语法。如果不设置该
行,那么你的shell脚本就不能被执行。’#’表示注释,在前面讲过的。后面跟一些该脚本的相关注释内容以及作者和创建日期或
者版本等等。当然这些注释并非必须的,如果你懒的很,可以省略掉,但是笔者不建议省略。因为随着你工作时间的增加,你写的
shell脚本也会越来越多, 如果有一天你回头查看你写的某个脚本时,很有可能忘记该脚本是用来干什么的以及什么时候写的。所
以写上注释是有必要的。另外系统管理员并非你一个,如果是其他管 理员查看你的脚本,他看不懂岂不是很郁闷。凡是自定义的
脚本建议放到/usr/local/sbin/目录下,这样做的目的是,一来可以更好的管理文档;二来以后接管你的管理员都知道自定义脚本
放在哪里,方便维护。
执行shell文件是用 sh 参数【fillname】 参数可有可无,当带参数为-x的时候可以查看shell文件的执行过程。
也可以通过chmod来执行shell文件,过程为 chmod +x 【fileName】 然后回车,之后在输入 ./【fileName】。
定义变量的格式为 “变量名=变量的值”。当在脚本中引用变量时需要加上’$’符号,这跟前面讲的在shell中自定义变量是一致
的。如果定义变量那么用反引号来括住函数 ``而不是单引号。比如 d=`date +%H:%M:%S`。
【函数介绍】
echo 在脚本中是往窗口显示内容,echo后边要有一个空格,当echo后边要调用变量的话必须要用双引号,如果是单引号的话
那么这个变量不会显示变量的值而是把这个变量作为一个单纯的字符串来显示;
read 在脚本中是用来读取窗口输入的东西,比如,read y 这个时候需要在窗口输入,输入之后shell会拿到输入的内容,然
后把输入的内容赋给变量y
sum 在脚本中是用来计算数字的和,前边要有$符号,然后用中括号把后边的数字或者变量给括起来,forexaple:sum=$[$x+$y]
if (());then content elif(());then content else content fi 这个是shell的if语句 if后边是两个括号,里
边写条件,然后是分号;然后是then接着写内容,content为内容,收尾的时候写fi;在判断数值大小除了可以用”((
))”的形式外,还可以使用”[ ]”。但是就不能使用>, < , = 这样的符号了,要使用 -lt (小 于),-gt (大于),-le
(小于等于),-ge (大于等于),-eq (等于),-ne (不等于)。
shell 脚本中if还经常判断关于档案属性,比如判断是普通文件还是目录,判断文件是否有读写执行权限等。常用的也就几
个选项:
-e :判断文件或目录是否存在
-d :判断是不是目录,并是否存在
-f :判断是否是普通文件,并存在
-r :判断文档是否有读权限
-w :判断是否有写权限
-x :判断是否可执行
使用if判断时,具体格式为: if [ -e filename ] ; then
【监控系统的状态】
w 查看当前系统的负载:
第一行的信息是当前系统的信息,而接下来的几行是当前系统所登陆的用户的信息
vmstat 监控系统的状态:
上面讲的w查看的是系统整体上的负载,通过看那个数值可以知道当前系统有没有压力,但是具体是哪里(CPU, 内存,磁盘
等)有压力就无法判断了。通过vmstat就可以知道具体是哪里有压力。vmstat命令打印的结果共分为6部分:procs, memory,
swap, io, system, cpu.请重点关注一下红色标出的项。
1)procs 显示进程相关信息
r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要你关注一下了;
2)memory 内存相关信息
swpd :表示切换到交换分区中的内存数量 ;
free :当前空闲的内存数量;
buff :缓冲大小,(即将写入磁盘的);
cache :缓存大小,(从磁盘中读取的);
3)swap 内存交换情况
si :由内存进入交换区的数量;
so :由交换区进入内存的数量;
4)io 磁盘使用情况
bi :从块设备读取数据的量(读磁盘);
bo :从块设备写入数据的量(写磁盘);
5)system 显示采集间隔内发生的中断次数
in :表示在某一时间间隔中观测到的每秒设备中断数;
cs :表示每秒产生的上下文切换次数;
6)CPU 显示cpu的使用状态
us :显示了用户下所花费 cpu 时间的百分比;
sy :显示系统花费cpu时间百分比;
id :表示cpu处于空闲状态的时间百分比;
wa :表示I/O等待所占用cpu时间百分比;
st :表示被偷走的cpu所占百分比(一般都为0,不用关注);
top 显示进程所占系统资源 这个命令用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源
(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出了很多信息,包括系统负载(load average)、进程数
(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。其实上面这些内容可以通过其他命令来查看,所、以用top重点查
看的还是下面的进程使用系统资源详细状况。这部分东西反映的东西还是比较多的,不过需要你关注的也就是几项:%CPU, %MEM,
COMMAND 这些项目所代表的意义, 另外笔者使用top命令时还常常使用-bn1 这个组合选项,它表示非动态打印系统资源使用情
况,可以用在脚本中。
【linux的系统服务管理】
1. ntsysv
用来配置哪些服务开启或者关闭,有点想图形界面,不过是使用键盘来控制的。如果没有这个命令请使用 yum install -y
ntsysv 安装它。。按键盘的上下方向键可以调节红色光标,按空格可以选择开启或者不开启,如果前面的中括号内显示
有’*’ 则表示开启否则不开启。通过这个工具也可以看到目前系统中所有的服务。建议除’crond, iptables, network,
sshd, syslog, irqbalance, sendmail, microcode_ctl’ 外其他服务全部停掉。选择好后,按’tab’键选择ok然后回车。
需要重启机器才能生效。
2. chkconfig
Linux系统所有的预设服务可以查看/etc/init.d/目录得到,其实这就是系统所有的预设服务了。为什么这样讲,因为系统预
设服务都是可以通过这样的命令实现‘service 服务名 start|stop|restart’ ,这里的服务名就是/etc/init.d/目录下
的这些文件了。除了可以使用’service crond start ‘启动crond外,还可以使用/etc/init.d/crond start 来启动。