1.了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp
在学习linux的时候,一般以root权限进入时,当返回到根目录时,有好多的文件夹,这些文件夹都代表着什么呢。
在此之前,需要了解的是,在Linux下一切皆文件,即所有的存储都是以文件的形式表现出来的。
•主目录:/root、/home/username
•用户可执行文件:/bin、/usr/bin、/usr/local/bin
•系统可执行文件:/sbin、/usr/sbin、/usr/local/sbin
•其他挂载点:/media、/mnt
•配置:/etc
•临时文件:/tmp
•内核和Bootloader:/boot
•服务器数据:/var、/srv
•系统信息:/proc、/sys
•共享库:/lib、/usr/lib、/usr/local/lib
1./proc
目录存放了进程和系统的消息,可以在这个目录下获取系统的信息,这些信息是在内存中,由系统自己产生的。这个目录是一个虚拟的目录,也就是说,这个目录的内容不在硬盘上而是在内存里。
2./sys
/sys目录是可写的,可以通过它来访问或修改内核的参数。它在proc的目录下,是一个设备管理的文件它整理了设备驱动相关文件,比起proc目录,sys更加清晰有条理的整理了linux的所有接口信息,文件系统访问linux内核。
3.SElinux
SElinux的英文全称是security-enhanced-linux翻译过来就是“安全增强型的linux”,它是一个linux内核模块,也是linux的一个安全子系统,SElinux主要由美国国家安全局开发,它提供了一种灵活的强制控制访问系统,粗略的说它类似于windows系统下的防火墙,在保护你的系统。
4./bin
bin英文为binary(二进制),它存放一些可执行二进制文件下的目录(存放linux的一些基本命令),例如ls,tar,cat,cp.
5./usr/lib
usr的并不是user的意思,而是**unix system resource**。/usr/lib中含有更多用于用户程序的库文件。/lib目录下放置的是/bin和/sbin目录下程序所需的库文件,其作用类似于windows里的.ddl文件。几乎所有的应用程序都需要用到这些共享库。
6./usr/local
/usr/local:用户级的程序目录,可以理解为c:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
提供给普通用户的/usr目录,/usr/local这里适合安装软件,存放软件升级包。
7./vaz
用来存放易变的数据,这些数据在系统运行过程中会不断变化。顺带说一下系统的日志文件就在/var/log目录中。
8./tmp
./tmp文件夹是linux运行时产生的缓存文件,用于加速二次打开文件的速度。在linux关机是会被系统预设指令删除的或系统会定时清理里面的文件。
2.了解以下重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password
1.du命令:du [选项] 文件
(1)功能该命令是显示指定文件以及下的所有文件占用系统数据块的情况,如果没有文件,默认为是当前工作目录
-a 显示所有文件对系统数据块的使用情况
-b 显示数据块大小时以字节为基本单位
-c 除了显示文件对系统数据块的使用情况外还显示出文件的总和
-s 只显示文件数据块总大小,不显示文件名
-x 只显示当前目录,但不统计子目录
2.df命令:du [选项] 文件名
(1)功能该命令与du命令相似,只不过是df计算的是当前文件所以数据块的使用情况(包括前不久删除的文件),而du只是计算当前存在的所有文件的数据快的使用情况
-a 递归显示各文件及其子目录的数据块利用
-h 方便阅读时显示
-H 和-h一样,只不过1k = 1000;而不是1024
-i 显示inode信息
-k 区块为1024字节
-T 文件系统类型
3.top命令:
(1)功能:相当于windows下的资源管理器,可以查看当前CPU的使用情况,各进程的状况
(2)选项
-b 批处理
-I 忽略过失
-c 显示完整的治命令
上图分析:
第一行是任务队列信息。
04:56:42 当前时间 up 2 days, 1:10 系统运行时间,格式为时:分 3 users 当前登录用户数
load average : 为系统负载,即任务队列的平均长度。
第二三行为进程和CPU的信息。
Tasks: 135 total, 1 running, 134 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.7%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Tasks : 135 total 进程总数 1 running 正在运行进程数 134 sleeping 睡眠进程数 0 stopped 停止进程数 0 zombie 僵尸进程数
Cpu(s) : 0.0% us 用户空间占用CPU百分比 0.7% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 99.3% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比 0.0% hi
0.0% si 0.0%st
第二三行为内存信息。
Mem 进程使用的物理内存
Swaps 进程使用的虚拟内存中,被换出的大小,单位kb。
白色背景行
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
序号列名含义
PID 进程id PPID 父进程id UID 进程所有者的用户id
USER 进程所有者的用户名 GROUP 进程所有者的组名
PR 优先级 NI nice 值。值越大表示优先级越低
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒 TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。
D= 不可中断的睡眠状态 R= 运行 S= 睡眠 T= 跟踪/停止 Z= 僵尸进程
COMMAND 命令名/命令行
4.free命令
(1)功能:显示所有内存利用率。包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统使用的缓冲区等。
(2)选项
-b 以bype为单位显示
-k 以KB为单位显示
-m 以MB为单位显示
-o 不显示缓冲区
-t 显示内存总和列
5.pstack命令
(1)功能:进程跟踪
pstack命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。
6.su命令
(1)功能:切换用户(由root用户向普通用户切换时不需要密码,由普通用户向root用户切换时需要密码)
su: su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
语法 su [选项] [参数]
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更 PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。
7.sudo(sudo -, sudo -s):
sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
语法 sudo [选项] [参数]
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
8.adduser:
adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。另一条创建用户命令是adduser ,用户删除命令userdel。
两个用户创建命令之间的区别
adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。
useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本
9.password:
password命令原来修改账户的登陆密码,使用权限是所有用户。语法 passwd [选项] 账户名称
-l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。
-u:解开账户锁定状态,只有具备超级用户权限的使用者方可使用。
-x, --maximum=DAYS:最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-n, --minimum=DAYS:最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。
-d:删除使用者的密码, 只有具备超级用户权限的使用者方可使用。
-S:检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。
3.学习如何使用命令安装gcc/g++, gdb, vim
1)首先,在命令行中输入vi查看一下vim的信息:
1.配置gcc/g++
Centos中使用yum来配置gcc和g++,若要安装gcc,则在命令行中输入:yum -y install gcc,按回车键就能够进行gcc的安装,若要安装g++,则需要在命令行中输入:yum -y install gcc-c++,就能够进行g++的安装。
2.配置GDB
假如选择的是gdb-7.10版本的下载好了后.
在命令窗口中输入:tar xzvf gdb-7.10.1tar.gz ,解压完后,能够查看到gdb-7.10.1的一个文件
进入解压后的目录中:cd gdb-7.10.1
输入命令:./configure ,完成后使用dir查看
输入命令:make ,将GDB进行编译
输入make install ,进行安装GDB
使用:gdb -v 查看GDB的版本信息,确认安装是否正确