CH01:
- date:date 可以用来显示或设定系统的日期与时间。
- cal:cal [参数][月份][年份] 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
- free:free [参数] 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略 -m 以MB为单位显示内存使用情况。 -g 以GB为单位显示内存使用情况。
- df : df [选项] [文件] 显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示
- ps: ps[参数] 用来显示当前进程的状态 显示所有进程信息 ps -A 显示指定用户信息 ps -u root
linux上进程有5种状态: - 运行(正在运行或在运行队列中等待)
- 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process - tab: 自动补全
- clear:清除当前屏幕终端上的任何信息。
- exit:exit(参数) exit命令同于退出shell,并返回给定值。在shell脚本中可以终止当前脚本执行。执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。
CH02:
-
ls:
-
file:确定文件的具体类型
-
chmod:用于改变文件或目录的访问权限,用它控制文件或目录的访问权限。
u :目录或者文件的当前的用户 g :目录或者文件的当前的群组 o :除了目录或者文件的当前用户或群组之外的用户或者群组 a :所有的用户及群组 -
cd:
-
pwd:查看”当前工作目录“的完整路径 pwd -P 显示出实际路径,而非使用连接(link)路径。
-
mkdir:mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写®权限,并且指定的目录名不能是当前目录中已有的目录。 -p, --parents (递归撞见) 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
-
rmdir:该命令从一个目录中删除一个或多个子目录(空目录)项,删除某目录时也必须具有对父目录的写权限 -p递归删除空目录
-
cp :(-s-l区别) cp [选项]… [-T] 源 目的 或:cp [选项]… 源… 目录 将源文件复制至目标文件,或将多个源文件复制至目标目录。 -s 参数,建立的是一个『快捷方式』
-
rm:删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤 -
mv:mv [选项] 源文件或目录 目标文件或目录 可以用来移动文件或者将文件改名
-
cat: 主要有三大功能:
1.一次显示整个文件:cat filename filename2…多个文件连接起来显示。
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:cat file1 file2 > file -
tac:用法:tac [选项]… [文件]…
将每个指定文件按行倒置并写到标准输出。如果不指定文件,或文件为"-",则从标准输入读取数据。 -
nl:nl 可以将输出的文件内容自动的加上行号!其默认的结果 (文件中的空白行,nl 不会加上行号 )与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
-
more:more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
-
less:less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
-
head: 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行 head -n 5 log2014.log
-
tail:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件.tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新 -n 指定最后几行。
-
od:
-
touch:touch [选项]… 文件… 用来修改文件时间戳,或者新建一个不存在的文件。
-a 或–time=atime或–time=access或–time=use 只更改存取时间。
-m 或–time=mtime或–time=modify 只更改变动时间。 -
chgrp:chgrp [选项] [组] [文件] chgrp命令可采用群组名称或群组识别码的方式改变文件或目录的所属群组。使用权限是超级用户。 chgrp -v bin log2012.log
-
chown: chown [选项]… [所有者][:[组]] 文件… 通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。 chown mail:mail log2012.log
CH03: -
ln: ln [参数][源文件或目录][目标文件或目录] 所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。 ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。(ppt练习题) -
fdisk: 用于创建和维护磁盘分区表 选择要操作的磁盘:fdisk /dev/sdb
-
mke2fs:被用于创建磁盘分区上的“etc2/etc3”文件系统 创建指定的ext2文件系统:mke2fs -q /dev/hda1
-
du: 是对文件和目录磁盘使用的空间的查看 du log2012.log
-
mount:用于加载文件系统到指定的加载点 第一个为文件系统对应的设备名,第二个是挂载点文件目录名 mount -t auto /dev/cdrom /mnt/cdrom
-
umount:利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
CH04: -
which:which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
-
whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis [-bmsu] [BMS 目录名 -f ] 文件名
备注:whereis和下面即将介绍的locate时,会从数据库中查找数据,(数据据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的)而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。 -
locate: Locate [选择参数] [样式]
-
find:
1、时间option:
2、用户或组option:
3、权限、文件名和其他属性option:
4、搜索完成后附加操作:-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的 ,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。 {} 花括号代表前面find查找出来的文件名
5. gzip: gzip[参数][文件或者目录] 文件经它压缩过后,其名称后面会多出".gz"的扩展名。
-d或–decompress或----uncompress 解开压缩文件。
-f或–force 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
6. tar:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName
7. type:用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令
alias:别名。
keyword:关键字,Shell保留字。
function:函数,Shell函数。
builtin:内建命令,Shell内建命令。
file:文件,磁盘文件,外部命令。
unfound:没有找到。
- alias:为一套操作取别名 alias 新的命令=‘原命令 -选项/参数’ 例如:alias l=‘ls -lsh’
- unalias :取消别名 例 unalias l
- echo:书上、ppt上,参数拓展,函数拓展、变量拓展、“”和’‘的区别。
- env:用于显示系统中已存在的环境变量
- set: 主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值。使用set更改shell特性时,符号"+“和”-"的作用分别是打开和关闭指定的模式。set命令不能够定义新的shell变量。如果要定义新的变量,可以使用declare命令以 变量=值的格式进行定义 set -a mylove #设置为环境变量
- export:设置或显示环境变量。(比如我们要用一个命令,但这个命令的执行文件不在当前目录,这样我们每次用的时候必须指定执行文件的目录,麻烦,在代码中先执行export,这个相当于告诉程序,执行某某东西时,需要的文件或什么东东在这些目录里)。在shell中执行程序时,shell会提供一组环境变量。 export可新增,修改或删除环境变量,供后续执行的程序使用。
- read:从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY read -p “text” variableName
- declare:用于声明和显示已存在的shell变量。当不提供变量名参数时显示所有shell变量。declare命令若不带任何参数选项,则会显示所有shell变量及其值。declare的功能与typeset命令的功能是相同的。
- typeset:同上
- test:是shell环境中测试条件表达式的实用工具
文件:
判断表达式:if test #表达式为真if test ! #表达式为假test 表达式1 –a 表达式2 #两个表达式都为真test 表达式1 –o 表达式2 #两个表达式有一个为真test 表达式1 ! 表达式2 #条件求反判断字符串:test –n 字符串 #字符串的长度非零test –z 字符串 #字符串的长度是否为零test 字符串1=字符串2 #字符串是否相等,若相等返回truetest 字符串1!=字符串2 #字符串是否不等,若不等反悔false判断整数:test 整数1 -eq 整数2 #整数相等test 整数1 -ge 整数2 #整数1大于等于整数2test 整数1 -gt 整数2 #整数1大于整数2test 整数1 -le 整数2 #整数1小于等于整数2test 整数1 -lt 整数2 #整数1小于整数2test 整数1 -ne 整数2 #整数1不等于整数2判断文件:test File1 –ef File2 两个文件是否为同一个文件,可用于硬连接。主要判断两个文件是否指向同一个inode。test File1 –nt File2 判断文件1是否比文件2新test File1 –ot File2 判断文件1比是否文件2旧test –b file #文件是否块设备文件test –c File #文件并且是字符设备文件test –d File #文件并且是目录test –e File #文件是否存在 (常用)test –f File #文件是否为正规文件 (常用)test –g File #文件是否是设置了组idtest –G File #文件属于的有效组IDtest –h File #文件是否是一个符号链接(同-L)test –k File #文件是否设置了Sticky bit位test –b File #文件存在并且是块设备文件test –L File #文件是否是一个符号链接(同-h)test –o File #文件的属于有效用户IDtest –p File #文件是一个命名管道test –r File #文件是否可读test –s File #文件是否是非空白文件test –t FD #文件描述符是在一个终端打开的test –u File #文件存在并且设置了它的set-user-id位test –w File #文件是否存在并可写test –x File #文件属否存在并可执行 - <>\2> 重定向:书上
-标准输入(stdin):代码为0,符号为<或<<;(有两个连在一起,意思是不覆盖,接着之前的
-标准输出(stdout):代码为1,符号为>或>>;
-标准错误(stderr):代码为2,符号为2>或2>>;
‣2>:以覆盖的方式将错误信息输出到指定文件或设备上
‣2>>:以追加的方式将错误信息输出到指定文件或设备上
/dev/null:将错误信息忽略,及输出到黑洞
cat (读取一个或多个文件(如果没有给参数,也就是没有文件名,cat从标准输入中读取内容也就是从键盘读取),并把他们复制到标准输出文件中)> demofile
cat > demofile < /.bashrc 这句话的意思就是:把./bashrc文件的内容重定向到标准输入,然后cat读取标准输入,结果重定向标准输出到demofile。
CH05:
- | 管道:这个符号可以将一个命令的标准输出管道为另外一个命令的标准输入
管道命令只能处理前一个命令的标准输出,而不能处理标准错误;
管道命令右边命令必须能够接收标准输入。 - cut:cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的。 cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
- grep:grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。(鸟哥的私房菜例子)
正则表达:【】
^ #锚定行的开始 如:’^grep’匹配所有以grep开头的行。
$ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
. #匹配一个非换行符的字符 如:'gr.p’匹配gr后接一个任意字符,然后是p。
- #匹配零个或多个先前字符 如:‘grep’匹配所有一个或多个空格后紧跟grep的行。
. #一起用代表任意字符。
[] #匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep。
[^] #匹配一个不在指定范围内的字符,如:’[^A-FH-Z]rep’匹配不包含A-F和T-Z的一个字母开头,紧跟rep的行。
[:alnum:] #文字数字字符
[:alpha:] #文字字符 …还有很多
-
sort:
-
wc:
-
uniq://可以多重管道 |
-
if语句:统一看ppt
-
case语句:
-
循环语句:
-
for语句:
-
funtion:
-
sh【-cinx】-n:进行shell脚本的语法检查。 -x:实现shell脚本逐条语句的跟踪。
CH06
-
groupadd: 创建一个新的工作组,新工作组的信息将被添加到系统文件中。
-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500; -
groups:输出指定用户所在组的组成员 groups linux 显示linux所在的组的组成员
-
newgroup:切换用户所在用户组命令 如果一个用户同时隶属于两个或两个以上分组,需要切换到其它用户组来执行一些操作,就用到了newgrp命令切换当前登陆所在组。
-
useradd:
-
passwd:
-
chage:用于密码时效管理。它可以修改账号和密码的有效期
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 -M 密码保持有效的最大天数。 -W 用户密码到期前,提前收到警告信息的天数。 -E 帐号到期的日期。过了这天,此帐号将不可用。 -d 上一次更改的日期 -I 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。 -
id: 显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。
-
finger:用于查找并显示用户信息。包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话
-
usermod: 修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。
例如:
usermod -l newuser1 newuser//将newuser改名为newuser1usermod -G staff newuser2//将newuser2加入staff组 -
userdel:用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
-f:强制删除用户,即使用户当前已登录; -r:删除用户的同时,删除与用户相关的所有文件。 -
groupmod: 更改群组识别码或名称。 groupmod(选项)(参数原组名 )
-g<群组识别码>:设置欲使用的群组识别码;-o:重复使用群组识别码;-n<新群组名称>:设置欲使用的群组名称。 -
groupdel: 删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
groupadd damon //创建damon工作组 groupdel damon //删除damon工作组 -
su:切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码
-c<指令>或–command=<指令>:执行完指定的指令后,即恢复原来的身份; -
sudo:以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
-
w:显示目前登入系统的用户信息。 w命令的显示项目按以下顺序排列:当前时间,系统启动到现在的时间,登录用户的数目,系统在最 近1秒、5秒和15秒的平均负载。然后是每个用户的各项数据,项目显示顺序如下:登录帐号、终端名称、远 程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。
-
who:显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。
-
last:显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
-
lastlog: 显示系统中所有用户最近一次登录信息 astlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog 的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示 never logged注意需要以root身份运行该命令。-u<用户名>:显示指定用户的最近登录信息
-
setfacl:(权限加强)命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名
-
getfacl: getfacl test #查看acl权限列表
-
quotacheck:通过扫描指定的文件系统,获取磁盘的使用情况,创建、检查和修复磁盘配额(quota)文件。执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设置用户和群组的磁盘空间限制。
例子:将所有的在/etc/mtab内,含有quota支持的partition进行扫描: quotacheck -avug -
quotaon:用于激活Linux内核中指定文件系统的磁盘配额功能。执行quotaon指令可开启用户和群组的才磅秒年空间限制,各分区的文件系统根目录必须有quota.user和quota.group配置文件。
quotaon(选项)(参数) -
quotaoff:关闭Linux内核中指定文件系统的磁盘配额功能。
-
edquota:用于编辑指定用户或工作组磁盘配额。edquota预设会使用vi来编辑使用者或群组的quota设置
CH07:
-
systemctl status atd
systemctl restart atd
systemctl enable ~ -
at:一次性定时计划任务 at[参数][时间] 输入后会进入at>命令行,
-
atq:显示系统中待执行的任务列表,也就是列出当前用户的at任务列表
-
atrm:用于删除待执行任务队列中的指定任务。
-
crontab: 周期性的执行某种任务或等待处理某些事件的一个守护进程 任务调度分为两类,系统任务调度和用户任务调度
系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
/etc/cron.deny 该文件中所列用户不允许使用crontab命令
/etc/cron.allow 该文件中所列用户允许使用crontab命令
/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名 -
batch:用于在指定时间,当系统不繁忙时执行任务,用法与at相似
-
anacron: anacron 用于以天为单位的频率运行命令。它的工作与 cron 稍有不同,它假设机器不会一直开机
cron: anacron:
它是守护进程它不是守护进程适合服务器适合桌面/笔记本电脑可以让你以分钟级运行计划任务只能让你以天为基础来运行计划任务关机时不会执行计划任务如果计划任务到期,机器是关机的,那么它会在机器下次开机后执行计划任务普通用户和 root 用户都可以使用只有 root 用户可以使用(使用特定的配置启动普通任务) -
ps:见ch01
-
top:top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序
-
kill:发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
kill –9 3268 //-9 意思是彻底杀死进程。 -
uname:用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
uname -a//查看全部信息 -
uptime:打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
-
netstat:显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
-
dmesg:用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件中
-
vmstat:用来显示虚拟内存的信息
Procs(进程):r: 运行队列中进程数量b: 等待IO的进程数量
Memory(内存):
swpd: 使用虚拟内存大小
free: 可用内存大小
buff: 用作缓冲的内存大小
cache: 用作缓存的内存大小
Swap:si: 每秒从交换区写到内存的大小 so: 每秒写入交换区的内存大小
IO:(现在的Linux版本块的大小为1024bytes)bi: 每秒读取的块数 bo: 每秒写入的块数
系统:in: 每秒中断数,包括时钟中断。 cs: 每秒上下文切换数。
CPU(以百分比表示):
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。
wa: 等待IO时间 -
fuser:用于报告进程使用的文件和网络套接字。fuser命令列出了本地进程的进程号,那些本地进程使用file,参数指定的本地或远程文件。对于阻塞特别设备,此命令列出了使用该设备上任何文件的进程。
例子:fuser /etc/passwd #列出使用/etc/passwd 文件的本地进程的进程号
-u:在每个进程后显示所属的用户名。-k:杀死访问指定文件的所有进程; -
lsof:用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
-
+&:后台启动,可以在启动参数的时候加一个’&'实现这个目的。 (一个命令的最后)
-
fg:fg:将后台中的命令调至前台继续运行,如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
-
bg: 将一个在后台暂停的命令,变成继续执行,如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
-
jobs:jobs -l //显示后台作业,-l表示显示进程号
-
<ctrl + Z>:可以将一个正在前台执行的命令放到后台,并且暂停
-
<ctrl + C>:发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行
CH08:
记录系统在什么时候由哪个程序做了什么样的行为时,发生了何种的事件:
- rsyslogd(rsyslog.service): 主要登录系统与网络等服务的讯息 Rsyslog 的主要配置文件为 /etc/rsyslog.conf 文件,在配置文件中,我们通过配置 filter 以及 action 对日志进行管理。
例子:> mail.info /var/log/maillog #将mail的相关数据写入/var/log/maillog - logrotate:用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf
- systemd-journald.service 最主要的讯息收受者,由 systemd 提供的systemd-journald 用来管理与查询这次开机后的登录信息(信息保存在内存中)观察日志: journalctl
- make -k -n -f
简化编译时所需要下达的指令;
若在编译完成之后,修改了某个源代码文件,则 make 仅会针对被修改了的文件进行编译,其他的 object file 不会被更动;
最后可以依照相依性来更新 (update) 可执行文件。
标的(target): 目标文件1 目标文件2<tab> gcc -o 欲创建的可执行文件 目标文件1 目标文件2
CH09:
- dmesg:
- lspci:显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息
- lsmod:显示已经加载到内核中的模块的状态信息。执行lsmod命令后会列出所有已载入系统的模块
- modinfo:列出Linux内核中命令行指定的模块的信息。
- ifconfig:用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
- ifup/ifdown: 激活/禁用指定的网络接口 ifup eth0 #激活eth0
- route:用于操作基于内核ip路由表,它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0。当使用"add"或者"del"参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。
- ip:显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。 ip link list//显示网络设备的运行状态。ip route list //显示核心路由表
- ping:通常用来测试与目标主机的连通性 按ctrl+c终止或者用参数-c指定要求完成的回应次数
- traceroute:traceroute指令让你追踪网络数据包的路由途径 tranceroute www.baidu.com 最大跳数:-m
- dig:常用的域名查询工具,可以用来测试域名系统工作是否正常
- host:分析域名查询工具,可以用来测试域名系统工作是否正常 -a:显示详细信息。
- tcpdump:它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。 tcpdump #将监视第一个网络接口上所有流过的数据包
tcpdump host 210.27.48.1 #截获210.27.48.1 的主机收到的和发出的所有的数据包