Skip to main content
  1. Posts/

Linux命令简介

·2935 words
Linux 命令简介
Table of Contents

前言
#

最近想要学学其他人的blog的内容,来充实自己的知识库。我想到的就是“楚鹏的个人博客”,我看到讲的东西较为基础,也适合我学习。所以我打算用这种半搬半学的方式来看这个blog。从这个博客学习的东西,因为可能也涉及到自己的感悟,之后就不再参考网址列出。这一篇其实已经不是我最开始学习的一篇了,最开始学习的应该算是mkdocs的那一篇。不过对我来说,写这段话就是觉得自己应该记住一些事情。这也是我记笔记的意义之一。

其实我使用Linux也已经有一段时间了,主要就是用Linux做服务器,搭建各种服务。Linux给我的感觉还是不适合日常使用,并且需要掌握命令行界面的基础操作才行。不同于Windows的图形化,Linux在我看来还是命令行为主的。所以命令就是必不可少的了。

命令列表
#

帮助命令
#

man cmd
info cmd
cmd --help

常用命令
#

pwd     # 查看当前所在目录
ls      # 查看当前目录的所有文件
cd      # 进入某个目录
cp      # 复制
mv      # 移动/改名
touch   # 创建文件
mkdir   # 创建文件夹
cat     # 查看文件内容
head    # 查看文件开头的内容
tail    # 查看文件结尾的内容
more    # 分页查看文件内容1
less    # 分页查看文件内容2
cut     # 截取
sort    # 排序
uniq    # 去重
wc      # 统计行数
find    # 查看文件,一般与通配符一起使用
xargs   # 重定向
alias   # 起别名
ln      # 创链接
readlink    # 读取链接
echo    # 查看变量内容或输出内容到命令行
whereis # 查看命令命令所在的目录
which   # 查看某个命令
hostname    # 查看服务器名
hostnamectl # 设置服务器名
ssh     # 远程登录服务器用
tr      # 截取
stat    # 查看文件状态
file    # 查看文件状态
md5sum  # 加密命令
dos2unix    # 有时候从windows系统上传文件到Linux,会出现格式报错,使用此命令可以消除报错
tee     # 产生大文件的命令
iptables    # 防火墙命令
getenforce  # 获取selinux参数
setenforce  # 设置selinux参数

磁盘管理命令
#

mount       # 挂载
umount      # 取消挂载
du          # 查看磁盘空间
df          # 查看磁盘空间
fdisk       # 磁盘分区
mkfs        # 设置文件系统

压缩解压命令
#

tar     # 压缩解压命令,Linux中压缩解压最常用
zip     # 压缩命令,windows上也有
unzip   # 解压缩命令
gzip    # 压缩命令

进程管理命令
#

ps          # 查看进程
pstree      # 以进程树形式查看进程
kill        # 以进程号关闭进程
killall     # 以进程名关闭进程
top         # 查看进程及资源
htop        # 查看进程及资源1
glances     # 查看进程及资源2
nohup(+cmd+&)   # 后台运行
systemctl   # centos7后的服务管理命令
service     # centos6前的服务管理命令

权限管理命令
#

chmod       # 更改文件或目录权限(读写可执行)
chown       # 更改属主
chgrp       # 更改属组
umask       # 更改掩码
chattr      # 改变文件属性(ext2)

网络命令
#

ip          # 获取ip地址,网卡等相关信息
ifconfig(需要安装net-tools)     # 获取IP地址,网卡等相关信息
netstat (需要安装net-tools)     # 获取端口等相关信息
ss          # 同上
route       # 获取路由表信息
telnet      # 查看端口是否在用
ping        # 查看ip地址是否通讯正常
tcpdump     # 查看tcp包
nc          # 设置路由器
nslookup    # 查看dns记录
curl        # 获取网页内容命令
wget        # 下载命令

安装命令
#

centos相关:

yum     # 自动解决依赖
rpm     # 安装某个包

ubuntu相关:

apt     # 同yum
dpkg    # 同rpm

系统管理命令
#

free        # 查看内存情况
uptime      # 查看cpu负载
lscpu       # 查看cpu情况
lspci       # 查看pci信息
uname       # 查看当前系统

用户管理命令
#

useradd     # 添加用户
userdel     # 删除用户
usermod     #修改用户设定
passwd      # 设置用户密码
chpasswd    # 更改用户密码(只有root权限能使用)
chage       #
id          # 查看用户id
su          # 切换用户
sudo        # 管理员用户使用root权限
visudo      # 修改root权限文件
who         # 查看当前在线用户
w           # 同上
whoami      # 查看当前用户是谁
last        # 查看最近登录的信息

定时任务命令
#

crontab     # 设置定时任务,可以周期性执行
at          # 设置定时任务,只执行一次!

grep
#

1.grep全拼:

global search regular expression and print out the line

2.grep作用:

文本搜索工具,根据用户指定的“模式”(过滤条件)对目标文件逐行进行匹配检查,打印匹配到的行

3.模式:由正则表达式的元字符及文本字符所编写的过滤条件

4.语法:

grep [options] [pattern] file
命令   参数      匹配模式  文本数据

4.1 参数

-q:--quiet,--silent,静默模式,即不输出任何信息!
-v:排除匹配结果
-n:显示匹配行与行号
-i:不区分大小写
-c:只统计匹配的行数
-E:支持扩展正则
--colorauto:为grep过滤结果添加颜色
-w:只匹配过滤的单词
-o:只输出匹配的内容

4.2 匹配模式,就是你想要找的东西,可以是普通的文字符号,也可以是正则表达式

5.grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据 如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令!

sed
#

sed全拼:stream editor(字符流编辑器),简称流编辑器 sed是操作、过滤、转换文本内容的强大工具

常用的功能包括:结合正则表达式对文件实现快速增删改查,其中查询功能中最常用的2大功能是过滤(过滤指定字符串)、取行(取出指定行)

语法:

sed [options] [sed内置命令字符] file

选项:
-n:取消默认sed的输出,常与sed内置命令p一起用
-i:直接将修改结果写入文件,不用-i,sed修改的是内存数据
-e:多次编辑,不需要管道符
-r:支持正则扩展

内置命令符:

a:append,对文本追加,在指定行后面添加一行/多行文本
d:delete,删除匹配行
i:insert,插入文本,在指定行前添加一行/多行文本
p:print,打印匹配行的内容,通常与-n一起用
s/正则/替换内容/g:匹配正则内容,然后替换,结尾g代表全局匹配

sed匹配范围:

空地址:全文处理  
单地址:指定文件某一行  
/pattern/:被模式匹配到的每一行  
范围区间:10,20:10行到20行  10,+5:第10行向下5行   /pattern1/,/pattern2/:输出pattern1和pattern2之间的数据!  
步长:1~2:表示1,3,5,7,9等奇数行。2~2:表示2,4,6,8,10等偶数行  

使用场景

1.脚本中快速修改替换配置文件内容!

sed -i 's/127.0.0.1/10.0.8.2/g' /etc/zabbix/zabbix-server.conf  

2.截取日志文件中指定时间段的日志!

sed -n '/2022\/02\/09 21:20:17/,/2022\/02\/09 21:20:41/'p error.log.1  

awk
#

awk是一个强大的Linux命令,有强大的文本格式化的能力,好比将一些文本数据格式化成专业的execl表的样式

awk更像是一门编程语言,支持条件判断、数组、循环等功能

语法

awk [option] 'pattern[action]' file 

action指的是动作,awk擅长文本格式化,且输出格式化后的结果,因此最常用的动作就是print和printf

对awk而言,变量分为

-内置变量
-自定义变量

内置变量

$n                      指定分隔符后,当前记录的第n个字段
$0                      完整的输入记录
FS                      字段分隔符,默认是空格
NF(number of fields)            分隔后,当前行一共有多少个字段
NR(number of records)           当前记录数,行数

man awk(查看更多内置变量)

FS  输入字段分隔符
OFS 输出字段分隔符
RS  输入记录分隔符,指定输入时的换行符
ORS 输出记录分隔符(输出换行符),输出时用指定符号代替换行符
NF  当前行的字段的个数
NR  当前处理的文本行的行号
FNR 各文件分别计数的行号
FILENAME    当前文件名
ARGC    命令行参数的个数
ARGV    数组,保存的是命令行所给定的各参数

内置变量NR、NF不用添加$符号而$0,$1….需要添加$符号!

三剑客总结:

  • grep:擅长单纯的查找或匹配文本内容
  • awk:更适合编辑、处理匹配到的文本内容
  • sed:更适合格式化文本内容,对文本进行复杂处理

三剑客都是在内存中操作文件,sed可以加-i参数操作原文件,grep和awk可以使用重定向得到结果!

参考网址
#

收款码