1.1 Linux文件系统目录结构
在Linux系统中有“一切皆文件”的思想,也就是说,在Linux系统中将所有的硬件设备都当做文件来处理,包括硬盘、CD-ROM、USB等设备。
Linux系统采取“树形结构”来管理文件
-
/:整个文件系统层次结构的根目录
-
/bin:存放常用指令
-
/boot:包含内核启动文件
-
/dev:存放设备特殊文件目录,如声卡文件、磁盘文件等
-
/ect:存放系统管理和配置文件目录
-
/home:用户的主目录,包括保存的文件,个人配置,等等
-
/lib:/bin/ 和 /sbin/中的二进制文件的必需的库文件
-
/mnt: 挂载目录
-
/root:root用户主目录
-
/usr:最庞大的目录,存放应用程序和文件目录
-
/proc:process的缩写,存放描述系统进程的详细信息,可直接访问这个目录来获取系统信息
1.2 常用命令
1.2.1 pwd 命令
作用:获取当前所在目录的绝对路径
1.2.2 cd 命令
作用:切换到指定目录下
用法:cd [参数]
常用参数:
-
相对路径 | 绝对路径
-
~:回到自己家目录
-
..:返回上级目录
1.2.3 mkdir 命令
作用:创建目录
用法:mkdir [选项] 要创建的目录名
常用选项:
-
-p:创建多级目录
我们在/tmp下创建一个aaa目录
切换到aa目录下,创建 bbb/ccc 两个目录需要加 -p
1.2.4 rmdir命令
作用:删除一个空目录,如果目录不为空,删除不了
用法:rmdir [选项] 删除的空目录名
常用选项:
-
-p:连同上层“空的”目录也一起删除
我们要删除ccc目录,首先切换到bbb目录中
这样ccc目录就被删除了
删除aaa目录(此时aaa中含有bbb)加上 -p
1.2.5 ls 命令
作用:列出目录的内容
用法:ls [选项] [目录或者文件]
常用选项:
-
-a:列出全部的文件,包括隐藏的目录和隐藏的文件(以.开头的文件)
-
-A:列出全部的文件,包括隐藏的目录和文件(不包括 . 与 .. 这两个目录)
-
-d:仅列出目录本身,而不是列出目录内的文件数据
-
-h:将文件容量以人类较易读的方式(例如GB、KB等) 列出来
-
-l:以列表的方式显示信息
-
-al:具有上面两个的功能
ls列出目录的内容(不含隐藏文件)
ls -a:隐藏目录和文件也被显示出来(以.开头的文件)
ls -A:不包含.和..这两目录(与上面不同的地方)
ls -d:列出/ect 目录本身
ls -h:可以看出更多的文件参数,通常和-l 一起
1.2.6 cp 命令
作用:拷贝文件到指定目录
用法:cp [选项] 源文件 目标目录
常用选项:
-
-r:拷贝整个文件夹
-
-f:若目的地已经有同名的文件存在,则在复制前先予删除再复制
-
-a:尽可能将档案状态、权限等资料都照原状予以复制
1.2.7 rm命令
作用:移除文件或目录
用法:rm [选项] 要删除的文件或者目录
常用选项:
-
-r :递归删除整个文件夹
-
-f :强制删除不提示
删除aaa目录(含有bbb目录),加上f 就不会有一下提示了
2、获取命令帮助
2.1 man 命令
作用:显示指定命令的用法 ,
用法:man [命令或配置文件]
例如:获取ls命令的使用方法
操作:你可以按 空格键 往下翻,可以按 q 键离开
3、了解你的系统
关于Linux系统运行级别:
在Linux中共有7个运行级别,它们分别是:
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入字符模式(就是黑乎乎的界面)
运行级别4:系统未使用,保留
运行级别5:图形界面模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
系统启动默认级别设置文件是 : /etc/inittab 。修改里面的 id:3:initdefault:这一行 ,就能改变启动默认启动级别,比如id:3 ,就是默认启动到字符界面。
3.1 查看Linux中硬件信息
3.1.1 cat /proc/cpuinfo
作用:查看CPU信息
3.1.2 cat /proc/cpuinfo | grep "processor" | wc -l
作用:查看逻辑CPU个数
3.1.3 cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l
作用:查看物理CPU个数
3.1.3 cat /proc/cpuinfo | grep "core id" | uniq | wc -l
作用:查看core id的数量,如果有两个逻辑CPU具有相同的 core id ,意味这,CPU启用的超线程
3.2 查看linux的内存信息
3.2.1 cat /proc/meminfo
作用:查看linux的内存信息
显示的东西很多,还可以用另一个命令 free 来查看内存的信息
其中
total:代表总大小 ; used :已经使用的大小;free:剩余的大小;Shared:多个进程共享的内存总额;buffers/cached:磁盘缓存的大小。
第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是879348KB,已用内存是140916KB,其中包括,内核(OS)使用+Application(X, oracle,etc等)使用的+buffers+cached。
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
3.3 磁盘使用情况查看
命令:fdisk -l
还可以使用df -Th命令
3.4 身份信息查看
3.4.1 whoami 命令
作用:显示当前登录用户名
用法:whoami [--help][--version]
参数选项:
-
--help 在线帮助
-
--version 显示版本信息
3.4.2 who 命令
作用:显示所有登录用户(所有登录用户信息)
3.5 系统在干嘛?
3.5.1 top 命令
作用:实时显示 process 的动态,相当于windows中的任务管理器
字段说明:
USER:该 process 属于哪个使用者账号的
PID :该 process 的号码
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有:
D 不可中断
R 运行中
S 休眠的进程,可以被某些信号唤醒
T 停止的进程
Z 僵死的进程,就像windows里面程序无响应差不多
系统都开启了哪些服务?
3.5.2 chkconfig --list
作用:查询系统服务在系统各个运行级别上的信息
最左边的一列,是表示服务名,右边是指各个服务在各个系统启动级别上是否开启的状态。
3.5.3 service 命令
作用:查看某个服务的状态,比如查看 sshd这个服务的状态
用法:service [选项][参数]
选项:
-
-h:显示帮助信息
-
--status-all:显示所服务的状态
参数:
-
服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名
-
控制命令:系统服务脚本支持的控制命令
它就像我们windows里面的服务管理,可以开启和关闭服务。
要注意的是这个命令不是在所有的linux发行版本中都有。主要是在redhat、fedora、和centos中。
查看 sshd这个服务的状态:
显示所有服务状态
显示服务crond的状态
service crond status
停止服务crond
service crond stop
启动服务crond
service crond start
重启服务crond
service crond restart
重新载入crond服务的配置
service crond reload
3.6 系统网络链接状况
3.6.1 ifconfig 命令
作用:显示或设置网络设备
Inet addr :就是IP地址 ;
Bcast:广播地址;
Mask:是子网掩码;
inet6 addr:这是ipv6的ip地址。
RX:指接收 ;
TX:指发送。
3.6.2 netstat
作用:显示目前在Linux系统上的文件系统的磁盘使用情况统计
如果要看更加详细的,可以使用 netstat -atunp
会显示所有udp和tcp链接并显示进程号
4、Linux文件权限
4.1 Linux文件属性
权限:
-
第一个字符表示这个文件是目录、文件或连接文件等;
d:表示目录
-:表示文件
|:表示连接文件
b:表示块设备(如硬盘)
c:表示字符设备(如键盘,鼠标等)
-
接下来的字符中,以三个为一组,均为”rwx“的三个参数的组合。分别是r:可读;w:可写;x:可执行。注意,这三个权限的位置不会改变,如果没有权限,就是:”-“。
-
第一组为文件拥有者可具有的权限;
-
第二组为加入用户组之账号的权限
-
第三组为非本人且没有加入本用户的其他账号的权限
连接:每个档案都会将他的权限和属性记录到文件系统的inode中,每个档案名都会连接到一个inode。这个连接数就是记录有多少不同的档案名连接到相同的一个inode号码去了。
拥有者:就是这个档案所属的拥有者账号了
用户组:表示这个档案所属的群组
文件容量:这个档案占用的容量大小,默认单位是bytes
修改日期:最近被修改的日期
文件名:就是文件名
4.2 修改文件的属性与权限
4.2.1 chown 命令
作用:修改文件拥有者
用法:chown [-R] 账号名称 文件或者目录
参数:
-
-R:递归,用于改变目录。连同该目录下所有的档案都改变
4.2.2 chmod 命令
数字类型修改文件权限
作用:chmod [-R] xyz 文件或目录
参数:
-
xyz:数字类型的权限属性,为rwx属性的数值的相加,r为4,w为2,x为1,如rw-就是6
-
-R:进行递归修改连同子目录下的所有文件都会修改
例如:将a.txt的权限改为rwxrwxrwx,权限数字就是777
符号类型修改文件权限
接下来要将a.txt改为[-rwxr-xr-x]
5、文件与目录管理
5.1 查看文件类型
5.1.2 file 命令
作用:查看文件类型
用法:file [-bLvz] 文件
-
-b:显示结果,但是不显示文件名称
-
-L:直接显示符号链接所指向的文件的类型
-
-v:显示版本信息
-
-z:测试去读取压缩文件的内容
查看/etc中的adjtime文件类型
原来是个文本文件
5.2 脚本文件查找
5.1.1 which 命令
作用:显示命令的完整文件名
用法:which [-a] command
参数:
-
-a:将PATH中可以找到的指令都列出来,而不是第一个被找到的名称
找到mkdir命令
用root用户的时候,为什么能找到ifconfig ,但是用普通用户就找不到了呢?是这样的,which是根据用户的PATH变量设定的路径去找的
5.3 文件查找
5.3.1 whereis 命令
作用:找到系统中某些特定目录下的文件
用法:whereis [-bmsu] 目录或文件名
参数:
-
-b:只找binary(二进制)格式的文件
-
-m:只找在说明文件manual路径下的文件
-
-s:只找source来源档案
-
-u:搜索不在上述三个项目当真的其他特殊档案
找到ifconfig
whereis搜索非常快速,因为它是基于数据库的。这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用 whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。
5.3.2 locate 命令
作用:找到与关键字相关的文件或目录
用法:locate [-ir] keyword
参数:
-
-i :忽略大小写
-
-r :使用正规运算式做寻找的条件
搜索所有有关passwd的档案
5.3.3 find命令
作用:
用法:find [路径] [option] [action]
参数:
-
-atime,-ctime和-mtime
-
以-mtime说明:-mtime n :n 为数字
-
-mtime +n :n天之前(不含n天本身)
-
-mtime -n:n天之内(含n天本身)
-
-nwer file:file为一个存在的文件,列出比file更新的文件。
-
将过去系统上面24小时内有更改(mtime)的内容列出来:
6.1 直接查看文件内容
6.1.1 cat 命令
作用:查看文件内容
用法:cat [-n] 文件
参数:
-
-n:显示行号
查看passwd
加上-n会显示行号
6.1.2 tac (反向列示)
作用:查看文件内容(显示内容与cat相反)
用法:tac 文件
6.2 可翻页查看
6.2.1 more 命令
作用:实现一页一页翻动
用法:more [文件名]
查看一个内容很长的文档
显示进度,按空格键或者回车键盘 就能往下翻页了。按 q 键就可以离开,输入 “/keyword” 可以对关键词就行搜索,按 n 可以向下搜索
6.2.2 less 命令
作用:实现一页一页翻动
用法:less 文件
6.3 数据截取
6.3.1 head命令
作用:有时候我们并不需要查看全部的文档内容,只是想看其中几行而已,这时可用head,head是选取头几行,默认不加参数,是显示头十行的内容。
用法:head [-n number] 文档
参数:
-
-n:后面接的数字,代表显示几行的意思
6.3.2 tail 命令
作用:选取尾部文档内容(与head相反)
用法:taill [-n number] 文件
参数:
-
-n:后面接的数字,代表显示几行的意思
-
-f:持续刷新显示后面所接文件中的内容,等到按下[ctrl ] + c 才会结束
6.4 非纯文本文件
6.4.1 od 命令
作用:查看二进制文件的内容
用法:od [-t TYPE] 文件
参数:
-
-t 后面接输出的类型
TYPE:
-
a:利用默认的字符来输出
-
c:使用ASCII字符来输出
-
d[size]︰利用十进制(decimal)来输出数据,每个整数占用size bytes ;
-
f[size]:利用浮点数(floating)来输出数据,每个数占用size bytes ;
-
o[size]:利用八进制(octal)来输出数据,每个整数占用size bytes ;
-
x[size]∶利用十六进制(hexadecimal)来输出数据,每个整数占用size
查看head命令的内容