Linux系统常用命令

Linux系统常用命令

一、Linux系统入门

1、man命令

man 命令:查看有关命令的帮助信息

例子:man ps —查看ps命令

Name --命令的名称

SYNOPSIS --参数的大致使用方法

DESCRIPTION --介绍说明

EXAMPLES --演示(附带简单说明)

2、date命令

date命令:显示系统时间

如果想用某种格式显示系统时间

date +’%Y-%m-%d-%H-%M-%S’

设置系统时间:date -s

设定日期: date -s 20200803

设定时间: date -s 10:19:10

设定日期和时间 date -s “20200803 10:19:10”

3、查看系统版本命令

查看发行版本:

cat /etc/issue

查看内核版本:

uname -r

cat /proc/version

4、开关机命令

关机命令:

poweroff

halt

shutdown -h now

init 0

重启命令:

reboot

shutdown -r now

init6

注销命令:

exit

二、Linux文件与目录基础操作

1、cd命令

cd命令:用于目录之间的切换

例子:

cd /home 切换到home目录下

cd … 返回上一级目录

cd 进入个人主目录

cd - 返回上一次所在目录

pwd 显示当前的路径

文件名和特殊文件:Linux文件名大小写敏感(必须区分大小写)

绝对路径:从根目录开始 /home/test

相对路径: 从当前目录开始

2、ls命令

ls命令:查看文件和目录

ls -a 查看所有文件 包括隐藏文件

ls -l 以列表形式展示(也可以使用ll)

注意:ls -al = ls -a -l

使用ls -a可以看到一些比较特殊的文件

如:

. 表示当前目录

… 表示当前目录的父级目录

名称是.字符串形式的文件 表示隐藏文件

3、touch命令

touch命令:创建一个空文件

例子:touch test --创建一个叫test的空文件

touch /tmp/test

例子:在/tmp目录下创建一个文件test 前提是/tmp 目录存在

4、mkdir命令

mkdir命令:创建一个空目录(文件夹)

例子:mkdir test 创建一个叫test的空目录

mkdir -p 创建多层级的目录

例子:mkdir -p test/test1/test2 在当前目录下依层级创建test/test1/test2目录

mkdir /tmp/test

例子:在/tmp目录下创建一个子目录test 前提是/tmp 目录存在,如果不存在想要创建就要用到mkdir -p

5、rm命令

rm命令:删除文件或目录

rmdir 删除一个空目录

rm -f 强制删除一个文件,不会提示

rm -rf 强制删除一个目录以及目录中所有文件和子目录

rm -f /tmp/test 强制删除/tmp目录下的test文件

注意:其中-f 命令代表强制删除不会确认(不会提醒)

-r 命令代表递归,针对每个目录和子目录下每个文件

三、Linux文件与目录操作进阶

1、不同类型文件默认颜色

linux系统约定不同类型文件默认的颜色:

白色:表示普通文件

蓝色:表示目录

绿色:表示可执行文件

红色:表示压缩文件

浅蓝色:链接文件

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

黄色:表示设备文件

灰色:表示其它文件

2、cp命令

cp命令:用来复制文件和目录

格式:cp 原路径 目标路径

举例:

cp /var/f1 /tmp 复制/var路径下的f1文件到/tmp路径下,此时f1是文件

cp -r /var/f1 /tmp 复制/var路径下fi文件夹以及它所包含的所有子文件子文件夹到 /tmp路径下,此时f1是文件夹。

cp f1 f2 /tmp 复制f1 f2 文件到 /tmp路径下 此时f1 f2是文件

cp -r f1 f2 /tmp 复制f1 f2 文件夹以及包含的子文件到 /tmp路径下 此时f1 f2是文件夹

利用cp命令重命名:

cp test test1

把当前目录下的test文件改名为test1 如果此时已经存在了test1文件,会提示是否覆盖。

如果要针对文件夹进行重命名:

cp -r test test1

注意:如果此时test1文件夹已经存在,会直接复制到test1路径下,如果test1路径下已经复制了一个test文件夹,继续

复制,会提示是否覆盖

如果要取消文件夹每个层级的覆盖的提示要使用

cp -rf命令

3、mv命令

mv命令:移动文件或者目录

mv /home/f1 /tmp 移动f1 文件到 /tmp路径下

mv /home/dir1 /tmp 移动dir1 文件夹 到/tmp路径下

mv f1 f2 d1 /tmp 同时移动f1 f2 d1 到/tmp路径下

mv同时进行重命名:

mv f1 f2 相当于把f1移动到当前路径,名字换成f2(就相当于重命名)

mv /home/f1 /tmp/f2 把home路径下的f1 移动到tmp路径下,名字改为f2

mv时遇到同名同样会出现覆盖提示

如果覆盖的目标不是一个空的目录,无法覆盖。

4、cat命令

cat命令:查看文件中的所有内容

格式:cat 文件名

5、less命令

less命令:更加随意分页浏览文件

格式:less 文件名

k – 向上一行

j – 向下一行

Page up – 向上一页

Page down – 向下一页

q – 退出

tail -f 用来动态查询尾部行(查询日志定位问题最常用的)

6、vi/vim命令

vi/vim:以编辑的方式查看文件(三种模式:命令模式、底线模式、插入模式)

修改环境变量的配置文件:

vim /etc/profile

命令模式输入i/o/a 进入插入模式

命令模式输入:进入底线模式

底线模式和插入模式 用esc返回命令模式

命令模式:

G: 移动到文件最后一行行首

gg : 移动到文件的开头

按0或^ : 光标移动到所在行的行首

按$: 光标移动到所在行的行尾

按ctrl+f 往下翻一页

按ctrl+b 往上翻一页

dd 删除光标所在行

3dd 表示删除光标所在位置下3行,包括光标所在行

yy 复制光标所在行

p 粘贴

u 撤销操作

插入模式:

i–在当前位置编辑

a–从下一个字符编辑

o–新增一行开始编辑

底线模式:

:w 文件名(将文件另存为该名字的文件)

:q!强制退出(不保存修改内容)

:wq 保存后退出

:set number 显示行数

:set nonumber 不显示行数

/、?关键字的使用

底线模式或者命令模式中输入/或者?后面加关键字,回车,查找该关键字的记录,使用大小写N对查询结果进行上下切换

四、Linux文件与目录操作高级

1、通配符

通配符:一般用来匹配文件名

*代表任意字符

?代表一个字符

[] 匹配指定字符范围内的任意单个字符

[^] 匹配指定字符范围外的任意单个字符

举例:

g* 以g为开头的文件

b*.txt以b开头,.txt结尾的文件

data??? 以data开头,后面跟着3个字符的文件

[a,b,c]* 文件名以a或者b或者c开头的文件

[^a,b,c]* 文件名不是a或者b或者c开头的文件

2、which命令

which命令:查询某个命令的完整路径

例子:which rm 查看rm命令所在的路径

3、find命令

find命令:查找文件

格式: find 查找的路径 条件

参数说明:

-name 以名字为条件查找

-type 以文件类型为条件查找

-type f 一般文件

-type d 目录

举例:

find /temp –name “abc” 查找名字是abc

find /temp –name “abc*” 查找名字开头是abc

find /temp -name “abc*” –type f 查找名字开头是abc,且类型是文件的

4、grep命令

grep命令:文本内容搜索工具

注:一般在查文件内容中关键字使用,同时也可以针对查询结果使用。

grep “test” d* 查询所有以d为开头的文件中,包含字符串test的行

grep “test” aa bb cc 查询aa bb cc 文件中包含字符串test的行

grep “root” -r /var/log 在目录下所有子目录下的文件中搜索包含字符串root的行

grep “^test” /var/log/scp.log 在scp.log 中搜索以字符串“test”开头的行

grep参数说明:

-c:只输出匹配行的行数。

-i:不区分大小写。

-n:显示匹配行及行号。

-v:显示不包含匹配文本的所有行

-F:指明pattern非正则表达式 (等同于fgrep命令),指查找条件中的条件视作字符串,忽视正则表达式。

常用的正则:

^ 锚定行首

$ 锚定行尾

.* 匹配所有字符

例子:grep “^test.*end$” scp.log 在scp.log文件中搜索以字符串test为开头,end为结尾的行。

5、wc 命令

wc命令:统计文件内容

wc -l 统计文件的行数

wc -c 统计文件的字节数

6、du命令

du命令:查看文件和目录的磁盘使用空间

du -s:显示整个文件大小

du -h:显示分区使用情况

一般连用:du -sh

7、df命令

df命令:查看系统文件系统使用空间

8、ln命令

ln命令:文件链接

创建链接:

ln -s 源文件路径 链接路径

注意源文件路径要写全,最好写绝对路径,好让非同路径下的链接文件可以正确指向源文件。

五、Linux文件权限管理

1、文件权限

文件权限分3种,读取,写入,执行。

r,读取权限

针对文件:具有读取文件的权限

针对文件夹:能查看文件夹里面的内容,比如用ls查看目录

w,写入权限

针对文件: 具有写文件的权限

针对文件夹:可以删除和创建文件夹下面的文件

x,执行权限

针对文件: 具有执行的权限

针对目录: 能够进入该目录如cd命令,文件夹的读写权限依赖于执行权限,所以一般读写权限和执行权限绑定,

不单独管理。

2、文件的用户

文件的用户分3种拥有者,所属的组,其他用户

owner,文件的所有者

group, 文件所属的组

other,其他用户,非拥有者和组成员

all,所有用户

3、chmod命令

chmod命令:改变文件权限的命令

注意:只有文件拥有者和root用户可以使用

使用+来增加权限:

chmod u+x 文件名 给文件的拥有者增加执行权限

chmod g+wr 文件名 给文件的组成员增加读写权限

chmod o+x 文件名 给文件的其他成员增加执行权限

chmod a+wrx 文件名 给所有用户增加全部权限

chmod u+x,g+wr,o+x 文件名 同时针对不同的用户分配权限

使用-来取消权限

chmod u-wx 文件名 取消拥有者的写入和执行权限

使用=来变动权限,不管拥有者之前是什么权限,使用=相当于用目前的权限覆盖之前的权限

chmod u=rwx 文件名 给文件拥有者 读写执行的权限

使用数字来赋权

r =4

w =2

x =1

chmod 777 文件名 给文件所有用户赋予全部权限

4、chown命令

chown命令:改变文件的拥有者和组(只有root用户可以使用)

chown jack test1 把文件test1的拥有者变更为jack

chown jack:jack test1 把文件test1的拥有者变更为jack,所属组变更为jack组

5、chgrp命令

chgrp命令:改变文件的所属组

注意:root和拥有者可以使用,拥有者只能把文件改到自己所属的组

chgrp jack test1 把文件test1的所属组变更为jack

chgrp -R jack dirl 把目录dirl下的所有子目录和文件所属组变更为jack

六、Linux进程和管道符

1、后台运行进程

后台运行进程:使用&符号

ping 192.168.20.222& --在后台ping这个地址

2、jobs命令

jobs命令:列出后台的进程

ctrl + z 可以将一个正在前台运行的进程放到后台,暂停执行

fg %num 将后台的进程调到前台运行,num是jobs的编号

bg %num 将一个后台的暂停的进程变成继续执行

3、终止进程

kill命令:后台进程

后台进程我们需要用kill命令去杀死它来终止

kill pid

kill -9 pid

ctrl+c:前台进程

前台进程我们可以使用ctrl +c来终止

4、标准输入、标准输出、标准错误

stdin:标准输入

stdout:标准输出

stderr: 标准错误

比如你输入命令 ps -ef 这个就是你的标准输入

命令返回给你结果,这个就是标准输出

如果你输入的是sd,没有sd这个命令,系统会返回给你一个报错信息(sd: command not found),这个就是标准错误

通常标准输入对应的是键盘

标准输出和标准错误对应的是屏幕

5、重定向

重定向:通过重定向将标准输出和标准错误重定向到指定的文件中,而不是屏幕上

ps -ef>test 把ps -ef 的结果输出到test文件中,我们可以查看test文件,发现本该展示在屏幕上的进程信息都在test文件中

ps -ef>>test 2个>代表了把输出结果追加到文件中,如果一个>是覆盖,会把之前的记录覆盖掉。

注意:ps -ef > test = ps -ef 1> test

因为1代表了标准输出

2代表了标准错误

如果将报错信息输出到文件中:

sd 2> test 把sd执行的报错结果输出到test文件中

如果想要同时把标准输出和标准错误 输出到同一文件中: ps -ef > test 2>&1

如果想分别把标准输出和标准错误输出到不同文件中:ps -ef >test 2>test2

6、wc -l命令

wc -l:通过重定向从文件里读取内容

wc -l < test 统计test文件中有多少行

其实 和 wc -l test 差不多,只不过一个是根据文件来统计,一个是文本内容

wc -l << end 根据键盘输入的值进行统计,直到你输入end后结束统计,给出统计值

7、管道符 |

管道符:将管道符前的命令的输出作为管道符后面的命令的输入,连接2个命令

例子:

ps -ef|grep python

把线程中包含python字符串的筛选出来

ps -ef 2>&1|grep err

可以把错误输出和标准输出同时定向到管道符

连续使用管道:

ps -ef|grep python|grep -v grep

工作中最常用的管道符用法

tail -f test|grep ‘123456’ 动态查询日志时,根据关键字找到自己想要的那条日志

ps -ef | grep tomcat 找到进程号pid

netstat -nap | grep pid 根据进程号查找端口

七、Linux网络操作命令

1、usermod命令

usermod:修改用户

usermod -g 修改用户的所属群组

usermod -G 修改用户的所属的附加群组

adduesr/useradd 用户名 —添加新用户

passwd 用户名 —修改密码

groups test —显示test用户所属群组

userdel -r 删除用户以及该用户的主目录

2、ip命令

ip命令:查看ip地址

ip -4 addr 显示iPv4地址

ip -6 addr 显示ipv6地址

实际工作中用的最多的查看ip命令:

ifconfig —linux

ipconfig —windowds

3、service命令

service:服务器的命令

service --status-all —查看所有服务的状态

service 服务名 status —查看指定服务的状态

service 服务名 start —启动指定服务

service 服务名 stop —停止指定服务

service 服务名 restart —重新启动指定服务

service network start 启动网卡

service network stop 禁止网卡

4、ping命令

ping命令作用:网络连通性检查

ping -c指定连接次数

举例:ping -c 5 www.baidu.com 连接百度5次

5、netstat命令

nestat命令:查看进程

netstat -anp 最常用的进程以及端口查看命令,配合grep使用进行筛选

netstat -anp|grep :8080 端口号8080的端口

6、lsof命令

lsof命令:查看端口的占用

举例:lsof -i:80

7、top命令

注意:top命令中按f可以选择想要展示的内容,按回车确定

如果是多核cpu可以按1来切换展示每个cpu

top中参数说明:

当前时间

up 系统运行时间,格式为时:分

1 user 当前登录用户数

load average: 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

total 进程总数

running 正在运行的进程数

sleeping 睡眠的进程数

stopped 停止的进程数

zombie 僵尸进程数

Cpu(s):

0.3% us 用户空间占用CPU百分比

1.0% sy 内核空间占用CPU百分比

0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比

98.7% id 空闲CPU百分比

0.0% wa 等待输入输出的CPU时间百分比

0.0%hi:硬件CPU中断占用百分比

0.0%si:软中断占用百分比

0.0%st:虚拟机占用百分比

top -bn1 显示全部进程

8、free命令

free命令:显示内存使用情况

free中的参数说明:

-b  以Byte为单位显示内存使用情况。

-k  以KB为单位显示内存使用情况。

-m  以MB为单位显示内存使用情况。

-h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:

B = bytes

K = kilos

M = megas

G = gigas

T = teras

-o  不显示缓冲区调节列。

-s<间隔秒数>  持续观察内存使用状况。

-t  显示内存总和列。

-V  显示版本信息

八、Linux打包和压缩以及环境部署

1、tar命令

tar命令:打包和解包

tar -cvf test.tar f1 f2 把f1 f2文件打包到test.tar文件中

tar -tvf test.tar 查看包内的内容

tar -xvf test.tar 解开test.tar包

tar -xvf test.tar -C 目录 解开test.tar包到指定的目录下

tar -zcvf test.tar.gz f1 f2 打包并且压缩

tar -zcvf test.tar.gz * 打包并压缩当前目录下所有文件

tar -zxvf test.tar.gz -C 指定目录 解压缩包到指定目录

2、gzip命令

gzip命令:压缩

gzip 文件名1 文件名2 压缩多个文件

gzip -d test.gz 解压文件

3、zip命令

zip test.zip f1 f2 打包

unzip test.zip -d 指定目录 解压到指定的目录中

4、rpm命令

rpm命令:包的安装

wget 下载地址 — 从指定下载地址下载文件

rpm -ivh 安装rpm包

rpm -qa 查看所有安装过的包

rpm -qa|grep 关键字 查询响应找的包

rpm -e 删除指定包

5、yum命令

yum命令:包的安装

yum install 安装

yum remove 卸载

yum list installed 查看已经安装的

查询软件:可以使用yum search **

你可能感兴趣的