一、Linux中的重要目录
- /proc目录
/proc文件系统是一种虚拟文件系统,以文件目录和文件形式,提供了一个指向内核数据结构的接口。这样方便查看和改变各种系统属性。此外还可以通过一组/proc/PID(PID就是进程ID)形式命名的目录查看系统中运行个进程的相关信息。由于进程是动态的,所以不同进程下的proc中的信息可能会有所不同。
/proc目录下的文件内容都采取人类可读的文本形式,shell脚本也能对其进行解析。程序可以打开、读取和写入/proc目录下的既定文件。大多数情况下,只有特权级别的进程才能够修改/proc目录下的内容。
以下是/proc目录下的文件
2. /sys目录
该目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备。
以上就是/sys目录里面的内容
/sys目录下的子目录
- /sys/block
这个目录是存放系统块设备的地方
- /sys/bus
这个目录下存放的都是kernel支持并且已经注册了的总线类型
- /sys/class
该目录下包含所有注册在kernel里面的设备类型,这是按照设备功能分类的设备类型,每个设备类型表达具有一种功能的设备。
- /sys/dev
该目录下维护一个按照字符设备和块设备的主次号码链接到真是设备的符号链接文件
- /sys/devices
该目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备。
- /sys/firmware
该目录下包含对固件对象(firmware object)和属性进行操作和观察的接口,也就是说这是系统加载固体机制的对用户空间的接口。
- /sys/fs
该目录是用来描述系统中所有文件的系统,包括文件系统本身和按照文件系统分类存放的己挂载。
- /sys/kernel
该目录下存放的是内核所有可调整参数
- /sys/module
该目录下包含了所有被载入的kernel模块
- /sys/power
该目录是系统的电源选项,对正在使用的power子系统的描述。该目录下有些属性的文件可以用来控制系统的电源状态,可以向其中写入命令控制机器关机/重启
3 ./SElinux
SElinux是一种基于域-类型模型的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SElinux的补丁,最后还有一个相应的安全策略。
4 ./bin
该目录下放置的是系统的必备执行文件
5 . /usr/lib
该目录下放置的是动态链接库和软件包的配置文件
6 ./usr/local
该目录下存放的是本地增加的一些指令或者库这类的东西
7 . /var
该目录中放置的是系统执行过程中经常变化的文件,例如需随时更改的日志文件、所有的登录文件存放目录、邮件的存放目录以及程序或服务启动。
8 . /tmp
该目录存放的是一般用户或正在执行的程序临时存放文件的目录。
二、Linux中的重要命令
du, df , top, free ,pstack, su ,sudo, useradd ,passwd
- du
du用来查看每个文件和目录的磁盘使用空间
-a | 列出所有的档案和目录容量,默认仅统计目录底下的档案 |
-h | 以人类比较容易读取的方式显示出容量 |
-s | 列出总量,只列出最后加总的值 |
-S | 不包括子目录下的总计,与-s有差别 |
-k | 以KBytes列出容量显示 |
-m | 以MBytes列出容量显示 |
一些命令的举例:
以下显示的不是所有,因为较多只截出了其中的一部分
- df
列出文件系统的整体磁盘使用量
-a | 列出所有的文件系统包括系统特有的/proc等文件系统 |
-k | 以KBytes的容量显示各文件系统 |
-m | 以MBytes的容量显示各文件系统 |
-h | 以人们较易阅读的GBytes, MBytes, KBytes 等格式自行显示 |
-H | 以 M=1000K 取代 M=1024K 的进位方式 |
-T | 连同该 partition 的filesystem 名称也列出 |
-i | 不用硬盘容量,而以 inode 的数量来显示 |
示例:
- top
动态观察程序的变化,可以持续侦测程序的运行状况
-b | 批处理 |
-c | 显示完整的治命令 |
-I | 忽略失效过程 |
-s | 保密模式 |
-S | 累积模式 |
-i<时间> | 设置间隔时间 |
-u<用户名> | 指定用户名 |
-p<进程号> | 指定进程 |
-n<次数> | 循环显示的次数 |
在 top 执行过程当中可以使用的按键指令:
? | 显示在top当中可以输入的按键指令 |
P | 以CPU的使用资源排序显示 |
M | 以Memory的使用资源排序显示 |
N | 以PID来排序 |
T | 由该Process使用的CPU时间积累(TIME+)排序 |
k | 给予某个PID一个讯号 |
r | 给予某个PID重新制定一个nice值 |
q | 离开top软件的按键 |
- free
观察内存的使用情况
-b | 以bytes为单位显示内存的使用情况 |
-k | 以Kbytes为单位显示内存的使用情况 |
-m | 以Mbytes为单位显示内存的使用情况 |
-g | 以Gbytes为单位显示内存的使用情况 |
-t | 在输出的最终结果,显示物理内存与swap的总量 |
示例:
- pstack
显示每个进程的栈跟踪。pstack命令必须由相应进程的属主或root运行。可以使用pstack来确定进程挂起的位置,此命令允许使用的唯一选项是检查进程的PID。
- su
su是用来切换用户权限的,从普通用户切换到超级用户
示例:
- sudo
以其他身份来执行命令,预设的身份为root,用户在使用sudo的时候,必须要先输入密码,然后有5分钟的有效期,超过有效期限必须重新输入密码。
-b | 将后续指令放到背景中让系统自行执行,而不与目前的shell产生影响 |
-u | 后面可以接欲切换的使用者,若无此项则代表切换身份为root |
- useradd
在Linux中创建新的系统用户,useradd可用来简历用户账号。账号建立好后再使用passwd设定账号的密码,用userdel可以删除账号。使用useradd建立的账户实际上是保存在/etc/passwd的密码文件中的。
-c<备注> | 加上备注文字,备注文字会保存在passwd的备注栏位中 |
-d<登入目录> | 指定用户登入时的启始目录 |
-D | 变更预设值 |
-e<有效期限> | 指定帐号的有效期限 |
-f<缓冲天数> | 指定在密码过期后多少天即关闭该帐号 |
-g<群组> | 指定用户所属的群组 |
-G<群组> | 指定用户所属的附加群组 |
-m | 自动建立用户的登入目录 |
-M | 不要自动建立用户的登入目录 |
-n | 取消建立以用户名称为名的群组 |
-r | 建立系统帐号 |
-s | 指定用户登入后所使用的shell |
-u | 指定用户id |
- passwd
修改变更用户登录密码,只用root用户可以修改别的用户密码,一般用户只能修改自己的密码。
-d | 删除密码,仅有系统管理者才能使用 |
-f | 强制执行 |
-k | 设置只有在密码过期失效后,方能更新 |
-l | 锁住密码 |
-s | 列出密码的相关信息,仅有系统管理者才能使用 |
-u | 解开已上锁的帐号 |