Linux实战命令汇总

文章目录

  • [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语句需要调优

相关推荐
科技资讯早知道5 分钟前
java计算机毕设课设—坦克大战游戏
java·开发语言·游戏·毕业设计·课程设计·毕设
小O_好好学18 分钟前
CentOS 7文件系统
linux·运维·centos
john_hjy1 小时前
11. 异步编程
运维·服务器·javascript
x晕x1 小时前
Linux dlsym符号查找疑惑分析
linux·运维·服务器
小比卡丘1 小时前
C语言进阶版第17课—自定义类型:联合和枚举
android·java·c语言
xmh-sxh-13141 小时前
java 数据存储方式
java
Dylanioucn1 小时前
【分布式微服务云原生】掌握分布式缓存:Redis与Memcached的深入解析与实战指南
分布式·缓存·云原生
liu_chunhai1 小时前
设计模式(3)builder
java·开发语言·设计模式
活跃的煤矿打工人2 小时前
【星海saul随笔】Ubuntu基础知识
linux·运维·ubuntu
later_rql2 小时前
k8s-集群部署1
云原生·容器·kubernetes