常用Linux命令

发布时间 2023-03-22 21:16:30作者: Witheredead

常识

图形界面可以右键打开Terminal

关于路径

路径可以分为两种:相对路径、绝对路径。
相对路径:相对首先得有一个参照物(一般就是当前的工作路径);
** 相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“…/”【上一级目录下】。**
绝对路径:绝对路径不需要参照物,直接从根“/”开始寻找对应路径;

文件权限说明


文件的权限包括读、写、执行。
drwxr-x--- 该权限分为4个部分d、rwx、r-x、---。
d:表示文件类型;
rwx:表示文件所有者的对该文件所拥有的权限;
r-x:表示文件所属组对该文件所拥有的权限;
---:表示其他用户对该文件所拥有的权限。
下面表格详细的表述了各个部分意义

读(read),写(write),执行r(recute)简写即为(r,w,x),亦可用数字来(4,2,1)表示
举例:
如果某文件权限为7则代表可读(4)、可写(2)、可执行(1),即(4+2+1=7).
若权限为6(4+2)则代表可读(4)、可写(2)。
权限为5(4+1)代表可读(4)和可执行(1).
权限为3(2+1)代表可写(2)和可执行(1)。
下图中文件所有者(属主)为root,所有组(属组)为root,文件名为install.log。

第一个减号“-”代表的是文件类型:
-:普通文件,d:目录文件,l:链接文件,b:设备文件,c:字符设备文件,p:管道文件
文件的权限为rw-r-r-也就是分别表示所有者(属主)有读写权限,所有组(属组)有读权限,其余人也仅有读权限。
如何对文件进行授权?
可以通过命令chmod , 该命令用于改变linux系统文件或目录的访问权限。
此处通过数字方式举例:
chmod -R 755
该命令表示文件所有者有读写执行权限(4+2+1)、文件所属组有读执行权限(4+1)、其他人有读执行权限(4+1)。
-R 表示命令的可选项,请参考下面说明
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本

查询环境yum包名称

yum whatprovides反查询命令在什么包中
yum provides反查询文件在什么包中

ls指令

#ls

含义:列出当前工作目录下的所有文件/文件夹的名称
#ls (list)

#ls 路径

含义:列出指定路径下的所有文件/文件夹的名称

#ls 选项 路径

含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。常见的语法:
ls -l 可以简写成 ll

ls -l 路径

ls -la 路径

选项解释:
-l:表示list,表示以详细列表的形式进行展示
** -a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)**
上述列表中的第一列字符表示文档的类型,其中“-”表示改行对应的文档类型为文件,“d”表示文档类型为文件夹。
ls -l或者ll

ls -la或ll -a

实际使用

#ll -rt

  • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
  • -d 只列出目录(不递归列出目录内的文件)。
  • -l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。
  • -r 倒序显示文件和目录。
  • -t 将按照修改时间排序,最新的文件在最前面。
  • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
  • -R 递归显示目录中的所有文件和子目录。

#ll -art

ls文件颜色

linux命令ls会显示出文件的颜色, 系统约定的默认颜色含义如下:

白色:表示普通文件

蓝色:表示目录

绿色:表示可执行文件

红色:表示压缩文件

浅蓝色:链接文件

红色闪烁:表示链接的文件有问题

黄色:表示设备文件

灰色:表示其他文件

pwd指令

**#pwd **

(print working directory,打印当前工作目录)

cd指令

命令:#cd (change directory,改变目录)
作用:用于切换当前的工作目录的
语法:#cd 路径

#cd /:表示切换到根目录

#cd ~:表示切换到当前用户的home目录

root用户的home就是/root

mkdir指令

指令:mkdir (make directory,创建目录)

#mkdir 路径

文件夹名称

包含名称的一个完整路径

#mkdir -p 路径

含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错

**#mkdir 路径1 路径2 路径3 …. **

含义:表示一次性创建多个目录

tree指令

#yum install tree -y

https://blog.csdn.net/wangqingchuan92/article/details/113974588

touch指令

指令:touch 作用:创建文件

#touch 文件路径

【路径可以是直接的文件名也可以是路径】 案例:使用touch来在当前路径下创建一个文件,命名为test.txt

案例:使用touch来同时创建多个文件

案例:使用touch来在/usr目录中创建文件test.text

cp指令

指令:cp (copy,复制)
作用:复制文件/文件夹到指定的位置

#cp 被复制的文档路径文档被复制到的路径

案例:使用cp命令来复制一个文件

注意:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。

#cp -r 文件夹

案例:使用cp命令来复制一个文件夹

注意:当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,否则目录将被忽略

mv指令

指令:mv (move,移动,剪切)
作用:移动文档到新的位置

#mv 需要移动的文档路径 需要保存的位置路径

确认:移动之后原始的文件还在不在原来的位置?原始文件是不在原始位置的 案例:使用mv命令移动一个文件

案例:使用mv命令移动一个文件夹

#mv 文件名1 文件名2

文件名1改为2,重命名
文件

文件夹

rm指令

指令:rm (remove,移除、删除) 作用:移除/删除文档 语法:#rm 选项需要移除的文档路径 选项: -f:force,强制删除,不提示是否删除 -r:表示递归

#rm 文件名/文件夹

#rm -rf 文件名/文件夹

#rm -rf *

其中称之为通配符,意思表示任意的字符,Linux,则表示只要文件以Linux开头,后续字符则不管
aa表示aa开头的文件,bb表示bb开头的文件,适配于正则表达式

>生成日志

一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
">":覆盖输出,会覆盖掉原先的文件内容
">>":追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

#正常执行的指令 > / >> 文件的路径

注意:文件可以不存在,不存在则新建
案例:使用覆盖重定向,保存ls -la 的执行结果,保存到当前目录下的ls.txt


cat指令

作用1:cat有直接打开一个文件的功能

#cat 文件的路径


作用2:cat还可以对文件进行合并

#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径


合并2个文件,并存到一个文件中【配合输出重定向>使用】

#cat /etc/centos-release 查看当前系统发行版本信息

#cat /proc/version查看当前系统版本信息

df指令

作用:查看磁盘的空间

**#df -h **

-h表示以可读性较高的形式展示大小

free指令

作用:查看内存使用情况

**#free -h **

-h表示以gb为单位查看
-m表示以mb为单位查看

head指令(查看一个文件的前n行)

作用:查看一个文件的前n行,如果不指定n,则默认显示前10行

#head -n 文件路径 【n表示数字】

tail指令(查看一个文件的未n行)

作用1:查看一个文件的未n行,如果n不指定默认显示后10行

#tail -n 文件的路径 n同样表示数字


作用2:可以通过tail指令来查看一个文件的动态变化内容【变化的内容不能是用户手动增加的

#tail -f 文件路径

例:tail -100f xxx.log 该命令一般用于查看系统的日志比较多

清空屏幕

ctrl + u

清空当前输入快捷键

clear

实质上是翻页,只要往上翻还是能看到之前的记录

ctrl + L

等价于 clear

reset

会清除当前的屏,效率较慢,实质是刷新终端屏幕

printf "\033c"

在linux上实测效果跟clear一样

printf "\033[2J\033[3J\033[1;1H"

会清除屏幕和历史,清除后就会发现翻不上去了,所有历史都被清了

建议可以使用 alias 来给个别名,这样只要输入 cls 就能清除了屏幕和历史了

alias cls='printf "\033[2J\033[3J\033[1;1H"'

不过 alias命令的作用只能用于当前登入的操作。如果需要每次重启都使用可以添加到 /etc/rc.local 文件中
每次会话都生效的话得添加到 /root/.bashrc 文件中

less指令(查看文件,以较少的内容进行输出)

作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多

#less 需要查看的文件路径

在退出的只需要按下q键即可。
查看系统日志的时候可以 less xxx.log,进入后可以通过输入斜杆/加上要检索的日志,可以快速定位要查看的日志位置。

wc指令(统计文件内容信息)

作用:统计文件内容信息(包含行数、单词数、字节数)

#wc -lwc 需要统计的文件路径

-l:表示lines,行数
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes,字节数

管道

管道符:|

作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
①过滤案例(100%使用):需要通过管道查询出根目录下包含“y”字母的文档名称。

ls / | grep y

针对上面这个命令说明:
①以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入;
②grep指令:主要用于过滤
②特殊用法案例:通过管道的操作方法来实现less的等价效果(了解)
之前通过less查看一个文件,可以#less 路径
现在通过管道还可以这么:#cat 路径|less
③扩展处理:请使用学过的命令,来统计某个目录下的文档的总个数?
答:#ls / | wc -l

hostname指令

作用:操作服务器的主机名读取、设置) 语法1:#hostname 含义:表示输出完整的主机名 语法2:#hostname -f 含义:表示输出当前主机名中的FQDN(全限定域名

临时生效设置

1、查看当前系统主机名

[root@localhost ~]# hostname localhost.localdomain

2、临时修改主机名 hostname 主机名;这种方式只能临时修改主机名,电脑只要重启就会失效。

永久生效设置

1、centos7中可能通过hostnamectl命令来直接查看和更改主机名。
2、使用hostnamectl来重新设置主机名是永久生效的即使是服务器重启也生效。
语法:
示例:

id指令(查看一个用户的一些基本信息)

作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。 语法1:#id 默认显示当前执行该命令的用户的基本信息 语法2:#id 用户名 显示指定用户的基本信息

whoami指令(我是谁)

作用:“我是谁?”显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。 语法:#whoami

ps -ef指令(查看服务器的进程信息)

指令:ps 作用:主要是查看服务器的进程信息 选项含义: -e:等价于“-A”,表示列出全部的进程 -f:显示全部的列(显示全字段) 执行结果:

列的含义:
UID:该进程执行的用户id;
PID:进程id;
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);
C:Cpu的占用率,其形式是百分数;
STIME:进行的启动时间;
TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径;
案例:(100%使用的命令)在ps的结果中过滤出想要查看的进程状态

#ps -ef|grep "进程名称"

再例如查看nginx的进程:

常用1:ps -auwx

  • -aux 显示所有包含其他使用者的进程
  • -w 显示加宽可以显示较多的资讯

常用2:ps查看指定用户下的所有进程

  • ps -efH | grep username # 查看某一用户下的所有进程
  • ps -aux | grep username # 查看某一用户下的所有进程

grep 搜索功能

top指令(查看服务器的进程占的资源)

作用:查看服务器的进程占的资源(100%使用)
语法:
进入命令:#top (动态显示)
退出命令:按下q键
输出的结果:

表头含义:
PID:进程id;
USER:该进程对应的用户;
PR:优先级;
VIRT:虚拟内存;
RES:常驻内存;
SHR:共享内存;
** 计算一个进程实际使用的内存= 常驻内存(RES)- 共享内存(SHR)**
S:表示进程的状态status(sleeping,其中S表示睡眠,R表示运行);
%CPU:表示CPU的占用百分比;
%MEM:表示内存的占用百分比;
TIME+:执行的时间;
COMMAND:进程的名称或者路径;
在运行top的时候,可以按下方便的快捷键:
M:表示将结果按照内存(MEM)从高到低进行降序排列;
P:表示将结果按照CPU使用率从高到低进行降序排列;
1:当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示显示各个cpu的详细信息;

du -sh指令(查看目录的真实大小)

作用:查看目录的真实大小 语法:#du -sh 目录路径 选项含义: -s:summaries,只显示汇总的大小 -h:表示以高可读性的形式进行显示 案例:统计"/usr"目录的实际大小

案例:统计“/etc”目录实际大小

常用:du -sh * | sort -rn

  1. du -sh /usr/* | sort -rn 这是按兆(M)来排序
  2. 选出排在前面的10个 du -s /usr/* | sort -rn | head
  3. 选出排在后面的10个 du -s /usr/* | sort -rn | tail

find指令(查找文件)

作用:用于查找文件(其参数有55个之多)
语法:#find 路径范围选项选项的值
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索
文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹
案例:使用find来搜索test.txt
案例:搜索/usr目录下所有的txt后缀文件

find / -name

案例:使用find来搜索/usr/aaa/目录下所有的文件

find /usr/aaa -type f

案例:使用find来搜索/usr/src/目录下所有的文件夹

find /usr/src -type d

kill指令(杀死进程)

作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候) 语法:#kill 进程PID (语法需要配合ps一起使用) 案例:需要kill掉Apache的进程

与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall 语法:#killall 进程名称

ifconfig指令(操作网卡相关的指令)

作用:用于操作网卡相关的指令。 简单语法:#ifconfig (获取网卡信息) Eth0表示Linux中的一个网卡,ens192是其名称。Lo(loop,本地回还网卡,其ip地址一般都是127.0.0.1)也是一个网卡名称。

reboot指令(重启)

作用:重新启动计算机
语法1:#reboot 重启
语法2:#reboot -w 模拟重启,但是不重启(只写关机与开机的日志信息)

shutdown指令(关机)

作用:关机 (慎用)
语法1:#shutdown -h now “关机提示” 或者 #shutdown -h 15:25 “关机提示”
案例:设置Linux系统关机时间在12:00

如果想要取消关机计划的话,则可以按照以下方式去尝试:①针对于centos7.x之前的版本:ctrl+c②针对于centos7.x(包含)之后的版本:#shutdown -c

其他关机命令

#init 0#halt#poweroff

uptime指令(输出计算机的持续在线时间)

作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间语法:#uptime

uname指令(获取计算机操作系统相关信息)

作用:获取计算机操作系统相关信息 语法1:#uname 获取操作系统的类型 语法2:#uname -a all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)

netstat -tnlp指令(查看网络连接状态和端口使用情况)

作用:查看网络连接状态和端口使用情况

#netstat -tnlp

选项说明:

  • ** -t:表示只列出tcp协议的连接;**
  • ** -n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;**
  • ** -l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;**
  • ** -p:表示显示发起连接的进程pid和进程名称;**

man指令(手册)

作用:manual,手册(包含了Linux中全部命令手册,英文) 语法:#man 命令 (退出按下q键)
案例:通过man命令查询cp指令的用法

#man cp


一、查看软件安装路径:
whereis MySQL
回车,如果你安装好了Mysql,就会显示文件安装的地址,例如我的显示(安装地址可能会不同)
mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
可以看出来,mysql安装在这些目录里。
如果你没有安装mysql,则不会显示文件路径出来。
二、查询运行文件所在路径:
which MySQL
结果会显示:
/usr/bin/MySQL
Linux查看软件安装目录及位置4种方法
说起是3种方法,无非是Linux下的几个个命令而已,find、whereis、which、locate都可以,特别是前两个命令更加的好。

Linux文件的查找、检索与排序(find、grep、sort命令)

find命令

【命令】find 【功能】从指定路径开始向下搜索满足表达式的文件和目录 【格式】find [路径] [表达式] [操作]find命令 【命令】find 【功能】从指定路径开始向下搜索满足表达式的文件和目录 【格式】find [路径] [表达式] [操作]

-mtime(Modification time):文件内容(内容数据)修改时间
-ctime(Change time):文件属性(权限)修改时间
-atime(Access time):文件被读取的时间

+/- n的含义举例:
-mtime n:n为数字,意义为在n天之前的一天以内被修改过的文件
-mtime +n:列出n天之前(不含n天本身)被修改过的文件
-mtime -n:列出n天以内(含有n天本身)被更改过的文件-mtime(Modification time):文件内容(内容数据)修改时间
-ctime(Change time):文件属性(权限)修改时间
-atime(Access time):文件被读取的时间

实例:查找3天以内修改过的文件 命令:find -type -a -mtime -3

grep命令

【命令】grep 【功能】从指定文本文件或者标准输出中查找符合条件的字符串,默认显示其所在行的内容 【格式】grep [选项] 字符串 [文件……]

sort命令

【命令】sort 【功能】对文件进行排序与合并 【格式】sort [选项] [文件列表]

实例:把当前目录下的所有文件按文件从大到小进行排列 命令:ls -l |sort -n -r -k 5

压缩和解压

tar 命令

  • -z : 使用 gzip 来压缩和解压文件
  • -v : --verbose 详细的列出处理的文件
  • -f : --file=ARCHIVE 使用档案文件或设备,这个选项通常是必选的
  • -c : --create 创建一个新的归档(压缩包)
  • -x : 从压缩包中解出文件

rar 命令

  • a : 添加到压缩文件
  • -r : 递归处理
  • x : 以绝对路径解压文件

zip 命令

  • -r : 递归处理

&和&&, |和|| ,&> 与 >的区别

  • && 和 || 属于逻辑运算符号
  • & 和 | 属于位操作符

&&和&的区别

& 表示任务在后台执行,如要在后台运行

如:
运行 test.jar程序 ,并且置于后台执行,执行的日志重定向 到当前默认的log.txt文件中

&& 表示前一条命令执行成功时,才执行后一条命令

如:

  • &&:前面的命令返回值为0则执行后面的
  1. 相同点

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

  1. 不同点
  • &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。
  • &作为为运算时,&是按位与操作,参加运算的两个数据按照二进制位进行“与”运算。如果两个相应的二进制位都为1,那该位的结果值就是1,否则为0,即0&0=0,0&1=0,1&1=1,1&0=0。比如:3&5并不等于8,应该按位与,00000011&00000001=00000001。

|| 和 | 的区别

| 表示管道,上一条命令的输出,作为下一条命令参数(输入)

如 :

||表示上一条命令执行失败后,才执行下一条命令

如:

  • ||:前面的命令返回值不为零则执行后面的
  1. 相同点

当二者表示或的时候,二者都true则true,否则为false。

  1. 不同点
  • ||也存在短路的问题,当前者为true时,则不会判断后面的表达(与上面的&&类似)
  • |是按位或操作,参加运算的两个数据按照二进制位进行“或”运算,如果两个相应的二进制位中只要有一个为1,则该位结果就是1,即为0|1=1、1|1=1、1|0=1、0|0=0。
  • ||是逻辑或运算符,直接看意思,a||b,若a、b中有一个为真,则a||b结果为真。

~ 和 ! 的区别

  • 是一个单目运算符,用来对一个二进制位按位取反,即0变成1,1变成0,比如00001111=11110000。
  • !是逻辑非运算符,我们还是直接来看他的意思,!a的意思是:若a为真,则!为假,若a为假则!a为真。

>符号是指:将正常信息重定向

&>可以将错误信息或者普通信息都重定向输出

如:
在跟目录下根据名字来查找*.tx输入的日志放置/tmp/log.txt文件中