目录
一、前言
二、文件目录
三、文件系统
四、文件目录命令
五、系统信息命令
六、通讯网络命令
七、磁盘类命令
八、进程管理命令
Linux特点是开放性遵循OSI国际标准;多用户每个用户有各自权限;多任务;GUI和系统调用界面;丰富的网络功能和良好的可移植性。
操作系统结构由内向外包括Kernel、Shell、Utility。Kernel系统启动时将内核装入内存;管理系统各种资源。Shell用户界面,提供用户与内核交互接口;命令解释器,提供强大的编程环境,如bash,sh等。Utility提供各种管理工具,应用程序,如gcc,vi,ls等。
硬盘最小安装三个分区:/根分区、/swap交换分区、/boot引导分区。/boot引导分区目录放置系统内核及驱动模块引导程序,为了避免文件系统损坏无法启动,需要独立分区。/swap用于当系统物理内存不够用,将释放一部分空间以供当前运行的程序使用。不是所有从物理内存交换的数据放到Swap中,有相当一部分数据直接交换到文件系统。
磁盘分区包括主分区、扩展分区、逻辑分区。主分区最多4个,其中一个主分区标志为“活动的”,包含一个引导程序。扩展分区是主分区之一,然后再将其细分为任意个逻辑分区,不可将目录安装在扩展分区上。逻辑分区最多11个。
对于Linux系统,一切皆文件,它是由文件系统堆砌而成,正确理解文件系统能最大程度帮助我们入手该系统。
Linux文件目录属于树状结构,需要掌握相对路径及绝对路径,以及文件系统的各种常见指令。
“-”前一级目录,“mkdir”创建一个目录,“touch”创建新文件,并对旧文件更新文件戳,“pwd”显示当前目录,“rmdir”删除当前目录文件,“ls”查看当前目录文件,“cp”复制目录,“mv”移动目录,“rm”删除目录。
/ | Linux系统根目录,包含所有目录 |
/bin | Binary存放用户的可执行程序,例如ls, cp,也包含其他Shell如bash等 |
/boot | 包含vmlinuz,initrd,img等启动文件,随便改动可能无法正常开机 |
/dev | 接口设备文件目录,如硬盘 |
/etc | Passwd等系统设置与管理的文件 |
/etc/x11 | X Windows System的设置目录 |
/home | 用户主目录 |
/lib(/lib64) | 包含执行/bin和/sbin目录二进制文件所需的共享库函数Library |
/mnt | 各项装置文件系统加载点,如/mnt/cdrom是光驱加载点 |
/opt | 提供空间较大的固定应用程序存储文件之用 |
/proc | 系统内核与程序执行的信息,进程 |
/root | 管理员主目录 |
/sbin | 系统启动时所需二进制程序 |
/tmp | 暂存盘目录 |
/usr | 用户使用系统命令或应用程序等信息 |
/usr/bin | 用户可执行程序 |
/usr/doc | 存放各式程序文件目录 |
/usr/include | 保存提供C语言加载头文件 |
/usr/include/X11 | 保存提供X Windows程序加载的头文件 |
/usr/info | GNU程序文件目录 |
/usr/lib(/lib64)(/X11) | 函数库 |
/usr/local | 自行安装应用程序位置 |
/usr/man | 存放在线说明文件目录 |
/usr/sbin | 存放经常使用程序,如showmount |
/usr/src | 系统源码文件 |
/usr/X11R6/bin | Windows 系统执行程序 |
/var | 有变动相关程序目录,如Log |
文件系统是操作系统中负责管理持久数据的子系统,负责把用户文件存到磁盘硬件中,断电不丢失。文件系统基本数据单位是文件,目的是对磁盘文件进行组织管理,组织方式不同会形成不同的文件系统。
3.1 概述
文件数据结构:索引节点Index node ,目录项directory entry,记录文件的元信息和目录层次结构。
索引节点(inode):记录文件元信息,如inode编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘位置等基本信息,是文件的唯一标识,同样占用磁盘空间。
目录项(dentry):用来记录文件名字,索引节点指针以及其他目录项层级关联关系。多个目录项关联起来形成目录结构,目录项由内核维护的一个数据结构,不存放于磁盘,而是缓存在内存。内核会把已经读过的目录用目录项这个数据结构缓存在内存,下次读相同目录,只需从内存读取。
关系:索引节点唯一标识一个文件,目录项记录着文件名,多个目录项中的索引节点指向同一个文件。
目录也是文件用索引节点唯一标识,普通文件在磁盘保存数据,目录文件在磁盘保存子目录和文件。
3.2 文件系统类型
ext2文件系统:是早期的Linux技术,支持undelete反删除,操作反删除困难。目前建议ext3。
ext3文件系统:由ext2发展而来,支持大文件,不支持反删除操作。
reiserfs文件系统:支持大文件、反删除,操作反删除比较容易。
普通文件:文本文件用ASCII码形式存储
目录文件:d字母开头
设备文件:块设备文件b字母开头,字符设备文件c字母开头
3.3 如何存储
磁盘读写最小单位是扇区(512B),8个扇区组成一个逻辑块(4K)。索引节点是存储在硬盘上的数据,为了加速文件访问,通常会把索引节点加载到内存中。磁盘格式化会被分为三个存储区域超级块、索引节点区、数据块区。超级块存储文件系统的详细信息,比如块个数、块大小、空闲块等。索引节点区存储索引节点,数据块区存储文件或目录数据。超级块是当文件系统挂载时进入内存,索引节点区当文件被访问时进入内存。
文件系统在Linux系统启动时,会把文件系统挂载到根目录,这样才可以正常使用。
每个存储设备被格式化后应该有两部分,一部分是inode,另一部分是Block,inode用来存储数据文件头信息,信息包括文件大小,属主,归属用户组,读写权限。Block用来存储数据。
文件或目录权限包括9个字段构成:
3.4 用户设置
用户组是具有相同特征的用户集合体,如相同的权限(查看、修改或执行某一命令)。用户和用户组是X对X。与用户相关配置文件/etc/passwd,与用户组相关的配置文件/etc/group。
管理用户命令:
useradd、adduser: 添加用户。 userdel 删除用户。passwd 为用户设置密码。
usermod修改用户登录名等。finger查看用户信息。id查看用户UID、GID及所归属的用户组。
su用户切换工具。sudo通过另一个用户来执行命令,su是用来切换用户,然后通过切换到的用户来完成相应的任务。
管理用户组的工具:
groupadd 添加用户组;groupdel删除用户组;groupmod修改用户组信息;groups显示用户所属用户组。
3.5 用户主目录文件
/etc/skel目录一般存放用户启动文件的目录,该目录由Root权限控制,当添加用户时,目录下的文件自动复制到新增加的用户家目录下。
/etc/skel目录下的文件都是隐藏文件类似.file格式,可以用过修改、添加、删除/etc/skel目录下的文件,来为用户提供一个统一标准默认用户环境。
使用useradd和adduser命令添加用户。
/etc/login.defs配置文件是当创建用户时的一些配置,如是否需要home,UID,GID的范围,用户期限等。
用户文件权限 umask:新创建文件默认不具有可执行允许权限:-rw-------;新创建的目录具有可执行允可权限:drwx--x--x;对于文件,文件权限是八进制666-umask,对于目录是八进制777-umask,如home umake 077 ,那么权限是700,也就是rwx------
用户权限定义- setuid/setgid,setuid setgid是让普通用户可以以root用户运行只有root账号才能运行的程序或者命令。setuid 设置用八进制基准4000,setgid是八进制2000,
浏览目录命令:cd, dir,ls
浏览文件命令: cat,more, less
目录操作命令:mkdir, rmdir
文件操作命令:touch,vi , rm, cp, mv, ln, tar gzip, gunzip,whereis, whatis
find功能:用来寻找文件或目录 find 路径 匹配条件
grep:(Global search REgular expression and Print out the line)文本搜索工具,根据用户指定的模式对目标文本逐行进行匹配检查,打印匹配到的行。
touch功能:生成一个空文件或修改文件存取/修改时间记录值。touch 参数 文件名
who/w:查看当前系统中有哪些用户登录
ln命令:在文件和目录之间建立链接, ln 参数 源文件或目录 目标文件或目录
软件包RPM red hat package manager,由Red Hat公司开发的一个开放性软件包管理系统,易于安装、升级与删除软件包,强大的查询功能,软件包验证,支持代码形式的软件包。
安装
rpm -ivh xxxx64.rpm
删除
rpm -e xxxx
升级
rpm -Uvh xxxx.rpm
更新: 检查指定的软件包日期,如果更新,则自动更新,否则不回安装。升级模式
下 rpm都会安装指定软件包。
rpm -Fvh xxxx.rpm
查询 安装内容
rpm -q xxxx
查询位置
rpm -ql package-name
tar打包命令:位于/bin目录下,讲指定文件或目录打包一个文件,不做压缩。gzip压缩为xxx.tar.gz文件。参数-c创建新的tar文件,-v显示运行过程信息,-f指定文件名,-z调用gzip压缩命令,-t查看压缩文件内容 -x解压tar文件
Linux系统下常见的是.gz文件压缩格式(gzip),zip命令可以将许多文件压缩成一个文件功能。gzip一般与tar一起使用。
将所有文件打包为test.tar扩展名.tar自行加上
tar -cvf test.tar *
打包为test.tar文件,再用gzip命令压缩
tar -zcvf test.tar.gz *
产看test.tar文件中包含哪些文件
tar -xvf test.tar
tar解压
tar -xvf test.tar
gz tar解压
tar -zxvf test.tar.gz
压缩文件不需要任何参数
gzip test.txt
显示压缩率
gizp -l xxx.txt.gz
解压缩
gunzip xxxx.tar.gz
date 命令:显示修改当前日期;cal显示日历;clock显示日期时间;
dmesg:显示系统诊断信息、操作系统版本号、物理内存的大小及其他信息
df:查看文件系统各个分区占用情况。
du:查看某个目录中各级子目录所使用的硬盘空间数
du 参数 目录名
free:查看系统内存,虚拟内存(交换空间)大小占用情况
ftp 传输文件
telnet 登录到远程计算机, telnet 主机名/IP
netstat查看网络状态 -t--tcp显示TCP传输协议连线状况
finger 查看某个使用者信息 -s 显示用户名相关信息;-l除了-s选项信息外还有用户主目录信息
ping 查询某个机器是否在工作;[选项] 主机名/IP地址; -c数目在发送指定数目包后停止
route 设置系统网络路由 -f清除所有网关入口路由表;-p与add命令使路由具有永久性
ftp文件传输登录后执行命令:
ls | 列出远程机当前目录 |
cd | 在远程机上改变工作目录 |
lcd | 在本地机上改变工作目录 |
ascii | 设置文件传输为ASCII模式 |
binary | 设置文件传输为二进制模式 |
close | 终止当前ftp会话 |
hash | 每次传输完数据缓冲区中的数据后就显示一个#号 |
get(mget) | 从远程机传送指定文件到本地机 |
put(mput) | 从本地机传送文件到远程机 |
open | 连接远程ftp站点 |
quit | 断开与远程机的连接并退出ftp |
? | 显示本地帮助信息 |
! | 转到shell中 |
passive | 进入被动传输方式 |
prompt | 设置多个文件传输时交互提示 |
fdisk 某个目录路径
-l查看磁盘容量机分区大小;heads是磁盘面;sectors是扇区;cylinders是柱面;
进程(ID/PID)分为交互进程、批处理进程、守护进程。守护进程是系统在开机时通过脚本自动激活启动或超级管理用户root来启动。它是一直运行的,所以它所处的状态是等待请求处理任务,如httpd服务器一直运行,等待用户来访问,也就是等待任务处理。
启动进程的用户ID是UID,所属的组是GID;进程状态分为运行R、休眠S、僵尸Z;
ps监视进程工具,ps -eLf ; ps axms获得线程信息;ps -ejH; ps axjf获取进程树;
USER 进程的属主;PID 进程ID; PPID 父进程的ID;%CPU 进程占用CPU百分比;%MEM 占用内存百分比;NI 进程的NICE值,数值大表较少占用CPU时间;VSZ进程虚拟大小;RSS驻留页数量;TTY 终端ID;WCHAN 正在等待进程资源;START 启动进程时间;TIME进程消耗CPU时间;COMMAND 命令名称和参数。STAT 进程状态,R正在运行 S休眠状态 T停止或被追踪 Z僵尸进程,<优先级高进程,N优先级低进程,L 页上锁,s进程领导者,l多线程,+后台进程组;
pgrep通过程序名查询进程的工具,一般是判断程序是否正在进行。
kill、killall、pkill、xkill终止一个进程或者正在运行的程序,一般与ps和pgrep一起使用。
top动态监视系统任务的工具,输出结果是连续的。
nice和renice是显示进程优先级。
参考:
一文读懂Linux 文件系统 (360doc.com)