Linux基本概念及常用命令
1、用户概念相关概念
用户:即Linux中创建的一个账号,拥有自己的“空间”,别其他用户(root除外)非授权不能访问。
用户组:即部分用户组成的“群体”,可以彼此访问的属于“组”的公共“空间”。
其他人:除用户与用户组之外的其他账号用户。
所有用户信息(包括root)存储在/etc/passwd文件内,密码存储在/etc/shadow文件内,所有的组存储在/etc/group中。
2、文件权限相关概念
2.1 基本概念
上述命令的输出是文件的文件名和相关属性,其具体含义如下:
注意,当文件类型为目录时,x代表的是相应用户能进入此目录;当文件类型为文件时,x代表的是相应用户能执行此文件。
2.2 文件属性与权限的修改
(1)chgrp: 修改文件所属用户组,示例如下图:
把example.txt的用户组由root改为demo,若是chgrp -R demo A目录,则会将A目录下所有文件及其子目录下的所有文件的用户组变为demo。
(2)chown: 修改文件拥有者,示例如下图:
把example.txt的文件拥有者由root改为demo,也支持-R选项,其另一种写法为 chown 账号名:用户组名 目标文件或目录。
(3)chmod:修改文件权限。文件权限的设置方法由两种,分别是适用数字和符号修改权限。
数字类型修改: r-4,w-2,1-x,0-无权限。
符号修改:
chmod | u g o a |
+(在原有权限的基础上加入权限) -(在原有权限的基础上移除权限) =(设置) |
r w x |
文件或目录 |
---|
如:
3、文件和目录管理
3.1 常用目录命令
(1)cd:切换目录。
(2)pwd:显示当前目录。
(3)mkdir:新建目录,
(4)rmdir:删除空目录,空字是重点。
3.2 文件与目录的管理
(1)文件与目录的查看:ls
ls [-adl] 文件或目录
-a:列出全部文件,含隐藏文件(以.开头的文件名)
-d:仅列出目录本身,而不是目录内的文件数据
-l:列出文件或目录的属性与权限等详细信息
(2)文件的复制:cp
cp [-aipr] 源文件 目标文件
-a:将源文件原封不动(包括源文件的属性及权限等)的复制到目标文件
-i:复制时,询问是否覆盖目标路径下已有的文件
-p:连同文件的属性(权限、用户、时间)一起复制过去,而非适用默认属性(备份常用)
-r:递归复制,用于目录的复制(常用),目录的复制必须要带上此参数
注意:当源文件有两个以上时,最后一个目标文件一定要是“目录”才行
(3)删除文件或目录:rm
rm [-fir] 文件或目录
-f:强制删除,不会出现询问信息
-i:交互模式,删除前会询问
-r:递归删除,删除目录及其子目录下的所有文件(非常危险的命令,慎用)
(4)移动文件与目录,或重命名:mv
mv [-fiu] 源文件 目标文件
-f:若文件已存在于目标路径,则不会询问直接覆盖
-i:交互模式,会询问是否覆盖已存在的文件
-u:若源文件是比较新,才会覆盖已有的旧文件
(5)新建文件:touch
touch 文件
3.3 文件的打包,tar
tar [-z|-j|-J] [cv] [-f 待建立的新文件名] [要被压缩或打包的文件名] -->打包(c,形成tar后缀)与压缩(z-gz,j-bz2,J-xz)
tar [-z|-j|-J] [tv] [-f 已有的tar文件名] -->查看文件名
tar [-z|-j|-J] [xv] [-f 已有的tar文件名] -C [A目录] --> 将文件解压缩到A目录下
4、文件内容的查看
4.1 cat(concatenate串联的简写)
cat:将文件从第一行到最后一行连续显示在屏幕上
cat [-nA] 文件
-A:将空白字符用特殊可见字符显示
-n:显示行号
tac:将文件从最后一行到第一行连续地用倒序显示在屏幕上
4.2 可翻页查看
(1)more(一页一页翻动)
在程序运行过程中,有以下按键可使用:
空格键(space):向下翻页(下一页)
b或ctrl-b:向上翻页(上一页),仅对文件有效,对管道符无效
/ 查找目标:在显示地内容中查找目标字符串
:f :立刻显示当前文件名及目前显示的行数
q:立即退出
(2)less(一页一页翻动,更灵活)
空格键(space)或pagedown:向下翻页(下一页)
b或ctrl-b或pageup:向上翻页(上一页)
/ 查找目标:在显示地内容中查找目标字符串,向下查找,成功找到时,目标字串的底色为白色
? 查找目标:向上查找
n:向后(下)重复前一个查找
N:向前(上)重复前一个查找
q:立即退出
(3)file(查看文件类型)
file 带查看的文件或目录
4.3 数据截取
(1)head(从头开始取)
head [-n number] 文件
-n:后面接数字,显示前几行
(2)tail(从尾部开始取,看动态日志必用)
tail [-n number] 文件
-n:后面接数字,显示文件尾部倒数几行
-f:文件持续刷新时显示后面新增的内容,按ctrl-c结束
(3)gerp(正则表达,找日志)
grep [-nAB] '正则表达式' 文件
-n:显示行号
-A:后面可加数字,after之意,除列出该行外,后续的n行也列出来
-B:后面可加数字,before之意,除列出该行外,前面的n行也列出来
(4)应用案例
找出日志关键字UserC附近的日志,如下图:
4.4 命令与文件的查找
(1)脚本文件的查找,which
which(执行文件【一般是命令】的查找)
which [-a] command
-a:列出在PATH目录中被找到的所有命令,而不仅仅是第一个被找到的命令
注意:which找的是PATH中的命令,不在其中的命令(如在bash中的history)是找不到的。
(2)文件的查找
whereis(在一些特殊的目录中查找文件)
whereis主要针对/bin、/sbin以及/usr/share/man 下面的执行文件,未全盘查找,速度快。
whereis [-lbmsu] 文件或目录名
-l:列出whereis查询的目录
-b:只列出二进制格式的文件
-m:只在说明文件manual路径下查找
-s:只查找source文件
-u:查找不在上述目录中的其他特殊文件
locate(在数据库/var/lib/mlocate/中查找)
直接在后面输入文件的部分名称即可得到结果,因为是数据库/var/lib/mlocate/中查找,当新建立的文件还未存入数据库时,新文件不会被查到,需用updatedb更新数据库,这可能会花费数分钟的时间。
locate [-icl] keyword
-i:忽略大小写
-c:不输出文件名,进输出找到的文件数量
-l:后跟数字,仅输出几行的意思
find(直接从硬盘中查找)
在此只列出与文件权限及名称有关的参数
find [PATH] [option] [action]
option常用参数:
-name filename:查找文件名为filename的文件
-size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件,如+50k,即大于50KB的文件
action:额外的动作,表示在查找到文件后对文件的再一次处理操作
5、进程管理
5.1 程序与进程的概念
程序:通常为二进制程序,存储于物理介质(硬盘等)中,以物理形式存在。
进程:程序被触发后,执行者的权限与属性、程序代码与所需数据会被加载到内存中,操作系统给与这个内存中的单元一个标识符(PID),即,进程是正在运行中的程序。
子进程与父进程:假设有A进程产生了一个B进程,则称A是B的父进程,B是A的子进程。如下图:
5.2 进程查看
(1)仅查看自己bash相关的进程,ps -l
(2)查看系统所有进程,ps aux
(3)动态查看进程变化,top
top页面简介
top命令简介
top [-d 数字] 或 top [-nbp]
-d 数字n:页面每个n秒刷新一次,n默认是5
-b:批量方式执行top,常用于重定向,将某一段时间内的top结果保存为文本文件
-n:与-b连用,表示需执行几次top
-p 进程号:只显示特定进程的使用详情
top执行过程中,可使用以下按键命令:
?: 显示在top中可以使用的按键命令
P:按%CPU降序显示(默认以此显示)
M:按%MEN降序显示
N:按PID降序显示
T:按TIME+降序显示
k:给与某个PID一个信号(signal)
r:给某个PID重新制定一个NICE值
q:退出top
如NICE值(进程的优先级)的修改步骤如下:
(4)查看进程树,pstree
pstree [-A|-U] [-up]
-A:结果以ASCII字符集显示,解决乱码使用
-U:结果以Unicode字符集显示,可能会出现乱码
-u:显示此进程的用户名
-p:显示此进程的PID
假设PID=29721的进程是Zombie进程,则可以用以下方法找到其父进程为1197的sshd:
(5)结束进程
kill -signal PID
signal对照表如下:
因此kill -9 PID会删除PID进程。
killall
killall [-i] procA
-i:交互式一一删除子进程
删除以procA进程名启动的所有子进程
killall -i -9 procA 删除以procA进程名启动的所有子进程
5.3 系统磁盘
free [-thbkmg]
-t:显示物理内存与虚拟内存的总量
-h:以合适的单位显示内存使用情况
-b、k、m、g:指定内存单位,b-Bytes、k-KB、m-MB、g-GB
6、网络相关
ifconfig:显示网络信息,如ip地址等。
netstat:追踪网络或socket文件
netstat [-atunlp]
-a:将系统上所有的连接、监听、socket信息全部列举出来
-t:列出tcp连接
-u:列出udp连接
-n:以端口号显示信息
-l:列出目前正在网络监听(listen)的服务
-p:列出该网络服务的PID