一、Linux基础命令
【基础】
tab补全
chtrl+c停止进程
绝对路径: 以 / 开头,从根目录下开始寻找路径
相对路径: 不以 / 开头,从当前目录下开始寻找
1、系统管理相关命令
-
ifconfig 显示或设置网络设备的命令,我们可以用这个命令查看自己服务器的IP地址 ; eth0:对外的网址
-
ping 利用ping命令可以检查网络是否连通
-
date 显示日期 ,修改时间:date -s 时间或者日期目录操作命令
2、目录操作命令
-
pwd 显示当前路径
-
print work directory 打印当前目录 显示出当前工作目录的绝对路径
-
-
cd (change directery)切换目录
-
Change directory
-
用法:
-
~ ⚠️是用户目录
-
cd ./ 当前目录
-
cd ../ 切换到上级目录
-
cd .. 切换到上级目录 ————⚠️最后一个/可以省略
-
cd ../../ 切换到上上级目录
-
cd ../.. 切换到上上级目录 ————⚠️最后一个/可以省略
-
cd / 切换到根目录
-
cd - 切回上一个目录,返回
-
cd ~ (或只有cd )切换到当前用户主目录(home底下以用户名命名文件夹) /root目录
-
-
-
mkdir 创建目录
-
Make Directory(创建目录)
-
mkdir 目录名 可以一层层创建,不能跨目录创建,比如下图
-
mkdir 目录名 -p(parent) 可以递归跨目录创建
-
-
rmdir 删除空目录
-
Remove directory
-
用法:rmdir 目录名:会提示是否删除,按照y/n选择;
当文件里有内容时删除不了,可以用下面的rm - rf
-
也可用:rm -rf 目录名—— r递归 f强制 recursion——递归
-
3、文件相关命令
3.1 编辑
vi / vim 是linux下常用的、功能强大的文本编辑器 vim = Vi IMproved(改进)
-
按键盘i进入编辑状态
-
退出编辑按ESC键,
-
退出方法不保存退出: :q!
-
保存退出: :wq
-
输入/,进入搜索,输入你需要搜索的文字,按enter
-
输入 set nu,显示每一行的行数
-
按键盘G,可以直接定位到最末尾
3.2 复制
-
cp 复制命令 cp 源file 目标file
-
用法:cp [选项]源文件名或目录 目标地址
-
-R/r (文件夹操作)拷贝目录及目录下所有目录和文件
-
cp a.txt b.txt 将a文件复制,且另命名为b文件(目录名)
-
cp -r a.txt b.txt 文件夹操作
-
-
mv 移动命令 原文件会删除,移动到新的位置
-
用法:mv 源文件名或目录 目标目录
-
mv a.txt ../ 将a文件移动到上级目录(将一个文件移动到另一个目录没有重命名)
-
mv a.txt ../b.txt 将a文件移动到上一级并改名为b文件(将一个文件移动到另一个目录并重命名)
-
3.3 查找
-
find 查找文件 是在目录中搜索文件
-
用法:find [路径] [选项]
-
常用选项有:可以结合通配符
-
find . -name "*.log" 在当前目录(.)查找以.log结尾的文件——find 搜索某个文件要用双引号
-
find / -name log 在根目录查找log命名的目录
-
-
grep在指定文件中查找字符(串)并打印该行;过滤,经常跟管道符号一起出现
-
用法:grep 字符串 文件名
-
grep band file ——在file文件中找寻band字符串,可加" "也可不加
-
-n:显示行号——grep -n band file。显示匹配行的行号
-
-v:显示不包含匹配文本的所有行。反向查找,只打印不匹配的行
-
-
grep是查找匹配条件的行,find是搜索匹配条件的文件
3.4 查看
-
ls 查看目录及文件 List files
-
用法:ls [选项]路径(若没有路径则显示当前目录的内容)
-
-a 显示所有文件 ,会把隐藏文件都展示出来,linux中的隐藏文件:.开头的文件
-
-l 显示文件属性 ,简写ll
-
-al
-
ll 罗列出当前文件或目录的详细信息,含有时间、读写权限、大小、时间等信息,像Windows显示的详细信息。 ll是“ls -l"的别名。 可以理解为 ll 和 ls -l 的功能是相同的。
-
-
cat 显示文本文件内容 Concatenate 连接
-
用法:cat 文件名
-
-
head 查看前几行
-
用法: head -n 5 文件名
-
-
tail 从指定点开始将文件写到标准输出. tail 命令可用于查看文件的内容
-
使用tail命令的-f选项可以方便的查阅正在改变的日志文件, f 实时刷新
-
-n<行数> 显示文件的尾部 n 行内容
-
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新
-
tail -n 5 文件名 查看后几行
-
tail -f error.log 不断刷新,看到最新内容 文件的最后 10 行
-
tail -n 100 文件名 后一百行 n可以省略
-
tail -200f 文件名 显示最新的200行 并一直等待刷新
-
tail a.txt ——默认显示最后 10 行
-
tail -f a.txt ——此命令显示a.txt文件的最后 10 行。当将某些行添加至 a.txt文件时,tail 命令会继续显示这些行。 显示一直继续,直到按下(Ctrl-C)组合键停止显示。
-
-
4、系统资源查询命令
-
ps(process status)查看进程(显示当前进程的状态,类似于 windows 的任务管理器)
-
-a —— 显示所有进程信息
-
-ef 显示所有进程更详细信息,并显示启动进程的命令
- Uid:用户ID, PID:进程id, PPID:父进程,C:进程cpu占用率,Stime:进程从启动到现在的时间,
TTY:终端号,CMD:命令名称和参数
-
ps -ef | grep java
-
-
netstat查看网络状况 (net status的简写)
- netstat -apn 查看所有端口
- an,按一定顺序排列输出
- p,表示显示哪个进程在调用
- netstat -apn | grep 8080——查看8080被什么占用
-
top 用于实时显示进程 的动态
-
top -p PID —— 显示指定pid进程的信息
-
按键 q 退出进程信息显示
-
-
top和ps
-
ps命令看到的只是命令执行瞬间的进程信息,而top可以持续的监视。
-
ps只是查看进程,而top还可以监视系统性能,如平均负载,cpu和内存的消耗。 另外top还可以操作进程,如改变优先级(命令r)和关闭进程(命令k)
-
ps主要是查看进程的,关注点在于查看需要查看的进程。
而top主要看cpu,内存使用情况,及占用资源最多的进程由高到低排序,关注点在于资源占用情况
-
5、管道命令
管道使用 “|”符号,并且在命令之间建立管道,将前面命令的输出作为后面命令的输入如,
ll | grep abc:管道前面的命令显示当前目录下的文件,后面从列出的文件名中寻找含有abc字符串的文件或者目录
工作常见情况:杀死服务进程(比如杀死tomcat进程)
通过命令查找tomcat进程:ps -ef | grep tomcat
杀掉此进程:kill -9 pid
6、权限赋予命令
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组:
- 把文件的权限改为777 —— chmod -R 777 a.txt
- 比如:755 -->其他用户拥有可读可执行的权限
- 读 写 执行
-
r=4,w=2,x=1
7、压缩&解压命令
-
tar( Tape archive 解压文件)
将文件压缩成.tar.gz / .tar格式 用tar命令,使用-z调用gzip
-
压缩 tar -czvf test.tar.gz test
-
解压 tar -xzvf test.tar.gz
-
命令参数详解:
-
-c 建立归档/压缩. create : 创建
-
-x 解归档/解压. exclude 解除
-
-z 有gzip属性的压缩文件
-
-v 显示所有过程
-
-f 使用档案名字,必须项,是最后一个参数,接文件名
-
-
zip
-
将文件压缩成.zip格式用zip命令
-
压缩zip –r -y test.zip test/
-
解压unzip test.zip
-
如果unzip命令没有的话,通过下面的指令去安装yum -y install unzip
-
8、linux三剑客 grep sed awk
-
grep 适合单纯的查找或匹配文本
-
sed 适合编辑匹配到的文本 -i参数可以修改原文件,set命令里面还嵌套“增删改查”命令,一般查还是用grep,增删改用sed
-
awk 适合格式化文本,对文本进行较复杂格式处理 表格 换行 调整行和列
二、常用
1、查看端口号的两种指令:
-
netstat –tunlp|grep 端口号
-
lsof -i : 端口号 ——可以获得所有在指定端口号上打开的文件
2、查询进程的指令
-
ps -ef |grep 进程关键字
-
top -p 进程——查看内存. 用于实时显示进程 的动态
3、动态查看日志
1、先切换到:cd usr/local/tomcat5/logs
2、tail -f catalina.out
3、这样运行时就可以实时查看运行日志了
4、linux上面排查某个端口号是否被占用:
-
netstat -anp |grep 端口号,在输出结果中看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。
5、磁盘满了怎么处理
-
df -h 查看是哪个挂在目录满了,常常是根目录/占满
-
快速定位一下应用日志大小情况,比如tomcat日志,应用系统自己的日志等。
-
如果能直观地看到日志文件过大,则酌情进行删除。有时候删除日志文件之后再df -h查看空间依然被占满,继续排查。
lsof file_name 查看文件占用进程情况,如果删除的日志正在被某个进程占用,则必须重启或者kill掉进程。
4.如果不能直观地排除出是某个日志多大的原因,就需要看一下指定目录下的文件和子目录大小情况,使用du命令。