本篇博客有三个主题,便于读者熟悉linux中:1、在目录相关操作需要哪些权限,2、了解linux中的一些重要目录,
3、熟悉一些重要指令。
一、在linux中,我们在命令框输入ls -l会出现如图所示的代码:
在代码开头,出现了 rwx,r--,r-x,等字符,这些就是访问权限的种类,它们可以一一拆分,一个字母代表一种权限。
其中r--代表只读,-w-代表仅可写,--x代表仅可执行, ---代表无权限。
它们每三个是一组,第一组表示u-user即所用者的权限。 第二组表示g--group即文件和文件目录的所有者所在组用户的权限
第三组表示o-other其他用户的权限。
我们看文件c中,u的权限为rwx,顾名思义为可读可写可执行。
若其他用户需要进行写入操作,但没有写入操作权限,在linux中有一个命令叫chmod,它可以修改权限,具体使用方法如下:
相比较下,我们看到目录c从其他用户一开始的可读可执行权限变为了可读可写可执行权限。
二、linux中一些重要目录以及其相关作用:
/bin:
/usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/sys:
文件系统访问 Linux内核
/SELinux
SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。
/boot:
放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可
/dev:
存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
/etc:
系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置。
/home:
系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/lib:
/usr/lib:/usr/local/lib: 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
/proc: 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
/root:
系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
/sbin:
/usr/sbin:/usr/local/sbin: 超级管理命令,放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能”查看”而不能设置和使用。
/tmp:
一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/usr:
应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
/var:
放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message: 所有的登录文件存放目录,/var/spool/mail: 邮件存放的目录, /var/run: 程序或服务启动
三、重要指令:
du指令: 此指令是查看使用空间的。
du [选项][文件]
-a或-all 显示目录中个别文件的大小。 -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 -k或--kilobytes 以KB(1024bytes)为单位输出。 -m或--megabytes 以MB为单位输出。 -s或--summarize 仅显示总计,只列出最后加总的值。 -h或--human-readable 以K,M,G为单位,提高信息的可读性。 -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 -L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。 -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 --exclude=<目录或文件> 略过指定的目录或文件。 -D或--dereference-args 显示指定符号链接的源文件大小。 -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。 -l或--count-links 重复计算硬件链接的文件。
实例:
df指令:用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法: df 【选项】【文件】
选项:
-a或--all:包含全部的文件系统; --block-size=<区块大小>:以指定的区块大小来显示区块数目; -h或--human-readable:以可读性较高的方式来显示信息; -H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes; -i或--inodes:显示inode的信息; -k或--kilobytes:指定区块大小为1024字节; -l或--local:仅显示本地端的文件系统; -m或--megabytes:指定区块大小为1048576字节; --no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值; -P或--portability:使用POSIX的输出格式; --sync:在取得磁盘使用信息前,先执行sync指令; -t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息; -T或--print-type:显示文件系统的类型; -x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息; --help:显示帮助; --version:显示版本信息。
实例:
df和du有相似之处,也有差异。读者可自行比较。
top指令:
top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
实例:
top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92 Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached
解释:
- top - 09:44:56[当前系统时间],
- 16 days[系统已经运行了16天],
- 1 user[个用户当前登录],
- load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
- Tasks: 145 total[总进程数],
- 2 running[正在运行的进程数],
- 143 sleeping[睡眠的进程数],
- 0 stopped[停止的进程数],
- 0 zombie[冻结进程数],
- Cpu(s): 99.8%us[用户空间占用CPU百分比],
- 0.1%sy[内核空间占用CPU百分比],
- 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
- 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
- 0.0%hi[],
- 0.0%st[],
- Mem: 4147888k total[物理内存总量],
- 2493092k used[使用的物理内存总量],
- 1654796k free[空闲内存总量],
- 158188k buffers[用作内核缓存的内存量]
- Swap: 5144568k total[交换区总量],
- 56k used[使用的交换区总量],
- 5144512k free[空闲交换区总量],
- 2013180k cached[缓冲的交换区总量],
free指令:
free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。
命令格式:free【参数】
实例:
每列的意思为:
total:去掉为硬件和操作系统保留的内存后剩余的内存总量。
userd:当前已使用的内存总量。
free:空闲的或可以使用的内存总量。
shared:共享内存大小,主要用于进程间通信。
buff(buffers):主要用于块设备数据缓冲,例如记录文件系统的metadata(目录、权限等等信息)。
cache:主要用于文件内容缓冲available:可以使用的内存总量。
su指令以及 su-指令:
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。