1. linux目录结构
目录名 | 目录作用 |
/bin | 存放系统命令,普通用户和超级用户(root)都可以执行,在单用户模式下也可以执行 |
/sbin | 存放系统环境设置相关的命令,只有超级用户(root)可以使用这些命令 |
/usr/bin | 存放系统命令,普通用户和超级用户(root)。这些命令和系统启动无关,在单用户模式下不能执行 |
/usr/sbin | 存放系统命令,只有超级用户(root)才可以使用这些命令 |
/boot | 系统启动目录,保存系统启动相关的文件 |
/dev | 设备文件保存位置 |
/etc | 配置文件保存位置 |
/home | 普通用户的家目录。建立一个用户时,每个用户的默认登录位置就是用户的家目录,每个普通用户就是在/home下建立一个和用户名相同的目录。 |
/lib | 系统调用的函数库保存位置 |
/opt | 第三方安装的软件保存位值 |
/root | 超级用户root的家目录 |
/tmp | 临时文件的存放目录 |
/var | 动态数据保存的位置,例如日志 |
|
|
|
|
|
|
2. 目录处理命令
查看目录
命令:ls 选项[-ald] [目录或文件]
命令所在路径:/bin/ls
选项:-a 显示所有文件,包括隐藏文件
-l 详细信息
-d 查看目录属性,不显示文件下文件信息
注意:linux下所有以“.”开头的文件表示隐藏文件
drw-rw-r- -
-表示二进制文件 d表示目录
u所有者 g所属组o其他人
r读 w写x执行
切换目录
命令:cd
命令所在路径:shell内置命令
cd .. 到上一级
cd 到家目录
创建文件
命令:touch
命令所在路径:/bin/touch
创建目录
命令:mkdir
命令所在路径:/bin/mkdir
选项:-p 递归创建目录
删除目录
命令:rmdir
命令所在路径:/bin/rmdir
删除空目录
复制文件
命令:cp 选项 [源文件或目录] [目标目录]
命令所在路径:/bin/cp
选项 –r 复制目录
移动文件
命令:mv [源文件或目录] [目标目录]
命令所在路径:/bin/mv
移动文件,改名
删除文件
命令:rm
命令所在目录:/bin/rm
选项:-r 删除目录
-f 强制执行
链接
命令:ln [原文件] [目标文件]
命令所在路径:/bin/ln
-s 创建软链接
3. 压缩/解压
tar
tar [选项]
选项:
-c:建立一个压缩文件的(create)
-x:解开一个压缩文件的
-t:查看tarfile里面的文件
注意:c/x/t仅能存在一个
-z:具有gzip属性
-j:具有bzip2属性
-v:压缩的过程中显示详情
-f:使用档名
tar –cvf ./testdir.tar ./testdir #打包,不压缩
tar –czvf ./testdir.tar.gz ./testdir #打包,并以gizp压缩
tar –jzvf ./testdir.tar.bz2 ./testdir #打包,以bzip2压缩
tar -czvf ./testdir.tar.gz dir1/file1 #解压testdir.tar.gz里面的dir/file1文件
tar -tzvf ./testdir.tar.gz #不解压,查看testdir.tar.gz内的文件
tar -xzvf testdir.tar.gz -C /home/jmcfeng #将testdir.tar.gz解压到/home/jmcfeng中
tar –czvf testdir.tar.gz –C /home/jmcfeng testdir
#将tar的工作目录改为/home/jmcfeng,将testdir(不带绝对路径)压缩到testdir.tar.gz中
4. 文本编辑
vi
/bin/touch
默认新建的文件不具有x权限
插入命令
插入命令 | |
a | 在光标所在字符后插入 |
A | 在光标所在行尾插入 |
i | 在光标所在字符前插入 |
I | 在光标所在行行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
定位命令
定位命令 | |
:set nu :set number | 设置行号 |
:set nonu :set nonumber | 取消行号 |
gg | 到第一行 |
G | 到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
$ | 移至行尾 |
0 | 移至行首 |
删除命令
删除命令 | |
x | 删除光标所在处字符 |
nx | 删除光标所在处后n个字符(包括当前位置) |
dd | 删除光标所在行 |
ndd | 删除光标所在行后n行(包括当前行) |
dG | 删除光标所在行到文件末尾内容(包括当前行) |
D | 删除光标所在处到行尾内容 |
:n1,n2d | 删除n1行到n2行之间的内容(包括n1,n2行) |
复制和剪切命令
复制和剪切命令 | |
yy | 复制当前行 |
nyy | 复制当前行以下n行(包括当前行) |
dd | 剪切当前行 |
ndd | 剪切当前行以下n行(包括当前行) |
p | 粘贴在当前光标所在行下 |
P | 粘贴在当前光标所在行上 |
替换和取消命令
替换和取消命令 | |
r | 取代光标所在字符 |
R | 从光标所在处开始替换字符,按Esc结束 |
u | 取消上一步操作 |
搜索和搜索替换命令 | |
:set ic | 搜索时忽略大小写 |
/string | 从当前位置向下搜索指定的字符串string |
n | 搜索指定字符串的下一个出现位置 |
:%s/old/new/g | 全文替换字符串old为字符串new。如果有特殊字符需要用转义字符\ |
:n1,n2s/old/new/g | 在一定范围内替换指定字符串 |
保存和退出命令
保存和退出命令 | |
:w | 保存修改 |
:w new_filename | 另存为指定文件 |
:wq | 保存修改并退出 |
ZZ | 快捷键,保存修改并退出 |
:q! | 不保存修改退出 |
:wq! | 保存修改并退出(文件所有者及root可使用) |
其他命令
其他命令 | |
:r 文件 | 将文件的内容导入当前光标所在行后 |
:!系统命令 | 不退出vi编辑器执行系统命令 |
:r !系统命令 | 将系统命令的执行结果插入到当前光标所在行后 |
:map Ctrl+v+p 命令 | 定义命令的快捷键 |
5. 文件/目录权限
rwx权限
|
| 文件 | 文件夹 |
r | 读 | 可以查看文件内容 | 可以列出目录中的内容 |
w | 写 | 可以修改文件内容 | 可以在目录下创建、删除文件 |
x | 执行 | 可以执行文件 | 可以进入目录 |
注意:父目录的权限和子目录的权限是独立的,不会相互影响。
chmod
chmod [{ugoa}{+-=}{rwx}] [文件或目录]
chmod [777] [文件或目录]
参数:-R递归修改
chown
改变文件的所有者所属组
位置:/bin/chown
用法:chown [所有者[:所属组]] [文件或目录]
范围:1). root用户
2). 普通用户通过sudo
参数:-R 递归修改
对目录使用该命令,仅改变该目录的所有者,不会改变其子目录及目录下文件的所有者
umask
参数:-S 以rwx形式显示新建文件缺省权限
777去掉umask中值,则为文件缺省权限,若为文件则需要去掉所有x权限
sudo权限
1). root把本来只能超级用户执行的命令赋予普通用户
2). sudo的操作对象是系统命令
visudo
#实际修改的是 /etc/sudoers文件
root ALL=(ALL) ALL
#用户名 被管理主机的地址=(sudo后使用的身份) 授权命令绝路径
#%wheel ALL=(ALL) ALL
#%组名 被管理主机的地址=(sudo后使用的身份) 授权命令绝路径
sudo
sudo -l #查看可用的sudo命令
6. 磁盘管理
磁盘基本概念
主分区:总共最多只能分四个
扩展分区:只能有一个,也算作主分区的一种,主分区加扩展分区最多有四个。但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用。
逻辑分区:逻辑分区是在扩展分区中划分的,逻辑分区的起始号为5。IDE硬盘,Linux最多支持59个逻辑分区;SCSI硬盘Linux最多支持11个逻辑分区
linux文件系统
ext2:是ext文件系统的升级版本。最大支持16TB的分区和最大2Tb的文件。
ext3:是ext2文件系统的升级版本。最大区别就是带日志功能,以在系统突然停止时提高文件系统的可靠性。最大支持16TB的分区和最大2TB的文件。
ext4:是ext3文件系统的升级版。ext4在性能、伸缩性和可靠方面进行了大量改进。最大16TB文件
磁盘分区
blkid #查看分区UUID
dumpe2fs /dev/sdb1 #查看分区的基本信息
每个分区都有 lost+found文件夹
1). fdisk -l
#查看新设备
2). fdisk /dev/sdb
进入开始分区
a). n新建分区
b). 选择分区类型, p—主分区,e—扩展分区,l—逻辑分区
c). 输入分区号(建议按照顺序来,不要乱输入)
d). 输入分区起始位置
e). 输入分区结束位置
f). p查看分区列表,是否正确分区
3). mkfs -T ext4 /dev/sdb1 (扩展分区不能格式化)
4). 写/etc/fstab文件(一定不能写错,不然系统启动错误)
5). mount –a
#依据配置文件/etc/fstab的内容,自动挂载
/etc/fstab文件
字段1:分区设备文件名或UUID(分区通用唯一标识码)
字段2:挂载点
字段3:文件系统类型
字段4:挂载参数
字段5:指定分区是否被dump备份。0—不备份,1—每天备份,2—不定期备份
字段6:分区是否被fsck检测。0—不检测,其他数字代表检测的优先级,1优先级比2高
fdisk交互指令说明 | |
指令 | 说明 |
a | 设置可引导标记 |
b | 编辑bsd磁盘标签 |
c | 设置DOS操作系统兼容标记 |
d | 删除一个分区 |
l | 显示已知的文件系统类型。82为Linux swap分区,83为Linux分区 |
m | 显示帮助菜单 |
n | 新建分区 |
o | 新建空白DOS分区表 |
p | 显示分区列表 |
q | 不保存退出 |
s | 新建空白SUN磁盘标签 |
t | 改变一个分区的系统ID |
u | 改变显示记录单位 |
v | 验证分区表 |
w | 保存退出 |
x | 附加功能(仅专家) |
mount
mount [-t vfstype] [-o options] device dir
-o options
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
device 要挂接的设备
dir 设备在系统上的挂接点
7. 网络命令
netstat
netstat [选项]
选项:
-t:列出TCP协议端口
-u:列出UDP协议端口
-n:不使用域名与服务名,而使用IP地址和端口号
-l:仅列出在监听状态的网络服务
-a:列出所有的网络连接
netstat -rn #查看网关与 route-n一样
netstat –apn #查看端口占用
nslookup
nslookup 域名 #域名解析
命令安装:yum -y install bind-utils
traceroute
traceroute [选项] ip或域名
#路由跟踪命令
选项:
-n 使用IP,不使用域名,速度更快
提示:该命令使用ping,如果某个结点禁止ping,则该命令无法查看该结点
命令安装:yum -y install traceroute
wget
wget http://www.jmcfeng.com/file1.tar.gz #下载命令
tcpdump
tcpdump -i eth0 -nnX port 21
#监视21端口,截取数据包
8. 用户及用户组
用户信息文件
/etc/passwd
用户信息文件
root:x:0:0:root:/root:/bin/bash
字段1 | 用户名称 |
字段2 | 密码标识,如果不设置x,将不会去/etc/shadow中找密码 |
字段3 | UID 0:超级用户 1-499:系统用户(伪用户) 500-65535:普通用户 |
字段4 | GID(用户初始组) |
字段5 | 用户说明 |
字段6 | 家目录 普通用户:/home/用户名 超级用户:/root |
字段7 | 登录之后使用的shell a). 标准shell为/bin/bash b). 伪用户禁止shell为/sbin/nologin |
/etc/shadow
影子文件,权限为000
root:加密后的密码:17088:0:99999:7:::
字段1 | 用户名 |
字段2 | 加密后的密码 a). 加密算法升级为SHA512散列加密算法 b). 如果密码位是”!!”或”*”代表没有密码,不能登录 |
字段3 | 密码最后一次修改时间 值为距离1970年1月1日的天数 |
字段4 | 两次密码的修改间隔时间,在修改间隔时间之内不允许再次修改密码 |
字段5 | 密码有效期 |
字段6 | 密码修改到期前的警告天数 |
字段7 | 密码过期后的宽限天数 0(或不写):代表密码过期后立即失效 -1:代表密码永远不会失效 |
字段8 | 账号失效时间 为距离1970年1月1日的天数 |
字段9 | 保留 |
用户管理命令
useradd
useradd [选项]用户名
选项:
-u UID:手工指定用户的UID号
-d 家目录:手工指定用户的家目录
-c 用户说明:手工指定用户的说明
-g 组名:手工指定用户的初始组
-G 组名:指定用户的附加组
-s shell:手工指定用户的登录shell
用户添加默认值文件
/etc/default/useradd | |
GROUP=100 | 用户默认组 |
HOME=/home | 用户家目录 |
INACTIVE=-1 | 密码过期宽限天数 |
EXPIRE= | 密码失效时间 |
SHELL=/bin/bash | 默认shell |
SKEL=/etc/skel | 模板目录 |
CREATE_MAIL_SPOOL=yes | 是否建立邮箱 |
/etc/login.defs | |
PASS_MAX_DAYS 99999 | 密码有效期(5) |
PASS_MIN_DAYS 0 | 密码修改间隔(4) |
PASS_MIN_LEN 5 | 密码最小5位(PAM) |
PASS_WAR_AGE 7 | 密码到期警告(6) |
UID_MIN 500 | 最小UID |
UGID_MAX 60000 | 最大UID |
ENCRYPT_METHOD SHA512 | 加密模式 |
userdel
userdel 用户名 #删除用户,但不删除其家目录
userdel –r 用户名 #删除用户,并删除家目录
passwd
passwd [选项]用户名
选项:
-S 查询用户密码的密码状态。仅root用户可用
-l 暂时锁定用户,仅root用户可用
#实际是在/etc/shadow用户对应的密码前加了”!!”
-u 解锁用户。仅root用户可用
--stdin 可以通过管道符输出的数据作为用户的密码
#例:echo “123” | passwd --stdin root
usermod
修改用户信息
usermod [选项]用户名
-u UID:修改用户的UID号
-c 用户说明:修改用户的说明信息
-G 组名:修改用户的附加组
-L:临时锁定用户
#实际在/etc/shadow用户密码字段前加上了”!”
-U:解锁用户锁定
chage
chage -d 0 用户名
#把用户的密码修改日期归为0了,这样用户一登录就需要修改密码
userdel
userdel [-r] 用户名
选项:
-r 删除用户的同时删除用户家目录
id
id 用户名
su
su [选项] 用户名
-:选项只使用 ”-” 代表连用户的环境变量一起切换
-c 命令:仅执行一次命令,而不切换用户身份
例如:su - root -c “useradd jmcfeng”
#不切换成root,执行useradd命令添加用户jmcfeng
用户组信息文件
1). 初始组:指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,初始组的组名一般和该用户的用户名相同
2). 附加组:指用户可以加入多个其他用户组,并拥有这些组的权限,附加组可以有多个
/etc/group
组信息文件
root:x:0:
字段1 | 组名 |
字段2 | 组密码标志 |
字段3 | GID |
字段4 | 组中附加用户 |
/etc/gshadow
组密码文件
root:::
字段1 | 组名 |
字段2 | 组密码 |
字段3 | 组管理员用户名 |
字段4 | 组中附加用户 |
用户组管理命令
groupadd
groupadd [选项]组名
选项:
-g GID:指定组ID
groupmod
groupmod [选项]组名
选项:
-g GID:修改组ID
-n 新组名:修改组名
groupdel
groupdel 组名 #删除组
gpasswd
gpasswd [选项]组名
选项:
-a 用户名:把用户加入组
-d 用户名:把用户从组中删除
家目录
1). 普通用户:/home/用户名,所有者为该用户,所属组为该用户初始组,目录权限700
2). 超级用户:/root,所有者为root,所属组为root组,目录权限550
用户邮箱
/var/spool/mail/用户名
用户模板目录
/etc/skel
9. RPM包管理
软件包分类
1). 源码包
2). 二进制包(RPM包、系统默认包)
rpm命令
rmp包命名规则
http-2.2.15-15.el6.centso.i686.rpm
http 软件包名
2.2.15 软件版本
15 软件发布的次数
el6.centos 适合的Linux平台,el*表示发行版,
devel表示是软件的开发包,noarch可以在任何平台安装
i686 适合的硬件平台
rpm rpm包的扩展名
rmp包依赖性
1).树形依赖:a-->b-->c
2).环形依赖:a-->b-->c-->a将abc用同一条命令安装
3).模块依赖:模块1依赖查询网站www.rpmfind.net
以”so.数字” 结尾的为库文件依赖,到网站查询安装相应的RPM包
rpm包名与包全名
包全名:操作的包是没有安装的软件包(或升级)时,使用包全名。而且要注意路径
包名:操作已安装的软件包时,使用包名。是搜索/var/lib/rpm中的数据库
rpm安装
rpm –ivh 包全名
选项
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
--nodeps 不检测依赖性(不建议使用)
rpm包升级
rpm -Uvh 包全名
选项:
-U(upgrade) 升级
rpm卸载
rpm -e 包名
选项:
-e(erase) 卸载
--nodeps 不检查依赖性
rpm查询
rpm -q 包名 #查询包是否安装
rpm -qa #查询已安装的所有rpm包
rpm -qi 包名 #查询rmp包详细信息
rpm -qip 包全名 #查询未安装的rpm包的信息
rpm -ql 包名 #查询包中文件安装位置
rpm -qf 系统文件名 #查询系统文件属于哪个rpm包
rpm -qR 包名 #查询软件包的依赖性
rpm -qRp 包全名 #查询未安装包的依赖性
选项:
-q 查询(query)
-a 所有(all)
-i 查询软件信息(information)
-p 查询未安装包信息(package)
-l 列表(list)
-f 查询系统文件属于哪个软件包(file)
-R 查询软件包的依赖性(requires)
rpm包校验
rpm -V 包名 #校验已安装的rpm中的文件是否被修改删除
选项:
-V 校验指定RPM包中的文件(verify)
S.5....T. c /etc/my.cnf
文件校验 文件类型 文件位置
文件校验8位 | |
S | 文件大小是否改变 |
M | 文件的类型或文件的权限(rwx)是否被改变 |
5 | 文件MD5校验和是否改变(可以看成文件内容是否改变) |
D | 设备 |
L | 文件路径是否改变 |
U | 文件的属主(所有者)是否改变 |
G | 文件的属组是否改变 |
T | 文件的修改时间是否改变 |
文件类型 | |
c | 配置文件(config file) |
d | 普通文档(documentation) |
g | “鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包包含 |
l | 授权文件(license file) |
r | 描述文件(read me) |
rpm包中文件提取
rpm2cpio 包全名 | cpio -idv要提取的文件的位置 #一般用来恢复误删除的rpm安装的包
举例:
rpm –qf /bin/ls #查询ls命令属于哪个软件包
mv /bin/ls /tmp #造成ls命令误删除的假象
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio –idv ./bin/ls
#提取RPM包中ls命令到当前目录的/bin/ls下
cp ./bin/ls /bin #把ls命令复制到/bin目录,修复文件丢失
yum在线安装
yum源文件
/etc/yum.repos.d/CentOS-Base.repo
[base] | 容器名称,一定要放在[]中 |
name | 容器说明 |
mirrorlist | 镜像站点 |
baseurl | yum源服务器的地址,默认是CentOS官方的yum源服务器,是可以使用的。如果觉得慢可以换成自己觉得比较快的yum源地址 |
enabled | 此容器是否生效,如果不写或写成enable=1都是生效的,enable=0不生效 |
gpgcheck | 1表示RPM的数字证书生效,0则表示不生效 |
gpgkey | 数字证书的公钥文件保存位置 |
查询
yum list #查询所有可用软件包列表
yum search 关键字 #搜索服务器上所有和关键字相关的包
安装
yum –y install 包名
选项:
install 安装
-y 自动回答yes
升级
yum –y update 包名
选项:
update 升级
-y 自动回答yes
注意:yum –y update 不加包名,会更新所有包,内核也会更新,会导致系统无法启动
卸载
yum –y remove 包名
选项:
remove 卸载
-y 自动回答yes
注意:yum卸载时会卸载依赖的rpm包,可能会导致系统出问题。尽量不要yum卸载。
yum软件组管理
yum grouplist #列出所有可用的软件组列表
yum groupinstall 软件组名
#安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名 #卸载指定软件组
光盘yum源搭建
1). 挂载光盘
mount /dev/cdrom /mnt/cdrom
2). 让网络yum源文件失效
重命名其他yum源文件,让其失效
a). cd /etc/yum.repos.d
b). mv CentOS-Base.repo CentOS-Base.repo.bak
c). mv CentOS-Debuginfo.repo CentOS-Baseinfo.repo.bak
d). mv CentOS-Vault.repo CentOS-Vault.repo.bak
e). 修改光盘yum源文件
vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为光盘挂载地址
# file:///media/CentOS/
# file:///media/cdrom/
# file:///media/cdrecorder/
gpgcheck=1
enabled=1
#将enabled=0改为enabled=1,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
rpm包安装位置
默认安装位置
RPM包默认安装路径 | |
/etc | 配置文件安装目录 |
/usr/bin | 可执行的命令安装目录 |
/usr/lib | 程序所使用的函数库保存位置 |
/usr/share/doc | 基本的软件使用手册保存位置 |
/usr/share/man | 帮助文件保存位置 |
源码包安装
安装注意事项
1). 源代码保存位置:/usr/local/src
2). 软件安装位置:/usr/local
3). 如何确定安装过程报错
a). 安装过程停止并出现error、warning或no提示
安装过程
1). 下载源码并解压
2). 进入解压缩目,其中INSTALL文件为安装说明
3). ./configure 软件配置与检查 --help查看帮助
a). 定义需要的功能选项
b). 检测系统环境是否符合安装要求
c). 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编译
4). make #编译
5). make install #编译安装
如果上述步骤中出现错误make clean清除生成的临时文件
卸载
rm –rf /usr/local/软件包名 #直接删除安装的目录
rpm包、源码安装启动
启动方式
1). RPM包安装的服务可以使用系统服务管理命令(service)来管理
例如:RPM方式安装的apache的启动方法
a). /etc/rc.d/init.d/httpd start
b). service http start
2). 源码包安装的服务则不能被服务管理命令(service)管理,因为没有安装服务到默认路径中。只能用绝对路径进行服务的管理。
例如:/usr/local/apache2/bin/apachectl start
10. 进程管理
ps
ps aux
#查看系统中所有进程,使用BSD操作系统格式
ps -le
#查看系统中所有进程,使用Linux标准命令格式
USER:该进程是由那个用户产生的
PID:进程的ID号
%CPU:该进程占用的CPU资源百分比
%MEM:该进程占用物理内存百分比
VSZ:该进程占用虚拟内存的大小,单位KB
RSS:该进程占用的物理内存的大小,单位KB
TTY:该进程是在哪个终端中运行的
其中tty1-tty7代表本地控制台终端
tty1-tty6是本地的字符界面终端
tty7是图形界面终端
pts/0-255代表虚拟终端
STAT:进程状态。
R 运行
D 不可中断
S 睡眠
T 停止状态
Z 僵死
s 包含子进程
+ 位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时长
COMMAND:产生此进程的命令名
top
top 选项
选项:
-d秒数: 指定top指令每隔几秒更新。默认3s。
top命令的交互模式当中可以使用的命令:
?或h 显示交互模式的帮助
P 以CPU使用率排序,默认此项
M 已内存的使用率排序
N 以PID排序
q 退出top
内容 | 说明 |
第一行 | |
06:40:56 | 系统当前时间 |
up 3:35 | 系统已运行时长 |
1 user | 当前已登录用户个数 |
load average:0.00,0.00,0.00 | 系统在1分钟,5分钟,15分钟之前的平均负载。一般认为小于cpu核数时,负载较小。如果大于cpu核数,说明系统已经超出负荷。 |
第二行 | |
Tasks:73 total | 当前系统中进程个数 |
1 running | 正在运行的进程数 |
72 sleeping | 睡眠状态的进程数 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |
第三行 | |
Cpu(s):0.0%us | 用户模式占用的CPU百分比 |
0.3%sy | 系统模式占用的CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
99.3%id | 空闲CPU的CPU百分比 |
0.0%wa | 等待输入输出进程的占用CPU百分比 |
0.0%hi | 硬中断请求服务占用的CPU百分比 |
0.3%si | 软中断请求服务占用的CPU百分比 |
0.0%st | 虚拟时间百分比,就是当有虚拟机时,虚拟CPU占用实际CPU的时间百分比 |
第四行 | |
Mem:1004412k total | 物理内存的总量,单位KB |
694108k used | 已使用的物理内存数量 |
310304k free | 空闲的物理内存数量, |
12244k buffers | 作为缓冲的内存数量 |
第五行 | |
Swap:983032k total | 交换分区(虚拟内存)的总大小 |
0k used | 已使用的交互分区的大小 |
983032k free | 空闲的交换分区大小 |
130124k cached | 作为缓存的交互分区的大小 |
11. 服务
查询已安装服务
1). chkconfig - -list #查看服务自启动状态,可以看到所有RPM包安装的服务
2). 查看服务安装位置,源码包安装的服务一般在/usr/local下
12. 环境变量
1). 用户自定义变量只在当前shell中生效
2). 环境变量会在当前shell和其所有子shell当中生效
export 变量名=变量值#声明变量
env #查询变量
unset #删除变量
环境变量配置文件
1). 所有用户共有
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
2). 单个用户私有
~/.bash_profile
~/.bashrc
13. linux运行级别
运行级别就是操作系统当前正在运行的功能级别
7个运行级别
0 | 系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭 |
1 | 单用户工作状态,root权限,用于系统维护,禁止远程登录 |
2 | 多用户状态,没有NFS支持 |
3 | 完整的多用户模式,有NFS,登录后进入控制台命令模式 |
4 | 系统未使用,保留一般不用 |
5 | 图形GUI模式,X Window系统 |
6 | 系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启 |
运行级别原理
1). 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
2). 在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
3). rcN.d目录下都是一些符号链接文件,这些链接文件都指向intit.d目录下的service脚本文件,命名规则为K+nn服务名或S+nn+服务名,其中nn为两位数字
4). 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件。对于以K开头的文件,系统将终止对应的服务;对于以S开头的文件,系统将启动对应的服务。
5). 查看运行级别用:runlevel
6). 进入其它运行级别用:init N
如:init 0 关机
init 3 进入终端模式
init 5 进入图形GUI模式
init 6 重启
14. 命令帮助
man
man [数字] [命令或配置文件]
优先显示命令
1 用户在shell环境中可以操作的命令或可执行文件
2 系统内核可调用的函数与工具
3 一些常用的函数与函数库
4 设备文件的说明,通常是在/dev下的文件
5 配置文件或是某些文件的格式
6 游戏
7 惯例与协议等,例如Linux文件系统、网络系统、ASCII code等说明
8 系统管理员可用的管理命令
9 跟kernel有关的文件
whatis
whatis 命令名称
apropos
apropos 配置文件名(不加绝对路径)
makewhatis
help
help 内置命令
info
type
type 命令名 #查看该命令是shell内置命令还是外部命令
locate
locate命令其实是在查询/var/lib/mlocate/mlocate.db文件
updatedb更新/var/lib/mlocate/mlocate.db