Linux命令
学习Linux时,会发现很多命令,并且命令的参数及其组合有时让人容易混淆,难记住,因此便有了下面的内容
1、命令格式
Command 【-Option(s)】【Parameter(s)】
command : 命令的关键字
-options : 选项,控制命令,可以多个一起使用
Parameters :参数,执行命令的对象,可以是零个,一个或多个
2、查看命令帮助信息
-help
显示command命令的帮助信息
-man
manual的缩写,手册的意思,包含了linux中绝大部分的命令、函数的使用方式,当需要查看某个命令的参数时,可以使用man命令。
例如查看ls的使用手册
man ls
结果如下
使用man命令后的操作键如下
操作间 | 作用 |
---|---|
空格 | 每次往下翻一个屏幕的内容 |
enter | 每次往下翻一行内容 |
b | 每次向上翻一页 |
f | 每次向下翻一页 |
q | 退出当前手册界面 |
/字符串 | 查找指定字符串 |
n | 配合“/字符串”使用,可以快速调整到下一个指定字符串的位置 |
3、常用快捷键
3.1 放大和缩小终端窗口
ctrl + shift + +
放大窗口字体显示
ctrl + -
缩小窗口字体显示
3.2 table键自动补全
在输入文件、目录命令的前几个字母之后按下tab键,系统会自动补全命令
3.3 按键盘上下键可以来回切换使用过的命令
3.4 终止当前的命令
ctrl + c
4、文件和目录相关命令
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的
(1)查看目录
ls命令
1、作用
列出目录的内容列表
2、linux下的文件和目录
- Linux的目录和文件名称最长可以有256个字符参数
- 以 . 开头表示是隐藏文件
- . 表示当前目录
- . . 表示当前目录的上级目录
3、ls常搭配的选项
命令 | 作用 |
---|---|
ls -a | 显示隐藏文件和隐藏目录,也就是以 . 开头的目录和文件 |
ls -R | 递归显示目录中的内容 |
ls -t | 显示目录中的内容列表,并且按照使用时间排序,默认是按照名字排序 |
ls -l | 显示详细信息 |
ls -F | 显示文件类型(名称后面带/表示目录,带*表示可执行文件,其他为普通文件) |
ls -a -l | 表示详细显示所有文件和目录(包括隐藏文件),也可以写成ls -al |
使用举例:
(1)ls -F
my.sh*表示可执行文件
opt/表示目录
其他的都是普通文件
(2)ls -l
分析如下
-rw-rw-r-- 1 swift swift 0 3月 3 11:14 a.txt
从左到右依次分析:
(1) “-” ---------文件类型,普通文件是“-”,目录是“d”,链接文件是“l”,块设备文件时“b”,字符设备文件时“c”,命令管道文件是p,sock文件时s
(2)“rw-rw-r–”---------权限设置,这里分三组,三个字符表示一组,如“rw-”为一组,这里三组的权限分别表示拥有者权限,同组人权限,其他人权限。
(3)“1”---------链接号
(4)“swift”---------拥有者
(5)“swift”---------拥有组
(6)“0”---------文件大小,这里为0是因为这个文件中没有内容,如果有内容就会是其他数字
(7)“3月 3 11:14 ”--------文件最后修改时间
(8)“a.txt”--------文件名
(3)ls -R
当一个目录是多级目录时test/test1/test2
ls -R test
pwd命令
查看当前所在目录的绝对路径
(2)切换目录
cd命令
作用:切换目录
有如下常用命令:
命令 | 含义 |
---|---|
cd | 切换到当且用户的主目录(/home/用户目录) |
cd ~ | 切换到当且用户的主目录(/home/用户目录) |
cd . | 当前目录 |
cd … | 切换到上级目录 |
cd - | 在最近两次工作目录之间来回切换 |
cd 目录名 | 切换到指定目录下 |
(3)创建文件或目录
touch 命令
作用:
(1)文件不存在时创建空白文件
touch 文件名
(2)文件存在时该命令表示修改文件创建时间
当a.txt已存在时
touch a.txt
表示修改a.txt的创建时间为当前
(3)可以同时创建多个文件
touch a b c d
mkdir 命令
作用:
(1)创建空目录
mkdir test
(2)创建多个平级目录
mkdir test1 test2 test3
(3)创建多级子目录
mkdir -p test1/test2/test3
-p表示如果子目录不存在则创建
(4)在当前用户家路径下创建一个子目录
mkdir ~/test
(4)删除文件或目录
rm命令
在使用rm命令时要十分谨慎,因为它删除文件后就不能在恢复
常搭配的选项
选项 | 作用 |
---|---|
-f | 强制删除 |
-r | 递归的删除目录下的内容(删除文件夹(目录)时就需要带上这个选项) |
-i | 删除文件前提示确认 |
作用:
(1)删除一个文件
rm 文件名
(2)删除多个文件
rm 文件1 文件2 文件3
(3)删除文件时提示确认
rm -i a.txt
(4)强制删除非空目录(也叫文件夹)
rm -r -f 目录名
这条命令特别要注意,不要乱使用
(5)rmdir 命令删除空目录
rmdir test
(5)复制、移动文件或目录,修改文件名和目录名
cp命令
作用:复制文件或目录
格式:cp 【选项】源文件 目标文件
(1)当目标文件不存在时,则自动创建目标文件
(2)当目标文件存在时,则会将源文件中的内容覆盖目标文件中的内容
(3)可以搭配选项-i一起使用
常见选项:
命令 | 作用 |
---|---|
-d | 复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式 |
-f | 覆盖已经存在的目标文件而不给出提示 |
-i | 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖 |
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 |
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件 |
-I | 不复制文件,只是生成连接文件 |
举例使用
1、复制当前目录下a.txt文件内容到b.txt中
cp a.txt b.txt
2、复制多个文件到一个指定目录中
cp a.txt b.txt test
需要注意的是要求这些目录和文件都是存在的
3、复制文件夹和它的内容到另一个文件夹中
cp -r test1 test2
如果test2 目录不存在,则自动创建test2并把test1目录中的内容复制进去,不包含test1目录本身
如果test2目录存在,则把整个test1目录及其内容全部复制到test2中,包括test1目录本身
4、把test目录复制到test4目录中,并且修改目录名字为temp
cp -r test test4/temp
要求test4目录必须是存在的
mv 命令
具体样例:
(1)移动一个文件到目录中
mv a.txt test
(2)移动多个文件到目录中
mv a.txt b.txt test
(3)移动test目录中的a.txt文件到当前目录
mv ./test/a.txt .
(4)修改一个文件的名字
mv a.txt b.txt
(5)修改目录的名字
mv dir1 dir2
当dir2不存在时表示修改目录
(6)将一个目录移动到另一个目录
mv dir1 dir2
当dir2存在时
(6)查看文件内容
cat命令
cat命令的作用有
(1)查看文件内容(一次显示所有内容,适合查看内容较少的文本文件)
(2)文件合并
(3)追加文件内容(搭配)
(4)清空文件
(5)覆盖文件内容
常搭配的选项有
选项 | 含义 |
---|---|
-b | 对非空行输出行编号 |
-n | 对输出的所有行编号 |
相关使用:
(1)显示文件所有内容(当文件不存在时也可以自动创建文件
)
cat a.txt
(2)把a.txt和b.txt的内容合并到c.txt中
cat a.txt b.txt > c.txt
(3)把c.txt文件内容置空(清空文件)
cat /dev/null > c.txt
/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有写入其中的数据,都会被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数据输出,或作为用于输入流的空文件
(4)往b.txt文件中追加a.txt中的内容
cat a.txt >> b.txt
(5)用a.txt文件中的内容覆盖b.txt中的内容
cat a.txt > b.txt
more命令
more命令的作用有分屏显示文件内容,每次只显示一页内容,比较适合查看内容较多的文本文件。
cha
选项 | 作用 |
---|---|
空格 | 每次往下翻一个屏幕的内容 |
回车键 | 每次滚动一行 |
b | 向上翻滚一页 |
f | 每次想下翻一页 |
q | 退出当前查看内容界面 |
v | 进入vi模式在vi模式下,输入:q 则退出vi模式回到more的查看模式(1)在vi模式下,使用/stirng,查找指定字符串,例如,/the 就是查找这个单词(2)在vi模式下,n,配合/string命令,可以快速调整跳到下一个指定字符串的位置 |
less命令
less指令也是分屏查看文件内容,与more命令相似,当比more更强大,支持各种现实终端。less并不是一次性将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
(7)搜索查找文件
grep命令
grep 命令是Linux系统中一种强大的文本搜索工具,grep 命令允许对文本文件进行模式查找(正则表达式),常搭配管道符“|”一起使用
格式:grep 【选项】查找内容 源文件
常搭配选项有:
选项 | 作用 |
---|---|
-v | 显示不包含匹配文本的所有行(可以理解为与他有关的都不显示出来) |
-n | 显示匹配行并且显示行号 |
-i | 忽略字母大小写 |
模式查找
参数 | 作用 |
---|---|
^a | 搜寻以a开头的行 |
y$ | 搜寻以y结束的行 |
find命令
语法:find 【搜索范围】【选项】
常用选项:
选项 | 作用 |
---|---|
-name <查找方式> | 按照指定文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名的所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件 |
例如:
(1)根据名称查找/home目录下的hello.txt文件
find /home -name hello.txt
(2)根据拥有者查看/opt目录下用户名为nobody的文件
find /opt -user nodody
(3)查找当前目录下指定大小范围的文件
find / -size +20M
+n表示大于n,-n表示小于n,n表示等于n大小
M表示兆,1M = 1024k (注意事项:k不能大写)
locate命令
locate命令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位指定的文件,locate指令无需遍历整个文件系统,查询速度较快,为保证查询结果准确,一般需要定期更新locate时刻。
在第一次使用该命令查询前,要先使用updatedb命令创建locate数据库。
例如:
使用locate命令快速定为hello.txt文件所在目录
updatedb
locate hello.txt
(8)归档和解档、压缩和解压命令
归档,把若干个文件或目录简单的合并在一起,它并不对文件进行压缩,就是将多个文件前后连接在一起,形成一个大文件。另外还会额外的添加一些信息,所以归档后的总文件的大小,反而往往比之前文件之和还要大一些。
压缩,是一种通过特定的算法来减小计算机文件大小的机制,Linux中的文件压缩命令有多种,其中最常用的命令就是gzip、其他的还有bzip2。
tar命令相关选项
归档命令
将指定文件和目录归档
tar -cvf work.tar a b c test1 test2
c选项是创建新的归档文件,-v选项是显示归档过程,-f是指定归档到哪个文件中
解档命令
将指定归档文件解档并放到指定文件中
tar -xvf work.tar -C dir1
-x选项表示提取归档文件中的文件,-C表示切换到指定目录,这里就是把解档后的文件放到这个指定目录中
压缩命令
一般压缩的都是归档文件哦
gzip命令压缩
gzip work.tar
压缩后的文件为
work.tar.gz
bzip2命令压缩
bzip2 work.tar
压缩后的文件为
work.tar.bz2
tar命令压缩
tar -zcvf work.tar.gz a b c test1 test2
-z选项表示支持gzip解压文件的压缩和解压操作,-c表示归档或者压缩操作,-f指定压缩到哪个压缩包中,gzip压缩文件的后缀是.gz
tar -jcvf work.tar.bz2 a b c test1 test2
-j选项表示支持bzip2解压文件的压缩和解压操作,-v表示归档或者压缩操作,-f指定压缩到哪个压缩包中,bzip2压缩文件的后缀是.bz2
解压命令
gunzip命令解压.gz压缩文件
gunzip work.tar.gz
bunzip2命令解压.bz2压缩文件
bunzip2 work.tar.bz2
tar命令解压
tar -zxvf work.tar.gz -C dir2
-x表示解档或者解压操作,-C指定解压到哪个目录中
5、用户和用户权限相关命令
Linux系统一个多用户多任务的操作系统,任何一个要使用系统资源的用户都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户分为超级用户(root,也就是系统管理员)和普通用户,普通用户没有权限进行用户的添加,删除,密码设置值,修改权限等,但是通过sudo命令可以临时赋予普通用户root用户的权限。。。以下操作举例均在root超级用户下执行,所以没有用到sudo命令。
添加用户
useradd命令和adduser命令
语法:useradd 【选项】用户名
语法:adduser 【选项】用户名
常用选项:
选项 | 作用 |
---|---|
-c | 备注 加上备注。并会将此备注文字加在/etc/passwd中的第5项字段中 |
-d | 用户主文件夹。指定用户登录所进入的目录,并赋予用户对该目录的的完全控制权 |
-e | 有效期限。指定帐号的有效期限。格式为YYYY-MM-DD,将存储在/etc/shadow |
-f | 缓冲天数。限定密码过期后多少天,将该用户帐号停用 |
-g | 主要组。设置用户所属的主要组 |
-G | 次要组。设置用户所属的次要组,可设置多组 |
-M | 强制不创建用户主文件夹 |
-m | 强制建立用户主文件夹,并将/etc/skel/当中的文件复制到用户的根目录下 |
-p | 密码。输入该帐号的密码 |
-s | shell。用户登录所使用的shell |
-u | uid。指定帐号的标志符user id,简称uid |
关于useradd的使用
例如:
(1)创建一个新用户xiaoming,将它的家目录设置在指定用户/home/user下(这个user用户必须是已经存在的)
useradd -d /home/user xiaoming
(2)创建一个新的用户swift,家目录为/home/swift,用户登录后使用bash
useradd -mk /home/swift -s /bin/bash swift
其中-mk选项作用是创建目录,并将创建好的用户放在这个目录下,-s选项作用是指定该用户使用的bash,命令最后一个单词是用户名称。
关于adduser的使用:
例如:创建一个用户xiaoming
adduser xiaoming
useradd和adduser的区别
useradd与adduser都是创建新的用户
(1)在CentOs下useradd与adduser是没有区别的
都是在创建用户,在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码。
(2)在Ubuntu下useradd与adduser的使用有所不同
1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。
2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。
在登录的用户为普通用户的情况下添加用户需要在useradd或者adduser前面加上一个sudo命令,因为普通用户没有权限创建用户。
用户密码设置
passwd命令
语法:passwd 用户名
给新建用户设置密码、给用户重置密码
passwd 用户名
普通用户给普通用户设置密码时要加上sudo命令。
删除用户
userdel命令
语法:userdel 【选项】用户名
超级用户可以随意删除普通用户,但普通用户想要删除普通用户时需要加上sudo命令。
例如:删除用户,但保留其家目录
userdel 用户名
例如:删除用户以及用户家目录
userdel -r 用户名
例如:删除用户以及用户家目录并且是强制删除
userdel -r -f 用户名
查看用户信息
命令 | 作用 |
---|---|
cat /etc/passwd | 查看用户信息 |
cat /etc/group | 查看用户组信息 |
切换用户
su - 用户名命令
(1)普通用户间切换
su - 用户名
之后输入切换的用户名的密码
(2)普通用户切换超级用户
#直接输入su
su
#或者
su - root
之后再输入密码
(3)超级用户切换到普通用户
su 用户名
超级用户切换到普通用户是不需要输入密码的
关于login shell和non-login shell的概念与区别
login shell指的是在取得bash接口的方法时需要完整的登录流程。
non-login shell指的是在取得bsh接口的方法时不需要重复登录的举动。例如:登录linux后,在启动终端terminal时输入一次账号密码之后不再需要再次输入账号密码。
从root切换到其他用户不用输入密码,从其他用户切换到root用户或其他用户需要输入密码。
当使用命令su 用户名
从root用户切换到其他普通用户时,并不会切换shell环境,读取的变量配置方式为non-login shell的方式,这种方式很多原本的变量不会被改变,例如PATH变量。
当使用su - 用户
命令进行用户间的相互切换或者普通用户切换到超级用户root时,shell环境会发生切换,会直接切换到新使用者的环境,连同PATH/USER/MAIL 等变量都转成新用户的环境。
用户文件权限修改
用户权限
通过ls -l命令可以查看文件或目录的相关权限。
例如:
查看b.txt的权限,如下
ls -l a.txt
上图中的标注部分就是当前a.txt文件针对用户的权限。
"-"表示没有权限
“r”表示可读权限
“w”表示可写权限
“x”表示可执行权限
一般都是三个字符一组来约束用户的权限的
例如:
第一组“rw-”表示当前文件对拥有者的权限,可读可写不可执行
第二组“rw-”表示当前文件对同组人的权限,可读可写不可执行
第三组“r–”表示当前文件对其他人的权限,只可读不可写和执行
权限修改
chmod命令修改权限
修改有两种方式
方式一:文字设定法,分别用加、减、等于号来表示添加、取消、赋予权限,如下:
在添加或删除某个权限的时候,一般用o表示其他人(others),一般用g表示同组人(group),一般用u表示拥有者(user),一般用a表示所有人(all)
chmod u+x b.txt
# 表示给拥有者添加一个可执行b.txt文件的权限
chmod g-r b.txt
#表示给同组人删除一个可读权限
chmod u+r,g-r,o+w b.txt
#表示分别给拥有者添加对b.txt文件的可读权限,删除同组人的可读权限,添加对b.txt文件的可读权限
chmod u=rw b.txt
#表示直接赋予拥有者可读和可写的权限,并且取消其他权限
方式二:数字设定法
0000 0001 表示x执行权限 -->十进制数据为1,所以用数字1代表x
0000 0010 表示w可写权限–>十进制数据为2,所以用数字2代表w
0000 0100 表示r可读权限–>十进制数据为4,所以用数字4代表r
通过任意权限组合相加得出来的数字结果都是唯一的。
如下:
1+2 = 3 表示**-wx**
1+4 = 5表示r-x
2+4 = 6表示rw-
1+2+4 = 7表示rwx
# 拥有者、同组人、其他人都可读可写可执行
chmod 777 a.txt
#拥有者、同组人可读可写可执行,其他人只可读
chmod 774 a.txt
虽然文件和目录都有三种权限–可读可写可执行,但还是存在着区别
对于文件:
可读:表示可以读取文件里的数据
可写 :表示可以改变和删除文件;
可执行:表示可以执行该程序。对于目录:
可读:表示你可以列出目录中有什么文件;
可写:表示可以在目录中删除和增加文件;
可执行:表示可以列出目录下文件的信息。
chown命令修改文件所有者
# 将文件file的所有者改为新的所有者newOwner
chown newOwner file
如果修改的是目录(且该目录下还有子文件和子目录),那么可以加上选项-R,递归同时改变其下的目录的子文件和子目录
chown -R newOwner test
# 同时改变文件的所有者和所有组为newowner和newGroup
chown newowner:newgroup file
chgrp命令改变文件所在组
chgrp newgroup file
如果修改的是目录(且该目录下还有子文件和子目录),那么可以加上选项-R,递归同时改变其下的目录的子文件和子目录
chgrp -R newOwner test
用户组管理
groupadd命令创建组
语法:groupadd 组名
#先创建组
groupadd 组名
#将用户添加到创建的组中
useradd -g 组名 用户名
usermod命令修改用户所在组
usermod -gid 组名 用户名
#简写
usermod -g 组名 用户名
#修改用户登录的初始目录
usermod -d 目录名 用户名
groupdel命令删除组
groupdel 组名
当某个账号还在使用该组,则不能删除
创建用户时指定用户组
useradd -gid 组名 用户名
用户和用户组的相关文件
/etc/passwd文件
用户的配置文件,记录用户的各种信息。
文件中每行的意义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow文件
口令的配置文件
文件中每行的意义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件
组的配置文件,记录Linux包含的组的信息
每行意义:组名:口令:组标识号:组内用户列表
补充:前面一直在说普通用户操作用户时要加上sudo命令,这个命令也就是给普通用户临时使用以下超级用户的权限而已,但每个新建用户一开始是没有sudo权限的,因为新建用户不在sudo这个用户组中,可以通过将新用户加入到sudo用户组的方式来获得该权限。
(1)切换到新建用户下,使用id命令查看用户信息,发现当前用户并不在sudo组中
id 新建用户名
(2)切换到root账号下,将新建用户添加到sudo组中
gpasswd -a 新建用户名 sudo
(3)切换到新建用户下,测试sudo命令是否可用,可以用id查看用户信息判断新用户是否在sudo组中,也可以通过sudo clear来测试sudo命令可不可用
(4)当不需要使用sudo时,先切换到root账户,使用下面的命令将新建用户从sudo组中删除
userdel -d 新建用户名 sudo
6、系统信息相关命令
时间与日期
命令 | 作用 |
---|---|
date | 查看系统时间 |
cal | 查看日历(加上-y选项可以查看一年的日历) |
磁盘信息
命令 | 作用 |
---|---|
df -h | 显示磁盘剩余空间 |
du -h【目录名】 | 显示目录下的文件大小 |
进程管理命令
1、查询进程
ps命令查询进程
ps 默认只会显示当前用户通过终端启动的应用程序
常用选项
选项 | 作用 |
---|---|
-a | 显示终端上的所有进程,包括其他用户的进程 |
-u | 显示进程的详细状态 |
-x | 显示没有控制终端的进程 |
ps aux
查看进程的详细情况
ps -ef
查看全格式的全部进程
分析:
UID = =》进程拥有者
PID = =》进程ID
PPID= =》父进程ID
C= =》CPU使用的资源百分比
STIME= =》进程开始时间
TTY= =》登入者的终端机位置
TIME= =》执行时间
CMD = =》操作命令
ps -ef | grep mysqld
查看指定进程的全格式内容
2、终止进程
kill命令:终止指定进程
语法:kill【选项】进程号
选项:【-9】,表示强制终止
killall命令:终止进程
语法:killall 进程名称
(通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时有用)
3、服务管理
服务本质上就是进程,但是是在后台运行的,通常服务会监听某个端口,等待其他程序的请求,因此又称之为守护进程,例如(防火墙,mysql,sshd等)
下面命令都是centOs中的
service 命令
语法:
service 服务名称 操作命令
常用的操作命令有:
(1)start启动服务
(2)stop终止服务
(3)restart重启服务
(4)reload重新加载服务
(5)status服务状态
例如:
重启防火墙。
service iptables restart
但在centos7.0之后的版本不再使用service,而是使用systemctl命令,但使用时和service命令一样,并且在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理,而不是iptables。
systemct命令
语法:
systemctl 【start/stop/reload/restart/status】 服务名称
如启动防火墙
sysstemctl start firewall
此外,在Ubuntu中,防火墙的启动停止与centos还是有区别的
例如
在Ubuntu中,
sudo ufw status命令查看当前防火墙状态;inactive状态是防火墙关闭状态 ,active是开启状态,
sudo ufw enable命令来打开防火墙,
sudo ufw disable命令来关闭防火墙。
4、进程监控服务
4.1 动态监控进程
top命令
作用:动态显示运行中的进程并且可以更新正在进行的进程,并且可以排序相关进程
语法:top 【选项】
常用选项
选项 | 作用 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新,默认是3秒 |
-i | 使top不显示任何闲置或者僵死进程 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态 |
交互操作
操作 | 作用 |
---|---|
P | 以CPU使用率进行排序(默认情况下就是这个) |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top命令 |
k | 杀死某个进程 |
u | 查看用户名 |
4.2 查看系统网络情况
netstat命令
基本语法:netstat 【选项】
选项 | 作用 |
---|---|
-an | 按一定顺序排列输出 |
-p | 显示哪个进程在调用 |
7、软件安装/卸载相关命令
不同发行版的与安装有关的命令是不同的,这里就拿Ubuntu和centOs来做对比
Ubuntu
apt list:列出所有可安装的软件包
dpkg -l:查看所有已安装的软件包
dpkg -i 包名 :安装软件包
apt-get install 包名:安装软件包
apt-update:更新安装包资源
apt-get clean:清除已下载的旧安装包
apt-get remove 软件包:卸载软件包但会保留软件的配置文件
**apt-get pruge 软件包 **:卸载软件包并清除软件配置文件
apt -cache search 包名:搜索软件
apt-get source 包名:获取源码包
apt-file update;apt-file search 文件名:查找文件所在包
dpkg -S 文件路径:查询文件所在包
dpkg -L 包名:列出包中的内容
CentOs
yum list:列出所有可安装的软件包
yum install -y 包名:安装软件包
rpm -ivh 包名:安装程序包
yum search 包名:搜索软件包
rpm -qa:查看所有已安装的软件包
rpm -ql 包名:列出包中的内容
rpm -qf 文件路径:列出一个文件属于哪个包
rpm -e 包名:卸载程序
yum clean all :清除旧资源,更新资源
yum provides “*/vim”:查找命令所对应的包
yum remove 包名:卸载软件
yum search 源码包:获取源码包
yum install 源码包:安装源码包
*yum provides 文件名:查找文件所在包
8、远程管理常用命令
Linux关机和重启
1、shutdown
#立即关机
shutdown -h now
#一分钟后关机
shutdown -h l
#立即重启
shutdown -r now
2、halt
直接使用,效果等于关机
3、reboot
重启系统
4、syn
把内存的数据同步到磁盘
5、logout
注销用户
logout注销在图形运行级别无效,在远程登录(运行级别)下有效果
查看配置网卡信息
ifconfig命令
作用:查看/配置计算机当前的网卡配置信息
#查看网卡配置信息
ifconfig
#查看网卡对应的ip地址
ifconfig | grep inet
ping命令
检测目标ip地址连接是否正常。
ping ip地址
#如下
ping www.baidu.com
9、特殊字符
1、通配符
通配符 | 作用 |
---|---|
* | 可以代表任意个数个字符 |
? | 可以代表任意一个字符 |
[字符组] | 表示可以匹配字符组中的任意一个字符 |
[a-f] | 表示匹配从a到f范围内的任意一个字符 |
例如:
(1)列出所有txt后缀的文件
ls *.txt
(2)删除所有txt结尾的文件
rm *.txt
(3)查看文件名中含有ab且后缀为.txt的文件
ls *[ab]*.txt
(4)查看文件名中含有a或者b的文件
ls *[ab]*
(5)查看a.txt文件或者b.txt文件
ls [ab].txt
2、分割符;
表示在一行语句中连续执行多个命令,命令之间使用分号进行分割
例如:先cd回到家目录,然后再执行ls命令
cd;ls
3、重定向符>和>>
将原本输出到命令行中的内容,重定向输入到另外一个地方。
>表示往文件中写入内容,是覆盖操作
例如:将hello写入到a文件中
echo "hello" > a
a文件如果不存在,则自动创建,a文件如果存在,则覆盖之前的内容
例如:cal命令输出的日历写入到a文件中
cal > a
** >>** 表示往文件中写入内容,是追加操作
例如:先把date命令显示的日期写入到a文件中,再把cal显示的日历追到a文件中
date >> a
cal >> a
4、管道符|
|前面命令的结果作为|后面命令的参数
例如:查看/etc/passwd文件中的内容并筛选出与bin相关的信息
cat /etc/passwd | grep "bin"
grep命令会对结果进行过滤筛选
10、其他命令
echo命令
作用:会在终端中显示参数指定的文字,通常会和重定向联合使用
向a.txt中输入hello
echo “hello” > a.txt
echo "hello" >> a.txt
tree命令
作用:可以以树状图列出文件目录结构。
which命令
作用:which命令可以查看执行命令所在的位置,如
which ls
# 输出:/bin/ls
which useradd
# 输出:/usr/sbin/useradd
history命令
作用:可以查看之前使用过的一些命令
clear命令
作用:清屏
sudo命令
作用:暂时提高普通用户的权限,也就是使用root用户的身份来执行命令。
格式:sudo 其他命令
例如:一个普通用户如果想要修改文件的权限
sudo chmod 777 hello.txt
注意:并非所有用户都能够运行sudo命令,而是仅有规范到/etc/sudoers内的用户才能够运行sudo命令
可以先切换到根目录下,再使用cat /etc/sudoers查看该配置文件,如图:
可以发现其中有三个组root、admin、sudo,他们的权限都为All=(All:All) All
,表示基本拥有所有权限,他们就不需要提升用户的权限去执行命令。
那么怎么让指定用户拥有sudo命令权限呢?有两种方式:
第一种方式:vim命令修改/etc/sudoers配置文件中的内容,将指定的用户组添加到该配置文件中
步骤
(1)第一步:由于通常/etc/sudoers配置文件默认是只读的,对root来说也一样,因此需先添加sudoers文件的写权限,命令是:chmod u+w /etc/sudoers
(2)第二步:切换到/etc目录下,cd /etc
,然后使用vim sudoers
命令修改配置文件,添加这样一行指定用户名 ALL=(ALL)ALL
即可
(3)补充:如果出现sudo: unable to resolve host iZuf69b3ukcunchz57pmf8Z
错误,需要修改host配置,使用管理员身份编辑vi /etc/host
,之后将对应的host添加到localhost后即可127.0.0.1 localhost iZuf69b3ukcunchz57pmf8Z
第二种方式:将指定用户添加到sudo组中
假设有个普通用户swift,所属组为自身swift组
步骤:
(1)第一步:在当前用户下通过id
命令查看当前用户所在组
看所属组,swift用户只属于swift组。
(2)第二步:切换到root用户,使用命令gpasswd -a swift sudo
将swift用户添加到sudo组中,添加后再次切换到swfit目录,使用id命令查看用户信息,如图:
删除指定用户的sudo权限
同样对应两种方式
第一种:查看/etc/sudoers配置文件中是否有指定的组,有的话vim命令编辑文件并删除相关内容
第二种:将指定用户从sudo组中删除
切换到root用户下,使用命令gpasswd -d swift sudo
删除sudo组中的指定用户,如图: