Linux目录结构
只介绍几个主要的目录:
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
- /tmp:这个目录是用来存放一些临时文件的。
- /etc:所有的系统管理所需要的配置文件和子目录。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
vi/vim编辑器
一般模式
vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。
常用语法:
| 指令 | 功能描述 |
|---|---|
| yy | 复制光标当前一行 |
| y数字y | 复制一段(从第几行到第几行) |
| p | 粘贴 |
| u | 撤销 |
| dd | 删除光标当前行 |
| d数字d | 删除光标后(含)多少行 |
| x | 删除一个字母 |
| yw | 复制一个词 |
| dw | 删除一个词 |
| shift+^ | 移动到行头 |
| shift+$ | 移动到行尾 |
| 1+shift+g | 移动到页头 |
| shift+g | 移动到页尾 |
| 数字N+shift+g | 移动到目标行 |
编辑模式
在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。通常在 Linux 中,按下这些按键时,在画面的左下方会出现『INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
进入编辑模式:
- i:当前光标前
- a:当前光标后
- o:当前光标的下一行
退出编辑模式:按『Esc』这个键
指令模式
在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!
:w:保存,q:退出,!: 感叹号强制执行,:wq!强制保存退出/查找,/被查找词,n是查找下一个,shift+n是往上查找?查找,?被查找词,n是查找上一个,shift+n是往下查找
系统管理操作
centOS7 系统
-
查看防火墙状态:firewall-cmd --state
-
开启防火墙:sudo systemctl start firewalld
-
关闭防火墙:systemctl stop firewalld.service
-
禁止firewall开机启动:systemctl disable firewalld.service
-
重启防火墙:firewall-cmd --reload
-
查看开放的端口:firewall-cmd --list-ports
-
开放端口: firewall-cmd --zone=public --add-port=9200/tcp --permanent
-
--permanent #永久生效,没有此参数重启后失效
常用基本命令
文件目录
-
pwd: 显示当前工作目录的绝对路径 -
ls:ls [选项] [目录或是文件]-a:全部的文件,包含隐藏文件;-l:包含文件的属性与权限等数据 -
mkdir:创建一个新的目录,mkdir [-p] 要创建的目录-p:创建多层目录 -
rmdir:删除一个空的目录,rmdir 要删除的空目录 -
touch:创建空文件,touch 文件名称 -
cd:切换目录,cd 绝对路径;cd 相对路径;cd ~或者cd回到自己的家目录;cd-回到上一次所在目录;cd ..回到当前目录的上一级目录;cd -p跳转到实际物理路径,而非快捷方式路径 -
cp:复制文件或目录,cp [-r] sourceFolder targetFolder-r:递归复制整个文件夹 -
rm:移除文件或目录,rm -rf deleteFile,递归删除目录中所有内容 -
mv:移动文件与目录或者重命名,mv oldNameFile newNameFile,重命名,mv /temp/moveFile /targetFolder,移动文件 -
cat:查看文件内容,从第一行开始显示-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-
tac:查看文件内容,从最好一行开始显示,可以看出tac是cat的倒着写 -
more:查看文件内容,一页一页的显示文件内容空白键 (space):代表向下翻一页;
Enter:代表向下翻『一行』;
q:代表立刻离开 more ,不再显示该文件内容。
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
-
less:查看文件内容,允许使用『 pageup』『 pagedown』往回滚动空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串:向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串:向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q :离开 less 这个程序;
-
head:查看文件内容,只看头几行,head -n 10 文件名 -
tail:查看文件内容,只看尾几行,tail -n 10 文件名tail -f 文件名:实时追踪该文档的所有更新(监控日志文件)
-
echo:echo 要显示的内容 >> 存储内容的文件,将要显示的内容存储到文件中 -
ln:ln -s 原文件 目标文件,给原文件创建一个软链接 -
history:查看所敲命令历史
用户组管理命令
groupadd 组名,基本语法groupdel 组名,删除组groupmod -n 新组名 老组名,修改组cat /etc/group,查看创建了哪些组
用户管理命令
useradd 用户名:添加新用户passwd 用户名:设置用户密码id 用户名:判断用户是否已经存在su 用户名:切换用户userdel 用户名:删除用户但保存用户主目录,userdel -r 用户名:用户和用户主目录都删除who:查看当前有哪些用户登录到了本台机器上cat /etc/passwd:查看创建了哪些用户usermod -g 用户组 用户名:修改用户所属组
文件权限
-
chmod [{ugoa}{+-=}{rwx}][文件或目录] [mode=421] [文件或目录]:改变权限chmod u+x test1.java chmod g+x test1.java chmod o+x test1.java chmod 777 test1.java chmod -R 777 testdir
-
chown [最终用户] [文件或目录]:改变文件或者目录的所有者 -
chgrp [最终用户组] [文件或目录]:改变文件或者目录的所属组
进程线程
ps -aux:查看系统中所有进程,ps -aux | grep redis:包含redis关键字的进程

USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面端,tty7是图形终端。pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
-
top [选项]:查看系统健康状态选项:
-d 秒数:指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
-i:使top不显示任何闲置或者僵死进程。
-p:通过指定监控进程ID来仅仅监控某个进程的状态。
-s : 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
操作选项:
P: 以CPU使用率排序,默认就是此项
M: 以内存的使用率排序
N: 以PID排序
q: 退出top
查询结果字段解释:

第一行信息为任务队列信息:
| 内容 | 说明 |
|---|---|
| 13:31:03 | 系统当前时间 |
| up 83 day, 2:47 | 系统的运行时间,本机已经运行83天2小时47分钟 |
| 2 users | 当前登录了两个用户 |
| load average: 0.15, 0.15, 0.13 | 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |
第二行为进程信息:
| Tasks: 80total | 系统中的进程总数 |
|---|---|
| 1 running | 正在运行的进程数 |
| 78 sleeping | 睡眠的进程 |
| 1 stopped | 正在停止的进程 |
| 0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |
第三行为CPU信息:
| %Cpu(s): 1.7us | 用户模式占用的CPU百分比 |
|---|---|
| 1.7 sy | 系统模式占用的CPU百分比 |
| 0.0 ni | 改变过优先级的用户进程占用的CPU百分比 |
| 95.6 id | 空闲CPU的CPU百分比 |
| 0.7 wa | 等待输入/输出的进程的占用CPU百分比 |
| 0.0 hi | 硬中断请求服务占用的CPU百分比 |
| 0.3 si | 软中断请求服务占用的CPU百分比 |
| 0.0 st | st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
第四行为物理内存信息:
| Mem: 1883724 total | 物理内存的总量,单位KB |
|---|---|
| 427124 used | 已经使用的物理内存数量 |
| 468592 free | 空闲的物理内存数量 |
| 988008 buff/cache | 作为缓冲的内存数量 |
第五行为交换分区信息:
| Swap: 0 total | 交换分区(虚拟内存)的总大小 |
|---|---|
| 0 used | 已经使用的交互分区的大小 |
| 0 free | 空闲交换分区的大小 |
| 1183936 avail Mem | 可用交换取总量 |
-
pstree [选项]:查看进程树;-p:显示进程PID,-u:显示进程所属用户 -
kill:终止进程,kill -9 pid进程号,-9表示强迫进程立即停止
压缩与解压
-
gzip/gunzip压缩:只能压缩文件不能压缩目录,不保留原来的文件,
gzip test.java -
zip/unzip压缩:zip + 参数 + XXX.zip + 将要压缩的内容 ,-r 压缩目录
-
tar打包:tar + 参数 + XXX.tar.gz + 将要打包进去的内容,打包目录,压缩后的文件格式.tar.gz
参数:
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
例:
压缩:tar -zcvf XXX.tar.gz n1.txt n2.txt
解压:tar -zxvf XXX.tar.gz -C 解压目的地
