Linux常用系统管理命令
一. 系统管理命令
1. ps
列出所有在内存当中的进程
ps aux
ps命令用来列出系统中当前运行的那些进程
ps -ef #查看所有进程
2. kill
用于终止执行中的程序
kill -9 12345 #杀死pid为12345的进程
3. 管道命令
是将一个命令的输出用作另一个命令的输入
ps -ef | grep java #查询名称中包含java的进程
二. 用户的创建和删除命令
1. 用户创建和密码设置
useradd user01 #创建新用户user01
passwd user01 #设置用户user01密码
2. 删除用户
userdel -r user01 #删除用户user01
三. 权限管理命令
1. 权限概述
在Linux操作系统中,每当我们使用用户名登录操作系统时,Linux都会对 该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。
用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。
在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限, 能执行任何命令和操作,而其他用户都是普通用户。
Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。
输入 ll 命令,查看当前文件
观察最前面的一行,以drwxr-xr-x和 -rw-r--r--为例:
第一个表示文件类型,即“d”表示目录,“-”表示文件
后面部分一次看三个符合,即rwx、r-x、r-x和rw-、r--、r--。
第一组三个符号表示文件创建者可以对这个文件进行哪些操作;
第二组三个符号表示文件创建者所属的用户组可以对文件进行哪些操作;
最后一组三个符号表示其他用户对文件创建者可以进行哪些操作。
2. 文件权限说明
对 文件/目录 的权限包括:
(1)读 (read)
缩写:r 数字序号:4
(2)写(write)
缩写:w 数字序号:2
(3)执行(execute)
缩写:x 数字序号:1
(4)无权限
缩写:- 数字序号:0
r:对文件是指可读取内容 对目录是可以ls
w:对文件是指可修改文件内容,对目录是指可以在其中创建或删除子节点(目录或文件)
x:对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录
3. chmod
用来变更文件或目录的权限
chmod 666 a.txt 7(r+w+x)6(r+w)5(r+x)4(r)3(w+x)2(w)1(x)0(-) 666:相当于赋给a.txt的权限为rw-rw-rw-
chmod u+x(u-x) a.txt 为文件添加(删除)x权限。
chmod u=rwx,g=rw,o=x a.txt
u:表示文件创建者对该文件有哪些操作
g:表示文件创建者所属的用户组可以进行哪些操作;
o:表示其他用户对文件创建者可以进行哪些操作。
4. su
用于切换用户,普通用户不能使用某些权限, 所以需要切换用户。
su 用户名 切换用户, 并且企划目录。 可以切换到用户家目录, 否则保持位置不变
exit 退出当前登录用户
5. sudo
虽然通过 `su -u root` 可以切换到root用户,但是存在严重的安全隐患。在大多数版本的Linux中, 都不推荐直接只用 root 账号登录系统。
`sudo` 命令用来以其他身份来执行命令,预设的身份为 `root`;用户使用 `sudo` 时, 必须先输入密码,之后5分钟的有效期限,超过期限则必须重新输入密码。
四. 网络和服务管理命令
1. hostname
查看主机名
2. ifconfig
查看主机ip地址
3. service
用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
service network status #查看网络服务状态
service network stop #停止网络服务
service network start #启动网络服务
service network restart # 重启网络服务
五. 其他
1. man
是manual的缩写,是Linux提供的一个手册,包含了绝大部分的命令、函数的详细使用说明。
常用操作键:
空格键 显示手册的下一屏
Enter键 一次滚动首页也得一行
b(back) 回滚一屏
f(forward) 前滚一屏
q (quit) 退出
/word 搜索word字符串
n(next) 搜索下一个
N 搜索上一个
2. echo
将字符串输出到控制台,通常会和重定向联合使用
echo 'hello'
3. 重定向 `>`(覆盖) 和 `>>` (追加)
(1)重定向 `>`(覆盖)
[root@node01 ~]# echo 'hello01'>test02.data
[root@node01 ~# cat test02
test02/ test02.data
[root@node01 ~]# cat test02.data
hello01
(2)`>>` (追加)
[root@node01 ~]# echo 'hello02' >> test02.data
[root@node01 ~]# cat test02.data
hello01
hello02
4. && 和 ||
(1)&&
如果命令1执行成功,才会执行命令2
mkdir -p 正确目录 && echo "提示创建目录成功"
(2)||
如果命令1执行失败,才会执行命令2
mkdir 错误目录 || echo "提示创建目录失败"
5. ln
可以用来创建软连接,类似于创建快捷方式
ln -s test02.data test03.data
ll
lrwxrwxrwx. 1 root root 11 11月 15 21:06 test03.data -> test02.data
6. clear
清屏命令,还可以使用快捷方式:ctrl + l
7. 自动补全命令
自动补全命令
在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 `tab`键
如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
曾经使用过的命令
使用 `上` / `下` 光标键可以在曾经使用过的命令之间来回切换
如果想要退出选择, 并且不想执行当前选中的命令, 可以按 `ctrl + c`
8. date 时间
时间,使用--help查看使用命令
9.cal 日历
六. vi编辑器
1. 概述
vi是visual interface的简称, 是Linux中最经典的文本编辑器
vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域, 就能完成所有编辑操作
vi的特点:
(1)只能是编辑文本内容, 不能对字体段落进行排版
(2)不支持鼠标操作
(3)没有菜单
(4)只有命令
2. 使用方式
vi a.txt #直接打开文件
vi a.txt +10 #直接打开文件,并定位到第10行
Vi编辑器三种模式:
(1)命令模式
打开文件首先进入命令模式, 是使用vi的入口
通过 命令 对文件进行常规的编辑操作, 例如 定位 翻页 复制 粘贴 删除
在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在 命令模式 下实现
(2)末行模式 -- 执行 保存 退出等操作
要退出 vi 返回到控制台, 需要在末行模式下输入命令
末行模式 是 vi 的出口
(3)编辑模式 -- 正常的编辑文字
3. 命令模式常用命令
o 在当前行后面插入一空行
O 在当前行前面插入一空行
dd 删除光标所在行
ndd 从光标位置向下连续删除 n 行
yy 复制光标所在行
nyy 从光标位置向下连续复制n行
p 粘贴
u 撤销上一次命令
gg 回到文件顶部
G 回到文件末尾
/str 查找str
4. 底行模式常用模式
:w 文件 另存为
:w 保存(ctrl + s)
:q 退出, 如果没有保存,不允许退出
:q! 强行退出, 不保存退出
:wq 保存并退出
:x 保存并退出
:set nu 设置行号
:%s/旧文本/新文本/g 文本替换
七. 文本操作常用命令
1. cut
根据条件 从命令结果中提取对应内容
(1)截取出test02.data文件中前2行的第5个字符
cut -c 数字
head -2 test02.data|cut -c 5
(2)截取出test03.data文件中前2行以”:”进行分割的第1,2,3段内容
参数说明:
-d '分隔符' 指定分隔符
-f n1,n2 分割以后显示第几段内容, 使用 `,` 分割
显示范围控制:
n 只显示第n项
n- 显示 从第n项 一直到行尾
n-m 显示 从第n项 到 第m项(包括m)
head -2 test03.data|cut -d ':' -f 1,2,3
2. sort
字符串排序
针对文本文件的内容,以行为单位来排序
cat test04.data|sort
字符串去重排序
-u 去掉重复的
sort -u test04.data
数值排序
-n 按照数值大小排序
-r 使次序颠倒
sort -n test05.data
sort -n -r test05.data
3. wc
统计指定文件字节数、单词数、行数信息
-c 字节数
-w 单词数
-l 行数
显示文件字节数、单词数、行数
wc test04.data
仅显示文件行数
wc -l test04.data
仅显示文件单词数
wc -w test04.data
仅显示文件字节数
wc -c test04.data
统计多个文件的行数、单词数、字节数
wc test02.data test04.data test05.data
4. awk
实现模糊查询、按需提取字段、判断、运算等。
搜索zhangsan和lisi的成绩
命令格式:
awk '/搜索字符/' score.txt 从score.txt 搜索含有 "搜索字符"的行
awk '/zhangsan|lisi/' score.data
使用指定分隔符分割行,指定下标显示内容
命令格式:
awk -F '分隔符' '{print $1, $2, $3}' 按照指定分隔符分割文件中每行,并打印第一、二、三列
cat score.data|awk -F ' ' '{print $1,$2,$3}'
使用指定分隔符分割行,指定下标显示内容,指定输出分隔符
命令格式:
awk -F ' ' '{OFS="==="}{print $1, $2, $3}' 使用空格分割每一行,输出第一、二、三列,每列间使用指定"==="分开
cat score.data|awk -F ' ' '{OFS="==="}{print $1,$2,$3}'
使用函数
命令格式:
awk -F ' ' '{print toupper($1)}' 使用空格分割每一行,输出第一列内容,并把第一列内容转大写
cat score.data|awk -F ' ' '{print toupper($1)}'
条件选择筛选
命令格式:
awk -F ' ' '{if($4>60) print $1, $4 }' score.data 使用空格分割每一行,如果分割后第4列成绩大于60分,则输出第一、四列内容
cat score.data | awk -F ' ' '{if($4>60) print $1,$4}'
5. sed
对文件内容进行过滤和替换
(1)完成查询功能
常用可选项说明:
p 打印
$ 代表 最后一行
`-n` 仅显示处理后的结果
`-e` 根据表达式进行处理
语法:sed -n 'n,mp' 文件名
显示文件第n行到第m行的内容
语法:sed -n '/字符串/p|lp' 文件名
显示带有字符串的行,lp为不区分大小写
列出文本中3-5行内容
cat test05.data|sed -n -e '3,5p'
列出文本中含有"an"的行
cat test04.data|sed -n -e '/an/p'
列出列出文本中含有"an"的行,不区分大小写,并显示行号
cat test04.data|sed -n -e '/an/Ip'
(2)删除文本行
`d` 删除指定内容
删除前3行内容
cat -n test04.data | sed -e '1,3d'
保留前3行内容
cat -n test04.data | sed -e '4,$d'
(3)修改文本内容
i 目标 前面 插入内容
a 目标 后面 插入内容
在第二行后添加"aaa",并显示行号
cat -n test04.data|sed -e '2a aaa'
在第二行前添加"aaa",并显示行号
cat -n test04.data|sed -e '2i aaa'
(4)替换文本内容
语法:sed 's/替换前的字符串/替换后的字符串/n|g' 文件名
g:进行全局替换,将所有出现的进行替换
n:替换第n个
把文本中apple替换成abc
cat -n test04.data|sed -e 's/apple/abc/'