个人常用Linux命令

31 篇文章 0 订阅
14 篇文章 0 订阅

来自 linux命令学习-2023-8-1 153913.md

1、切换目录 cd

//切换目录 cd  change directory
cd 目录名
cd .. 返回上一级目录
pwd显示当前所处目录

cd  绝对路径
cd ~ 表示一个用户的home目录
cd - 表示上一次访问的目录
cd / 表示进入根目录下


//新建目录/data,并且进入/data目录,编辑uwsgi.ini文件
mkdir /data&&cd /data &&vim uwsgi.ini

安装vim: yum -y install vim*

[root@localhost ~]# vim /etc/rc.d/rc.local
-bash: vim: command not found
//查看系统是否安装完整vim,如果正常安装肯定不止一行
rpm -qa|grep vim

root@localhost ~]# rpm -qa|grep vim
vim-minimal-7.4.629-7.el7.x86_64

//安装vim所有相关的包
 yum -y install vim*

2、查看文件内容 cat

//查看文件内容  cat
cat 文件名

//带行号显示文件内容
cat -n 文件名

//只统计文本内容带行号显示文本内容(空行不会被带行号和被统计)
cat -b 文件名


//将多个空行合并成一个空行显示文本内容
cat -s 文件名

//在每一行末尾增加一个$符号,以此来表示此行结束,$也可以视为行结束符
cat -E 文件名  


//linux中tab键和空格键如何区分
//会将tab键转换为一个倒三角和一个大写的I
cat -T 文件名 

//-A参数同时实现-E和-T两个参数的作用
cat -A 文件名


//同时查看多个文件的内容
cat 文件名1  文件名2

3、删除文件或目录 rm

//删除文件 rm remove
rm 文件名

//-r表示递归删除这个目录以及这个目录下的所有文件
rm -r 目录名



//-i表示删除时给出提示,是不是确定要删除,防止误删
//确定的话,输入y或者yes,不确定的话输入n或者no。
rm -i -r 目录名




//rm 命令总结 2023-8-1 19:05:20
rm -d  删除空目录
rm -r  递归删除子目录及其下所有文件
rm -i  删除前询问
rm -f  强制删除 

//删除目录下所有文件
rm -rf 目录名
rm -rf /etc/yum.repos.d/*

//将/etc/yum.repos.d下所有文件(用*代替),复制到/yum.repos.d-backup2023915目录下
cp -r /etc/yum.repos.d/*  /etc/yum.repos.d-backup2023915

4、复制文件命令 cp

 //复制文件
 //复制完成后使用ll等命令查看目录下的文件内容
 cp  原文件名  目标文件名
 如:cp test.txt  textcopy.txt

 //复制并打印信息
 cp -v 文件名  目录名
 //把test.ext文件复制到复制到testdir目录下,并打印信息
 如:cp -v test.txt testdir

 //复制目录

 //参数-r
 //复制tesrdir目录并改名为testdir2
cp -r testdir testdir2

//复制前询问是否覆盖复制目标目录下已存在的同名文件
//testdir目录下已经有一个testfile.txt文件。
//n或no表示不overwrite覆盖,输入y或yes就会把原来的文件覆盖掉
cp -i testfile.txt testdir


//cp 命令总结 2023-8-1 19:05:32
cp -r 复制目录
cp -i 覆盖前询问
cp -v 打印复制细节
cp -f 目标文件已存在,但是无法打开时,删除源文件后重新复制

5、压缩和解压缩命令 tar

有一个testdir的目录
//c指的是创建一个压缩文件,f指的是要创建的压缩文件的名称
tar -cf testdir.tar


//防止已经存在的testdir目录造成影响
rm -rf testdir 删除testdir命令
//解压
tar -xf testdir.tar


//使用zcf算法压缩
tar -zcf testdir.tar.gz testdir
//解压【最常用的tar命令组合参数】
tar -zxvf testdir.tar.gz 

//压缩或打包【最常用的】
tar -zcvf testdir




注意:f参数要放在最后,因为它指定打包(压缩)和解压缩 的文件名称的。其他参数位置顺序没有特殊要求。


//tar命令总结 2023-8-1 19:29:20
tar -z 使用gzip算法压缩文件
tar -x 解压文件
tar -c 压缩文件
tar -v 解压或压缩时,列出文件名
tar -f 文件名

6、创建文件夹命令 mkdir

make directory

//创建单个目录testdir
makedir testdir

//依次创建多个目录
mkdir testdir1 testdir2

//循环创建-创建目录testdir3同时创建其子目录sondir1
mkdir -p testdir3/sondir1

//v显示创建细节,因为是循环创建所以要加参数-p
mkdir -vp testdir4/sondir2/

//-m参数 创建目录指定一个权限 (使用ll命令时,前面那串字符就是权限,如drwxrwxr-x d表示目录,后面三个rwx当前用户对这个目录的权限中间三个rwx表示和当前用户同组(用户组)的用户这个目录的权限,最后三个r-x表示其他用户对这个目录的权限,所以对于新创建出来的目录只有其他用户没有w即写权限(write))。权限显示共10个字母

//设置只有当前用户testdir5目录r读,w写,x执行的权限。权限显示10个字母即drwx------

mkdir -m 700 testdir5

//700 每一个数字对应一个用户,d当前用户(3)同组用户(0)其他用户(0),表示只有当前用户读r-4写w-2执行x-1和就是7

//同组用户(0)其他用户(0)的权限和都是0

//7是读写执行权限的和。其中执行权限x的数字代码是1写权限w的数字代码是2读r的数字代码是4。 (为什么读r不是3,因为写w和执行x加起来为3,就分不清是读r的3还是写w和执行x的权限和。简单来说,这样能通过数字和拆分得来的数字来了解和分配权限,不会混淆。)1+2+4就是7。
//所以才是700

//mkdir命令总结
mkdir -p 递归创建多个目录
mkdir -m 指定文件夹权限(首字母d表示目录,后面有当前用户(3)、同组用户(3)、其他用户(3)、共10个字母,其中执行权限x的数字代码是
1,写权限w的数字代码是2,读r的数字代码是4。 (为什么读r不是3,因为写w和x加起来为3,就分不清是读r的3还是写w和执行x的权限和。
简单来说,这样能通过数字和拆分得来的数字来了解和分配权限,不会混淆。)

mkdir -v 打印创建细节

7、修改权限命令 chmod

在这里插入图片描述

change mode

首字母是d代表是个目录,是-代表是个文件。   【首字母-当前用户-同组用户-其他用户】
---x------ 则表示当前是个文件,且只有当前用户对它有且仅有执行权限。

1、给当前用户增加读写权限:chmod u+rw 文件名
使用ll可以查看文件权限

2、当前用户读写执行权限,同组用户读写权限、其他用户没有权限:chmod 760 文件名

3、解除同组其他用户的读写权限:chmod g-rw 文件名

4、解除当前用户对它的读写权限:chmod 100 文件名

【数字权限更加便利,无需指定+-,只需要计算当前文件对它具有的权限对应的数字权限是几,指定几就可以了。所以一般使用chmod 数字权限 来修改权限】

5、其他用户加写权限,chmod o+w 文件名 或 chmod 777 文件名

6、给docker目录及其下面所有文件都指定相同的权限   drwxrwxrwx  777
chmod -R 777 /docker 或chmod 777 -R /docker
docker目录里面文件权限应该是-rwxrwxrwx


//解除所有用户对此文件的的执行权限 drwxrwxrwx
//执行完后权限显示 drw-rw-rw-
chmod a-x 目录名

//-c会打印出权限变化 只会在权限发生变化的时候打印
//如果将下面命令执行第二部时会发现什么都没有打印
chmod -c a-x 目录名

//-v表示无论权限有没有发生变化,都会打印出权限变化
chmod -v a-x 目录名

8、查找文本 grep

建议:可以结合man命令,和完整的参数名来使用,这样对理解参数有帮助。
在这里插入图片描述

类似于Windows下编辑器下使用ctrl+f 查看想要的内容

//查看进程  来自 docker安装Oracle-2023-7-29 163134.md
ps -aux | grep  进程名

//在文件里查找包含hello(如hello、helloworld、timehelloworld等)的文件
grep hello 文件名

//-i表示忽略大小写,在文件里查找包含hello(如hello、helloworld、timehelloworld、HELLO、HELLOWORLD、timeHelloWORLD
grep -i hello 文件名

//-w表示精确查找,只找hello
grep -w hello 文件名



//-e表示同时查找包含hello和today的信息
grep -e hello -e today 文件名

//-n表示查找到的信息处于哪一行
grep -n hello 文件名

//反向查找,查找不包含hello的信息(区分大小写,Hello和hello不是一回事)
grep -v hello 文件名




//查找一个目录下,所有包含 hello的文件
grep -r hello testdir/

//查找哪些文件包含了我们要查找的字符
grep -lr hello testdir/

//grep -E 使用正则表达式


//查找包含hello或today的信息   和之前学的-e指定多个参数,效果相当     |是或
//-e表示同时查找包含hello和today的信息
grep -e hello -e today 文件名

grep -E 'hello|today' 文件名

9、统计工具 wc

word count

//wc 文件名
//第一个数字是行数,第二个是单词数,第三个是字节数。
wc testfile.txt

//wc -l  只计算行数

//wc -w  只计算字数,即单词数

//wc -c  只计算字节数
//wc -m  只计算字符数 【较常用于中文】
//对于英文,一个字母一个字节,所以 字节数和字符数相同
//对于汉字是一个多字节的字符,有可能三个字节或四个字节


wc -w  只计算字数
wc -l  只计算行数
wc -c  只计算字节数
wc -m  只计算字符数

10、文件查看工具 tail&head

f代表follow,n代表number。

在这里插入图片描述

//显示文件后10行内容(倒数10行)
tail 文件名

//显示倒数5行的内容
tail -n 5 文件名

//显示从第5行开始的内容
tail -n +5 文件名

tail -f 日志神器

//tail -f 持续监控过一个文本文件,把它新增的内容输出出来   【test.log日志文件】
tail -f 文件名

tail -f test.log
//日志在不断写入内容进入test.log的同时,tail -f 显示的内容也在不断的增加,达到持续监视。  【tail -f 日志神器】

tail -F 文件名

//-F 文件丢失也会持续重试,直到脚本将文件创建出来。  -f没有这样的效果
//一般日志文件都会有一个固定的大小,达到一定大小,就会把它备份下来,用一个新的文件去接收新的日志。

head 命令 从前往后默认10行内容 与tail相反

//默认前10行内容
head 文件名 

//前5行内容
head -n 5 文件名

//从头打印到倒数第5行。也就是1-10行,因为文件共15行。
head -n -5 文件名

11、netstat命令
完整写作network statistics,简写为netstat ,常用的几个参数为lntup
具体使用见我这篇文章:通过netstat命令查看Linux的端口占用

11、性能分析工具 top

top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况
在这里插入图片描述

12、树状图 tree

tree命令是一种显示递归目录列表命令,可以以树状图的形式,列出一个目录下所有文件内容。

//install或yum安装tree命令

//Ubuntu下安装
apt get-intall tree 

//Fedora和RedHat以及CentOS下安装
//中间输入y,表示同意安装
yum install tree 

或者直接
yum install tree  -y

在这里插入图片描述

13、磁盘空间占用情况 df

linux中df命令,是用来检查linux服务器的文件系统磁盘空间占用情况-h 表示以方便阅读方式显示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14、ps

//查看启动的nginx进程
ps -ef | grep nginx

来自我这篇文章:通过netstat命令查看Linux的端口占用

(Java相关)
netstat -tlunp | grep java:查看启动的进程中是否有名称中带有java的,会显示其PID值(进程ID)
ps -p PID值 -f:例如ps -p 18391 -f,就是显示哪个程序使用了java,一般为java -jar命令,例如java -jar testdemo-0\.0\.1-SNAP.jar
ps -p PID值 -ef:显示的更加详细。
find . -name "testdemo-0\.0\.1-SNAP*" :查询"testdemo-0.0.1-SNAP*"文件的位置,*为通配符;
\.表示转义为.,所以,find . -name "demo-0\.0\.1-SNAP*"就是find . -name "demo-0.0.1-SNAP*"
相关CentOS: $‘\r‘: command not found
Windows11与CentOS7下配置与检测JDK与Maven环境变量-安装jdk-8u371-linux-x64.tar.gz

15、tcpdump

16、wet 下载

//-bash: wget: command not found
//Linux中提示-bash: wget: command not found的解决方法

//CentOS系统安装wget:
yum install wget -y

//Debian和Ubuntu系统安装get:
apt-get install -y wget
//浏览器中直接点击下载nginx-1.24.0.tar.gz,使用xftp等软件上传到Linux服务器指定位置
//或者,直接复制tar包链接(在Windows中右击复制tar包下载链接),在Linux服务器指定位置使用下面的命令:
wget https://nginx.org/download/nginx-1.24.0.tar.gz

17、find 查找

// 从根目录开始找nginx.conf
find / -name nginx.conf

[root@freedomdjc local]# find / -name nginx.conf
/var/lib/docker/overlay2/70c0652799a9d95fb4ee7e52e35e0f3b2ea2e786264bbbf29fbfedc16ac3acb2/diff/etc/nginx/nginx.conf
/usr/local/nginx-1.24.0/conf/nginx.conf
/usr/local/nginx1.24.0/conf/nginx.conf
/opt/docker-compose/ruoyicloudplus/docker/nginx/conf/nginx.conf
/docker/nginx/conf/nginx.conf
[root@freedomdjc local]#

来自我这篇文章:通过netstat命令查看Linux的端口占用

(Java相关)
netstat -tlunp | grep java:查看启动的进程中是否有名称中带有java的,会显示其PID值(进程ID)
ps -p PID值 -f:例如ps -p 18391 -f,就是显示哪个程序使用了java,一般为java -jar命令,例如java -jar testdemo-0\.0\.1-SNAP.jar
ps -p PID值 -ef:显示的更加详细。
find . -name "testdemo-0\.0\.1-SNAP*" :查询"testdemo-0.0.1-SNAP*"文件的位置,*为通配符;
\.表示转义为.,所以,find . -name "demo-0\.0\.1-SNAP*"就是find . -name "demo-0.0.1-SNAP*"
相关CentOS: $‘\r‘: command not found
Windows11与CentOS7下配置与检测JDK与Maven环境变量-安装jdk-8u371-linux-x64.tar.gz

18、常用命令备份

使用到了grep命令

//查看镜像
//此处使用了grep查找镜像中带有demo的名称
docker images | grep demo

//查看启动日志
//此处使用了tail命令,显示demo中后300行的内容,并且日志增加,显示增加
//tail -f 持续监控过一个文本文件,把它新增的内容输出出来  
docker logs --tail 300 -f demo

//启动成功查看映射端口是否开启
//grep查找8888
netstat -nplt | grep 8888

#注意:确保/docker目录和其子目录具有写权限,如果再次出现权限问题,就再执行一次此命令,分配权限
chmod -R 777 /docker

使用到了netstat命令grep命令:

//查看启动的线程
netstat -tulnp  或 netstat -lntup 

//也是 查看启动的线程
netstat -lntup 


//查看启动的线程中是否有名称中带有nginx的
netstat -lntup | grep nginx  
netstat -lntup | grep nginx


//查看启动的线程中是否有名称中带有docker的
netstat -lntup | grep docker
netstat -lntup | grep docker



//4-查看端口占用,根据端口号81,获取PID(进程ID)
netstat -ano | findstr "端口号"
netstat -ano | findstr "81"或netstat -ano | findstr 81

centos7.9中执行情况

[root@localhost ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN      2324/docker-proxy   
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      868/beam.smp        
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      868/beam.smp        
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      1566/epmd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      869/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      867/cupsd           
tcp6       0      0 :::5672                 :::*                    LISTEN      868/beam.smp        
tcp6       0      0 :::1521                 :::*                    LISTEN      2329/docker-proxy   
tcp6       0      0 :::4369                 :::*                    LISTEN      1566/epmd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      867/cupsd           
tcp6       0      0 :::22                   :::*                    LISTEN      869/sshd: /usr/sbin 
udp        0      0 0.0.0.0:41722           0.0.0.0:*                           763/avahi-daemon: r 
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           763/avahi-daemon: r 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           793/chronyd         
udp6       0      0 :::5353                 :::*                                763/avahi-daemon: r 
udp6       0      0 :::59094                :::*                                763/avahi-daemon: r 
udp6       0      0 ::1:323                 :::*                                793/chronyd         
[root@localhost ~]# netstat -lntup 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN      2324/docker-proxy   
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      868/beam.smp        
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      868/beam.smp        
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      1566/epmd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      869/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      867/cupsd           
tcp6       0      0 :::5672                 :::*                    LISTEN      868/beam.smp        
tcp6       0      0 :::1521                 :::*                    LISTEN      2329/docker-proxy   
tcp6       0      0 :::4369                 :::*                    LISTEN      1566/epmd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      867/cupsd           
tcp6       0      0 :::22                   :::*                    LISTEN      869/sshd: /usr/sbin 
udp        0      0 0.0.0.0:41722           0.0.0.0:*                           763/avahi-daemon: r 
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           763/avahi-daemon: r 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           793/chronyd         
udp6       0      0 :::5353                 :::*                                763/avahi-daemon: r 
udp6       0      0 :::59094                :::*                                763/avahi-daemon: r 
udp6       0      0 ::1:323                 :::*                                793/chronyd         
[root@localhost ~]# netstat -lntup | grep nginx   //查看启动的线程中是否有名称中带有nginx的
[root@localhost ~]# netstat -lntup | grep docker  //查看启动的线程中是否有名称中带有docker的
tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN      2324/docker-proxy   
tcp6       0      0 :::1521                 :::*                    LISTEN      2329/docker-proxy   
[root@localhost ~]# 

rpm -qa|grep vim

[root@localhost ~]# vim /etc/rc.d/rc.local
-bash: vim: command not found
//查看系统是否安装完整vim,如果正常安装肯定不止一行
rpm -qa|grep vim

root@localhost ~]# rpm -qa|grep vim
vim-minimal-7.4.629-7.el7.x86_64

//安装vim所有相关的包
 yum -y install vim*

rpm -qa | grep java
来自Windows11与CentOS7下配置与检测JDK与Maven环境变量
springboot-jenkins-gitlab自动化部署1.md

//1、卸载现有环境  查询java相关程序
//.noarch文件可以不用管,卸载其他的
rpm -qa | grep java

[root@freedomdjc jvm]# rpm -qa | grep java
tzdata-java-2023c-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.382.b05-1.el7_9.x86_64
java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64
javapackages-tools-3.4.1-11.el7.noarch
[root@freedomdjc jvm]# 

.noarch文件可以不用管,卸载其他的



//2-卸载
rpm -e --nodeps  java-1.8.0-openjdk-headless-1.8.0.382.b05-1.el7_9.x86_64
rpm -e --nodeps  java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64



//3-卸载后检测
[root@freedomdjc jvm]# java -version
-bash: /usr/bin/java: No such file or directory
[root@freedomdjc jvm]# 

查看系统默认安装的python的位置等: whereis python

2023-11-1 23:37:26 来自2023-10-29 163846.txt
//新建目录/data,并且进入/data目录,编辑uwsgi.ini文件
mkdir /data&&cd /data &&vim uwsgi.ini
mkdir /data&&cd /data &&vim uwsgi.ini
mkdir /data&&cd /data &&vim uwsgi.ini
mkdir /data&&cd /data &&vim uwsgi.ini




//移动 /root/20231029/GetServerInfo.py 文件到/data目录中。(/root/20231029/GetServerInfo.py已经不存在了)
mv /root/20231029/GetServerInfo.py /data



//查看系统默认安装的python的位置
[root@iZbp1fnrewknornmqkhqpiZ ~]# whereis python
python: /usr/bin/python3.6m-x86_64-config /usr/bin/python3.6-config /usr/bin/python3.6m /usr/bin/python /usr/bin/python3.6m-config /usr/bin/python2.7 /usr/bin/python3.6 /usr/lib/python2.7 /usr/lib/python3.6 /usr/lib64/python2.7 /usr/lib64/python3.6 /etc/python /usr/local/lib/python3.6 /usr/include/python3.6m /usr/include/python2.7 /usr/share/man/man1/python.1.gz
[root@iZbp1fnrewknornmqkhqpiZ ~]# 



//查看python在/usr/bin目录中的内容
[root@iZbp1fnrewknornmqkhqpiZ bin]# cd /usr/bin
[root@iZbp1fnrewknornmqkhqpiZ bin]# ll python*
lrwxrwxrwx 1 root root     7 Jul 18 17:31 python -> python2
lrwxrwxrwx 1 root root     9 Jul 18 17:31 python2 -> python2.7
-rwxr-xr-x 1 root root  7144 Jun 20 19:37 python2.7
lrwxrwxrwx 1 root root     9 Jul 18 17:29 python3 -> python3.6
-rwxr-xr-x 2 root root 11336 Jun 20 19:55 python3.6
lrwxrwxrwx 1 root root    17 Jul 18 17:29 python3.6-config -> python3.6m-config
-rwxr-xr-x 2 root root 11336 Jun 20 19:55 python3.6m
-rwxr-xr-x 1 root root   173 Jun 20 19:54 python3.6m-config
-rwxr-xr-x 1 root root  3403 Jun 20 19:39 python3.6m-x86_64-config
lrwxrwxrwx 1 root root    16 Jul 18 17:29 python3-config -> python3.6-config
[root@iZbp1fnrewknornmqkhqpiZ bin]# 

2023-11-7 19:33:18 整理 1、切换目录 cd17、常用命令备份

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值