文章目录
- [1. 文件目录类](#1. 文件目录类)
- [2. 文件权限类](#2. 文件权限类)
- [3. 网络配置类](#3. 网络配置类)
- [4. 磁盘分区类](#4. 磁盘分区类)
- [5. 搜索查找类](#5. 搜索查找类)
- [6. 进程线程类](#6. 进程线程类)
- [7. 压缩和解压类](#7. 压缩和解压类)
- [8. 性能优化类](#8. 性能优化类)
1. 文件目录类
命令 | 描述 |
---|---|
pwd | 显示目前的目录 |
ls [-l] [-h] [-a] | 显示当前文件夹内文件/文件夹, ls -l == ll |
mkdir [-p] dir_1/ dir_2 | [-p] 递归的创建文件夹 |
touch 文件名 | 创建文件 |
cd cd / cd ~ cd . cd ... cd -- | 更改目录 回到根目录,然后再向下寻找 回到用户主目录的缩写。 当前目录 返回前一目录(父目录)( 在最近的两次工作目录中来回切换 |
cp 源文件 目标目录 cp -r 源目录 目标目录 | 复制文件 复制目录 |
mv 源文件 目标文件 | 移动文件或文件夹,可作为修改文件名操作 |
rm -i a.txt rm --r dir_A rm --rf / | 删除文件a.txt前,-i会有删除提示 删除文件夹 删除根目录所有文件,-f没有提示,不能恢复 |
cat -b文件名 cat -n文件名 cat -v文件名: | 输出文件的行编号(忽略空行) 输出文件的行编号(不忽略空行) 列出一些看不出来的特殊字符 |
more 文件名 | 分屏显示文件内容(适用于文件内容多的情况) |
echo "内容" > 文件名 echo "内容" >> 文件名 | 输出(覆盖)到指定的文件中 追加(文本末尾添加)到指定的文件中 |
head -n 文件名 | 只看某文件的前n行, head -100 ./a.txt |
tail -n 文件名 | 只看某文件的最后n行, tail -100 ./a.txt |
tail -f 文件名 | 动态实时输出文件内容,tail -f ./a.txt |
which | 查看执行命令所在的位置,which python |
history | 查看最近使用的linux命令 |
tree [目录名] tree ~ tree / tree --d ~ tree --C | 树形结构显示目录结构 树形显示家目录内容 树形显示根目录内容 树形显示目录内容(只显示目录,不显示文件) 带颜色显示(文件夹蓝色) |
wget URL | 下载文件 |
ls -l扩展内容(共十位)
第0位字符表示文件类型:
-文件
d 代表目录
c 字符流,装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
S socket
p 管道
I 链接文档(link file)
第1-3位确定属主(该文件的所有者)拥有该文件的权限。 --User
第4-6位确定属组(所有者的同组用户)拥有该文件的权限, --Group
第7-9位确定其他用户拥有该文件的权限 s --Other
Linux系统目录机构
/root : 该目录为系统管理员,也称作超级权限者的用户主目录,一般用户进不去。
/sbin : s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/usr: user resource这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program file
/bin: 是Binary的缩写,这个目录存放着最经常使用的命令,如pwd、touch、mkdir
/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
/home : 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/etc : 所有的系统管理所需要的配置文件和子目录。
/lib :系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到
/opt : 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录 下。默认是空的。
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。
/tmp :这个目录是用来存放一些临时文件的。
/var :这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件。
2. 文件权限类
日常工作会遇到想执行某个文件,但没有权限的情况,就需要增加执行权限,执行命令chmod 777 a.txt就行了,其他内容j基本用不到!!!
用户是Linux系统工作中重要的一环,包括用户管理与组管理,在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限,在Linux中,可以指定每一个用户针对不同的文件或者目录的不同权限。
权限 | 缩写 | 数字代号 | 作用到文件 | 作用在目录 |
---|---|---|---|---|
读read | r | 4 | 可以读取、查看 | 可以通过ls查看目录 |
写write | w | 2 | 可以修改,但是不一定可以删除该文件,除非该文件所在的目录有写权限 | 可以修改,目录内创建+刪除+重命名目录 |
执行execute | x | 1 | 可以被系统执行 | 可以进入该目录 |
PS:添加组/删除组、用户管理等的终端命令都需要通过sudo执行
用户管理相关命令 | |
---|---|
useradd [-m] [--g] 组名 用户名 -m -g | 创建用户 自动建立用户家目录 制定用户所在组,否则建立一个同名的组 |
passwd 用户名 | 设置用户密码(必须要有) |
su 用户名1 | 切换到用户名1 |
id 用户名 | 得用户的用户代号和组代号 |
who whoami | 看当前登陆的用户列表详细信息 查看当前登陆用户的用户名 |
userdel --r 用户名 | 删除用户 -r 自动删除用户家目录 |
cat /etc/password | grep 用户名 | 确认用户信息 |
exit | 推出当前登陆账号 |
usermod:设置用户的主组/附加组和登陆Shell 主组:通常有用户指定,在etc/passwd文件的第四列Gid对应的值 附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限(设置用户的附加组,需要重新登陆才能生效) | |
usermod --g 主组 用户名 | 修改用户的主组(passwd文件的第四列Gid对应的值) |
usermod --G 附加组 用户名 | 修改用户的附加组(增加新的功能) |
usermod --s /bin/bash 用户名 | 修改用户登陆shell(终端命令窗口,默认使用dash) |
组管理相关命令 | |
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chgrp --R 组名 文件/目录名 | 修改文件/目录所属组 |
文件权限管理 | |
chmod u+x a.txt chmod g-w a.txt chmod o-w a.txt | 将文件a.txt"添加用户可执行权限" 将文件a.txt"删除本组可写权限" 将文件a.txt"删除其他组可写权限" |
chmod 777 a.txt | 将文件a.txt添加所有权限 |
目录权限管理 | |
chmod -R 755dir 递归执行 | 将目录dir添加所有权限 755分别对应拥有者、组、其他用户 |
chown 新用户名 文件名[目录名] | 修改件名[目录名]的拥有者 |
chgrp [-R] 新组名 文件名[目录名] | 递归修改文件[目录]的组 |
3. 网络配置类
ifconfig | 查看或者配置当前的网卡信息 |
---|---|
ifconfig | grep inet | 查看网卡对应IP地址 |
ping IP地址 | 检测本计算机到目标IP地址是否正常连接 |
netstat -nplt | 显示整个系统的网络情况 |
4. 磁盘分区类
fdisk -l: 在终端中查看linux有几个磁盘分区
s表示scsi硬盘 d表示disk
a表示第一块盘(a为基本盘(第一块硬盘,两块就会有b,b为基本从属盘,c为辅助主盘,d为辅助从属盘)
数字,前四个分区用1~ 4表示,它们是主分区或扩展分区(当前都是主分区),从5开始才是逻辑分区上面四个放在一块表示我的计算机里面第一块SCSI硬盘
df -h: 列出文件系统的整体磁盘使用量, 检查文件系统的磁盘空间占用情况
选项与参数:
-h:以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示;
-a:列出所有的文件系统,包括系统特有的/proc等文件系统;
-k:以KBytes的容量显示各文件系统;
-m:以MBytes的容量显示各文件系统;
-H:以M= 1000K取代M=1024K的进位方式;
-T :显示文件系统类型,连同该partition 的filesystem名称(例如ext3)也列出;
5. 搜索查找类
通配符的使用:
*:代表任意多个字符
?:代表任意一个字符
[12345 ] :代表可以匹配字符组中任意一个
[a-f]: 代表a到f中的字符任意一个(数字也可以哦)
find查找文件/文件夹名称 find Desktop/ -name "1 " find . -name "*.txt" | find 文件夹地址 -name "查询条件" 查看桌面文件夹所有包含1 的文件 查看桌面文件夹所有以.txt结尾的文件 |
---|---|
grep 查询文件内容 grep [-n][-v][-i] 搜索关键字 文件名 grep --n "关键字" 文件名 grep --i 关键字 文件名 grep ^a 111.txt grep b$ 111.txt | 搜索文件中的关键字 显示匹配的行号 忽略字母大小写 以a为开头 以b为结尾 |
管道 | | 将一个命令的输出作为另一个命令的输入 |
6. 进程线程类
top | 动态显示运行中的进程并排序(比较好) |
---|---|
ps -aux | grep bitxmesh ps -ef | grep bitxmesh | 利用 | 管道符号导向到grep去查找特定的进程 全格式显示,利用 | 管道符号导向到grep去查找特定的进程 |
-a -u -x -e -f | 显示当前终端的所有进程信息 以用户的格式显示进程信息 显示后台进程运行的参数 显示所有进程全格式 |
kill 进程ID kill -9 进程ID | 终止指定代号的进程- 9表示强行终止 |
netstat[-a] [-n] [-p] | 显示网络统计信息的命令,此命令显示整个系统目前的网络情况 |
-an | 按一定顺序排列输出 |
-p | 显示哪个进程在调用 |
7. 压缩和解压类
gzip 文件名 gunzip文件名 | 压缩文件(.gz文件)解压缩文件命令 |
---|---|
tar [-c] [-v] [-f] [-z] [-x] 文件名 | 压缩文件(并打包)压缩后的文件格式.tar.gz . |
-c:产生.tar打包文件 -x:解包.tar文件 -v:显示详细信息 -f:指定压缩后的文件名 | |
tar --cvf 打包文件名.tar 文件1 文件2 tar --xvf 打包文件名.tar tar --zcvf 打包文件名.tar.gz 文件1 文件2 tar --zxvf 打包文件.tar.gz --C 目标路径 | 打包文件不压缩 解包文件 打包压缩文件 解包文件 |
8. 性能优化类
1、如果系统效率变慢,你怎么办?(整机->内存->磁盘->CPU->IO)
a、top-查看整体机器性能:依次查看三个指标即可(cpu和内存-> 各cpu空闲率id->系统负载率load avg)
分析过程:(cpu、mem->id->load avg)
1、先查看整体cpu 与mem内存占用率,是否存在某个线程占的cpu或内存太高。
2、然后查看每个cpu具体情况(因为现在都是多核cpu,按数字1),着重查看cpu空闲率id(idle),id越大越好
3、接着查看系统负载率load average,分别是1分钟,5分钟,15分钟的系统平均负载率,load average:2.33,2.51,2.12 ,如果(a+b+c)/3>6,说明系统负载率太高。
4、如何退出,不能使用control+C,而是使用按键q即可
5、低配版查看整机性能:uptime,系统负载性能
b、查看内存信息 free -m
free -m(以MB字节查看内存信息)
c、查看磁盘信息 df -h
d、查看包含但不限于CPU也有内存 vmstat -n 2 3
e、查看磁盘IO信息 iostat -xdk 2 3
util若长期大于80%,说明sql语句需要调优