CentOS 基础知识与命令总结

Linux目录含义

目录含义
/bin二进制命令所在的目录
/boot系统引导程序所需要的文件目录,引导系统开机
/dev设备软件目录,磁盘,光驱,
/etc系统配置,启动程序
/home普通用户的家,目录默认数据存放目录
/lib启动系统和运行命令所需的共享库文件和内核模块存放
/mnt临时挂载储存设备的挂载点,u盘插入光驱无法使用,需要挂载然后使用
/opt额外的应用软件包
/proc操作系统运行时,进程信息和内核信息存放在这里
/rootLinux超级权限用户root的家目录
/sbin和管理系统相关的命令,【超级管理员用】
/tmp临时文件目录,这个目录被当作回收站使用
/usr用户或系统软件应用程序目录
/var存放系统日志的目录

History 命令

history

列出之前敲过的命令

ll-h显示的信息

当前用户权限 硬链接(本身) 用户 用户组 大小 月份 日期 时间 文件名称

在这里插入图片描述

d --- --- ---

一共9个  都是权限

前三个:当前用户

中间三个:当前用户所属组

后边三个:其他人

查看盘符对应UUID

命令:ll /dev/disk/by-uuid/
在这里插入图片描述

sed命令

命令含义
sed 可选项 目标文件对目标文件 进行 过滤查询替换

可选参数

可选项英文含义
pprint打印
$代表 最后一行
-n仅显示处理后的结果
-eexpression根据表达式 进行处理

查询

准备数据
vim 1.txt
文件内容:

111:aaa:bbb:ccc
222:ddd:eee:fff
333:ggg:hhh
444:iii

在这里插入图片描述

sed -n -e '1,2p' 1.txt
// 列出1到2行的数据

在这里插入图片描述

 sed -n -e '1,$p' 1.txt
 // 列出1.txt所有数据

在这里插入图片描述

显示行号

可选项含义
=打印当前行号
sed -n -e '1,$=' -e '1,$p' 1.txt
// 显示1.txt所有内容 并显示行号

在这里插入图片描述

sed -n -e '/aaa/p' 1.txt
# 显示1.txt中包含aaa的行

在这里插入图片描述

不区分大小写

可选项英文含义
Iignore忽略大小写

识别正则表达式

可选项英文含义
-rregexp-extended识别正则

删除

可选项英文含义
ddelete删除指定内容

修改

参数英文含义
iinsert目标前面 插入内容
aappend目标后面 追加内容

替换

英文含义
s/oldString/newString/replace替换
选项英文
2c 新字符串replace使用新字符串 替换 选中的行

对源文件进行操作

参数英文含义
-iin-place替换原有文件内容
ifconfig eth0 | grep "inet addr" | sed -e 's/^.*inet addr://' | sed -e 's/Bcast:.*$//'
// 获取ip地址

在这里插入图片描述

Find命令

序号命令格式作用
01find [路径] -name ‘*.txt’查找指定路径下扩展名是 .txt的文件, 包括子目录

如果省略路径, 表示在当前文件夹下查找
find命令后的参数可以有通配符

用法示例

# 示例
find /home/ -name '123.txt'
# 在/home/目录下,查找名为123.txt的文件或目录

find . -name '123.txt'
# 在当前目录下,查找名为123.txt的文件或目录(别忘了点.很小的那个点,仔细看)

find -name '123.txt'
find ./ -name '123.txt'
# 在当前目录下,查找名为123.txt的文件或目录(其实.不写也行,或者写成./也行哦)

find /home/ -name "*123*"
# 在 /home/ 目录下,查找名为以任意多个任意字符开头,中间是123,
# 再以任意多个任意字符结尾的文件或目录

find /home/ -name "*.txt"
# 查找 /home/ 目录下,所有以.txt为扩展名的文件

find /home/ -name "123*"
# 查找 /home/ 目录下,所有以123开头的文件或目录

find命令的参数详解

  • find 查找路径 查找条件 处理动作

  • find 路径 -选项 选项参数 -选项 选项参数 …

后边可以追加很多-选项 选项参数

选项选项用法
-name按照文件名查找文件。
-perm按照文件权限来查找文件。
-empty文件为空而且是一个普通文件或者目录。

按文件名查找

-name pattern:文件名为pattern的文件。注意如果pattern中包括*等特殊符号的时候,需要加引号。

-iname:name的忽略大小写版本。

-lname pattern:查找符号连接文件名为pattern的文件。

-ilname:lname的忽略大小写版本。

按路径查找

-path pattern:根据完整路径查找文件名为pattern的文件。

-ipath:path的忽略大小写版本。

用正则表达式匹配文件或目录名

-regex pattern

-iregex:regex的忽略大小写版本。

指定文件长度查找

可选单位含义简称
c字节单位。字节
b块为单位,块大小为512字节,这个是默认单位。比特 byte
w以words为单位,words表示两个字节。word 俩字节
k以1024字节为单位。KB
M以1048576字节为单位。MB
G以1073741824字节温单位。GB

按文件类型查找

c可以选择的类型为:

类型含义
b块设备文件
c字符设备文件
d目录文件
p管道文件
l符号链接文件(小写的L)
s套接字文件
f普通二五年间

按时间类型查找

类型含义单位
-atime访问时间(access time),指的是文件最后被读取的时间
-ctime变更时间(change time),指的是**文件本身(权限、所属组、位置…)**最后被变更的时间
-mtime修改时间(modify time),指的是文件内容最后被修改的时间
-amin访问时间(access time)分钟
-cmin变更时间(change time)分钟
-mmin修改时间(modify time)分钟

常用命令

关机 halt

重启 reboot

su + 用户名 切换用户

su zhangsan
# 切换到zhangsan用户
su -u root 
# 切换到root用户(有严重的安全隐患)

sudo 命令用来以其他身份来执行命令, 预设的身份为 root

给 指定用户 授予 权限

vim /etc/sudoers

# 默认存在: root用户 具备所有的权限
root    ALL=(ALL)       ALL

# 授予 zhangsan 用户 所有的权限
zhangsan    ALL=(ALL)       ALL 
  • 时间和日期
    • date 查看系统时间
    • cal 查看日历
  • 磁盘和目录空间
    • df
    • du
  • 进程信息
    • ps 进程列表
    • top 实时CPU占用表(退出top直接输入q)
    • kill 杀死某个进程
序号命令作用
01ps auxprocess status 查看进程的详细情况
02top动态显示运行中进程并且排序
03kill [-9] 进程代号终止指定代号的进程 -9 表示强行终止

sort命令

sort针对文本文件的内容,以行为单位排序

# 开始前在当前目录下创建如下的几个文件
vim score.txt

# 文件内容:
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46


vim word.txt
# 文件内容:
banana
apple
pear
orange
pear


vim num.txt
# 文件内容:
1
3
5
7
11
2
4
6
10
8
9

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对字符串排序

sort word.txt
# 对2.txt排序,默认以a,b,c这种ASC码正序排序,排序后显示如下:

在这里插入图片描述

去重排序

参数英文含义
-uunique在输出行中去除重复行
sort -u word.txt
# 对2.txt排序,去除重复内容
# 与上面结果对比可以发现,重复的一个pear被去掉了

在这里插入图片描述

对数值排序

参数英文含义
-nnumeric-sort按照数值大小排序
-rreverse使次序颠倒
sort num.txt
# 默认按照字符串排序规则排序

在这里插入图片描述

sort -n num.txt
# 按数值大小排序

sort -n -r num.txt
# 按数值排序,然后颠倒顺序(reverse)

在这里插入图片描述

sort -nr num.txt
# 同上面一样,因为命令是可以连用的,所以这里作为演示

在这里插入图片描述

对成绩排序

参数英文含义
-tfield-separator指定字段分隔符
-kkey根据那一列排序
sort -t ' ' -k2n score.txt
# 用空格把数据分为几列,以第二列为准,按数字从小到大排序所有行
# -t 和 -k 通常是一起使用的

在这里插入图片描述

sort -t ' ' -k3nr score.txt
# 用空格把数据分为几列,以第三列为准,按数字从大到小排序所有行

在这里插入图片描述
-b 忽略每行前面开始空出的空格字符
-c 检查文件是否已经按照顺序排序
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-f 排序时,将小写字母视为大写字母
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符
-m 将几个排序号的文件进行合并
-M 将前面3个字母依照月份的缩写进行排序
-o <输出文件> 将排序后的结果存入制定的文件

wc命令

wc命令可以显示指定文件的 字节数, 单词数, 行数 等信息

准备数据:

vim test.txt
文件内容:
111
222 bbb
333 aaa bbb 
444 aaa bbb ccc
555 aaa bbb ccc ddd
666 aaa bbb ccc ddd eee

vim test2.txt
文件内容:
66666
77777
88888
99999

vim test3.txt
文件内容:
123
321
123
321
12333
32111

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参数英文含义
-cbytes字节数
-wwords单词数
-llines行数
-mlines字符数 不能与-c一起用
wc -c test.txt
# 显示test.txt的字节数

在这里插入图片描述

wc -w test.txt
# 显示test.txt含有的单词数(两个空格之间的内容是单词)

在这里插入图片描述

wc -l test.txt
# 显示test.txt总共的行数

在这里插入图片描述

wc test.txt
# 依次显示文件的   行数,单词数,字节数,文件名

在这里插入图片描述

wc test.txt test2.txt
# 同时统计多个文件的 行数,单词数,字节数,并显示总量

在这里插入图片描述

wc *.txt
# 统计当前目录下,所有以.txt为后缀名的文件的 行数,单词数,字节数,并显示总量

在这里插入图片描述

# 管道用法:
ls /etc | wc -w
# 统计管道内单词数量

# ls /etc 返回一堆文件名,符合单词形式
# | 把它们压入管道
# wc -w 统计管道内单词数

在这里插入图片描述

uniq命令

uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。

命令英文含义
uniq [参数] 文件unique 唯一去除重复行
准备内容

vim uniq.txt
文件内容:
张三    98
李四    100
王五    90
赵六    95
麻七    70
李四    100
王五    90
赵六    95
麻七    70

在这里插入图片描述

cat uniq.txt  | sort
#  排序uniq.txt的内容再展示,这时还没去重

在这里插入图片描述

cat uniq.txt | sprt | uniq
#  排序uniq.txt的内容再展示,这时去重了

在这里插入图片描述

参数英文含义
-ccount统计每行内容出现的次数
cat uniq.txt | sort | uniq -c
#  排序uniq.txt的内容再展示,这时去重了,而且把重复的次数标出来了

在这里插入图片描述

awk命令

选项英文含义
-F ','field-separator使用 指定字符 分割
$ + 数字获取第几段内容
$0获取 当前行 内容
NFfield表示当前行共有多少个字段
$NF代表 最后一个字段
$(NF-1)代表 倒数第二个字段
NR代表 处理的是第几行

模糊查询

准备数据

vim score.txt
文件内容:
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46

在这里插入图片描述

awk '/zhangsan|lisi/' score.txt

在这里插入图片描述

指定分割符, 根据下标显示内容

准备数据
vim 1.txt
文件内容:
111:aaa:bbb:ccc
222:ddd:eee:fff
333:ggg:hhh
444:iii

在这里插入图片描述

awk -F ':' '{print $1,$2,$3}' 1.txt
# 操作1.txt文件,  根据冒号分割, 打印 第一段 第二段 第三段 内容

在这里插入图片描述

指定分割符, 根据下标显示内容

选项英文含义
OFS="字符"output field separator向外输出时的段分割字符串
awk -F ':' '{OFS="---"}{print $1,$2,$3}' 1.txt
# 同上,但是用---作为分隔符

在这里插入图片描述

调用 awk 提供的函数

函数名含义作用
toupper()upper字符 转成 大写
tolower()lower字符 转成小写
length()length返回 字符长度
awk -F ':' '{print toupper($2)}' 1.txt
# 展示以:分割的第二段,并用toupper函数转换成大写

在这里插入图片描述

if语句 查询及格的学生信息

参数含义
if($0 ~ “aa”) print $0如果这一行包含 “aa”, 就打印这一行内容
if($1 ~ “aa”) print $0如果**第一段 **包含 “aa”, 就打印这一行内容
if($1 == “lisi”) print $0如果第一段 等于 “lisi”, 就打印这一行内容
awk -F ' ' '{if($4 > 60) print $1,$4}' score.txt 

在这里插入图片描述

awk -F ' ' '{if($4 > 60) print $1,$4,"及格";else print $1,$4,"不及格"}' score.txt

在这里插入图片描述

求平均分

命令含义
awk ‘BEGIN{初始化操作}{每行都执行} END{结束时操作}’ 文件名BEGIN{ 这里面放的是执行前的语句 }
{这里面放的是处理每一行时要执行的语句}
END {这里面放的是处理完所有的行后要执行的语句 }
 awk -F ' ' 'BEGIN{}{total=total+$4}END{print total,NR,(total/NR)}' score.txt

在这里插入图片描述

awk的内置字符串函数

gsub(r,s) 在整个$0中用s替代r
gsub(r,s,t) 在整个t中用s替代r
index(s,t) 返回s中字符串t的第一位置
length(s) 返回s长度
match(s,r) 测试s是否包含匹配r的字符串
split(s,a,fs) 在fs上将s分成序列a
sprint(fmt,exp) 返回经fmt格式化后的exp
sub(r,s) 用$0中最左边最长的子串代替s
substr(s,p) 返回字符串s中从p开始的后缀部分
substr(s,p,n) 返回字符串s中从p开始长度为n的后缀部分

awk常用内置变量

FS:输入字符风隔符,默认为空白字符

OFS:输出字段分隔符,默认为空白 字符

RS:输入记录分隔符(输入换行符),指定输入时的额换行符

NF:number of Field,当前行的字段的个数,字段数量

NR:行号,当前处理的文本行的行号

FNR:各文件分别计数的行号

FILENAME:当前文件名

ARGC:命令行参数的个数

ARGV:数组,保存的是命令行所给定的各参数

匹配的正则:

^$匹配空行

split命令

命令英文含义
split -l 1000 文件lines将大文件切分成若干1000行 的小文件
命令英文含义
split -b 10k 文件byte将大文件切分成若干10KB的小文件
准备数据

vim score.txt
文件内容:
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46

在这里插入图片描述

split -b 10 score.txt
# 把score.txt分成10个大小为10字节的文件,多余的部分单独形成一个文件

在这里插入图片描述

split -l 1 score.txt
# 把score.txt 分成若干个1行的小文件

在这里插入图片描述
-d: 使用数字后缀

tr命令

tr 命令用于 替换删除 文件中的字符。

命令英文含义
命令结果 | tr 被替换的字符 新字符translate实现 替换效果
echo 'hello' | tr 'h' 'H'
# 把展示的小写的h替换为大写的H

echo 'hello' | tr '[a-z]' '[A-Z]'
# 把展示的小写的hello替换为大写的HELLO

echo 'HELLO' | tr '[A-Z]' '[a-z]'
# 把展示的大写的HELLO替换为小写的hello

命令英文含义
命令结果 | tr -d 被删除的字符delete删除指定的字符
echo 'a1b2c3d4'  | tr -d '[0-9]'
# 删除a1b2c3d4中的数字

tee命令

命令含义
命令结果 | tee 文件1 文件2 文件3通过 tee 可以将命令结果 通过管道 输出到 多个文件
准备内容

vim uniq.txt
文件内容:
张三 98
李四 100
王五 90
赵六 95
麻七 70
李四 100
王五 90
赵六 95
麻七 70

在这里插入图片描述

cat uniq.txt  | sort -t ' ' -k2nr | uniq -c |tee a.txt b.txt c.txt
# 根据第二行的数字,从大到小排序,去重并显示重复次数,然后展示
# 展示完还要把展示的结果分别写入a.txt b.txt c.txt

在这里插入图片描述

在这里插入图片描述

Crontab命令

crontab可以做到定时执行某某脚本,某某命令,慎用!。

crontab -e
# 打开定时任务列表(可编辑的任务列表,慎重修改)

crontab -l
# 显示所有的定时任务

crontab -r   (轻则服务器崩溃,重则工作不保)
# 删除所有的定时任务


cat /etc/crontab
# 查看5个*的解释

在这里插入图片描述

含义范围
第一个 *一小时当中的第几分钟0~59
第二个 *一天当中的第几小时0~23
第三个 *一个月当中的第几天1~31
第四个 *一年当中的第几月1~12
第五个一周当中的星期几0~7(0和7都代表星期日)

例子

命令含义
* * * * * command实例1:每1分钟执行一次command
3,15 * * * * command实例2: 每小时的第3和第15分钟执行
3,15 8-11 * * * command实例3: 在上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command实例4: 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command实例5: 每个星期一的上午8点到11点的第3和第15分钟执行
30 21 * * * /etc/init.d/smb restart实例6: 每晚的21:30重启smb
45 4 1,10,22 * * /etc/init.d/smb restart实例7: 每月1、10、22日的4 : 45重启smb
10 1 * * 6,0 /etc/init.d/smb restart实例8:每周六、周日的1 : 10重启smb
0,30 18-23 * * * /etc/init.d/smb restart实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

SCP远程文件拷贝

scp是 remote file copy program 的缩写

同时开启node01 和 node02 虚拟机

在node01里输入如下命令:
cd /tmp
# 切换到/tmp目录
touch 123.txt
# 创建一个123.txt文件
scp 123.txt hadoop02:/tmp/
# 把当前目录下的123.txt传到hadoop02(192.168.100.202)的/tmp/目录下

这里它会询问hadoop02的root密码
(如果你是第一次往hadoop02传东西,还会问你是否连接,你输入yes回车,就会问你hadoop02的root密码)
在这里插入图片描述
输入密码后,传输成功!
在这里插入图片描述

常用的压缩命令

Linux压缩与解压缩

tar z/j cvf 包的名称 [文件名称或路径]

参数含义
z/j指定解压格式
-c创建包
v显示详细信息
f文件名

tar z/jxvf 包名 [-C 解压缩的路径]

参数含义
-x表示解压
-C文件解压后写入的路径
打包压缩解压缩
tar -zcvf 打包之后的文件名.tar.gztar -zxvf 打包之后的文件名.tar.gz [ -c 指定解包位置]
tar -jcvf 打包之后的文件名.tar.bz2tar -jxvf 打包之后的文件名.tar.bz2 [ -c 指定解包位置]
tar -cvf 打包之后的文件名.tartar -xvf 打包之后的文件名.tar [ -c 指定解包位置]

老版本Compress压缩

compress [-dfvcV],[-b maxbits],[文件名称或路径]

参数列表:

c输出结果至标准输出设备(一般指荧幕)
f强迫写入档案,若目的档已经存在,则会被覆盖 (force)
v将程序执行的讯息印在荧幕上 (verbose)
b设定共同字串数的上限,以位元计算,可以设定的值为 9 至 16 bits 。由于值越大,能使用的共同字串就 越多,压缩比例就越大,所以一般使用预设值 16 bits (bits)
d将压缩档解压缩
V列出版本讯息

用户、用户组、权限 相关操作

用户组的增删改查

添加组groupadd 组名
查看组cat /etc/group
删除组groupdel 组名
修改文件所属的组chgrp 目标组名 文件/目录

创建用户时,若未指定用户所属的组,那么系统会创建一个与用户名相同的组,该用户所属的组与用户名完全相同

用户的增删改查

查看当前系统有哪些用户cat /etc/passwd
增加用户useradd 用户名
为用户设置密码passwd 用户名 + 回车
查看root用户所属的组id root
查看系统登录的用户who
查看当前用户whoami
删除用户userdel
修改用户usermod

用户的相关数据包含如下几项:
用户基本信息:存储在 /etc/passwd 文件中;
用户密码信息:存储在 /etc/shadow 文件中;
用户群组基本信息:存储在 /etc/group 文件中;
用户群组信息信息:存储在 /etc/gshadow 文件中;
用户个人文件:主目录默认位于 /home/用户名,邮箱位于 /var/spool/mail/用户名。

Linux passwd命令

Linux passwd命令用来更改使用者的密码

语法

passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

参数列表

-d删除密码
-f强制执行
-k更新只能发送在过期之后
-l停止账号使用(锁定)
-S显示密码信息
-u启用已被停止的账户(解锁)
-x设置密码的有效期
-g修改群组密码
-i过期后停止用户账号
–help显示帮助信息
–version显示版本信息

如何将用户从一个组中移除?

gpasswd -d userName groupName

usermod的用法

usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
-c<备注>修改用户帐号的备注文字。
-d登入目录>修改用户登入时的目录。
-e<有效期限>修改帐号的有效期限。
-f<缓冲天数>修改在密码过期后多少天即关闭该帐号。
-g<群组>修改用户所属的群组。
-G<群组>修改用户所属的附加群组。(把用户添加到某组)
-l<帐号名称>修改用户帐号名称。
-L锁定用户密码,使密码无效。
-s修改用户登入后所使用的shell。
-u修改用户ID。
-U解除密码锁定。

权限介绍

drwxr-xr-x2 root group01 4096 9月 27 12:24 dir1
d类型 d为目录 -为文件
rwx用户对这个目录或文件的操作权限
r-x用户所属的组对这个目录或文件的操作权限
r-x其它用户所属对这个目录或文件的操作权限
root文件所属的用户
group01文件所属的用户所属的组
4096文件的大小

Linux sudo命令总结

第一步:使用普通用户登陆系统,进入root用户所属的目录创建文件夹001,mkdir001

创建时报错“权限不足”

​ 第二步:临时使用超级管理员权限进行创建。命令:sudo mkdir 001 报错“zhangsan不在sudoers文件中”

​ 第三步:在/etc/sudoers文件中添加zhangsan信息 zhangsan ALL=(ALL) ALL 最后强制保存退出(wq!)

​ 第四步:重新创建目录“sudo mkdir 001”(需要输入zhangsan的密码)

/etc/passwd内容含义

在这里插入图片描述

用户名:密码(x表示加密的密码):UID(用户标志):GID(组标志):用户全名或本地账号:家目录:

登录使用的Shell,就是登录之后,使用的终端命令

chmod 777 路径

更改权限

sudo 临时使用管理员权限

Linux输出重定向>和>>区别如下:

>: 会重写文件,如果文件里面有内容会覆盖。
>>这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件。
>>:追加文件,也就是如果文件里面有内容会把新内容追加到文件尾。
>   是定向输出到文件,如果文件不存在,就创建文件;
>   如果文件存在,就将其清空。一般我们备份清理日志文件的时候,
>   就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节)。
  • 14
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值