前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux基础必知必会(二)

Linux基础必知必会(二)

作者头像
诡途
发布2022-01-07 08:33:35
6840
发布2022-01-07 08:33:35
举报
文章被收录于专栏:诡途的python路诡途的python路

文章目录

一、Linux文件权限管理

1、dr-xr-xr-x. 4 root root 4096 Jul 22 09:24 boot

  • 第一列:不同用户对boot文件可以做哪些操作
  • 第二列:文件的链接数
  • 第三列:文件归哪一个用户所有,通常称作文件的所有者
  • 第四列:文件归哪一个用户组所有,通常称作文件的所属组
  • 第五列:文件的大小,单位是字节。 1kb=1024byte, 1mb=1024kb
  • 第六列:文件的创建日期或者最后修改的日期
  • 第七列:文件的名称

2、Linux文件系统会根据用户对文件的操作权限分为三类

  • 文件的所有者(user)
  • 文件的所属组(group)
  • 其他用户(other)

3、d rwx r-x r-x

  • 第一字符表示文件的类型
    • “d” 表示是一个目录
    • “-” 表示是一个文件
    • “l” 表示是一个链接文件
  • 后面9个字符,每3个字符是一组,一共分3组
    • 第一组:描述的是文件的所有者对该文件拥有哪些操作权限
    • 第二组:描述的是文件的所属组用户对该文件拥有哪些操作权限
    • 第三组:描述的是其他用户对该文件拥有哪些操作权限
  • 权限代表的意义
    • “r” 表示拥有读权限,read的简拼
    • “w” 表示拥有写权限,write的简拼
    • “x” 表示拥有执行权限,execute的简拼
    • “-” 表示所对应的位置权限是没有的

4、修改权限的命令

  • 使用chmod命令修改文件的权限
  • chmod命令文件的所有者或文件的所属组用户以及root用户有权限使用
  • chmod u+r file1 #给文件的所有者添加读权限
  • chmod g-w file1 #文件的所属组用户去掉写权限
  • chmod o+x file1 #文件的其他用户添加执行权限
  • chmod a+r file1 #给所有用户添加读权限
    • “u” -> 表示文件的所有者
    • “g” -> 表示文件的所属组用户
    • “o” -> 表示其他用户
    • “a” -> 表示所有用户

5、文件权限的数字表示法

  • “r” - 4
  • “w” - 2
  • “x” - 1
  • “-” - 0
代码语言:javascript
复制
# 举例:
rwxrwxr-- 774
rwxrw-r-- 764
  • 使用数字法修改文件的权限
    • chmod 774 file1
    • chmod 764 file1

6、修改文件的所有者用户

  • 示例1:chown zhangsan file1
  • 示例2:chown root:root file1 #同时修改文件的所有者和所属组
  • chown命令只有root用户才有权限使用

7、修改文件的所属组

  • chgrp zhangsan file1
  • chgrp命令只有root用户才有权限使用

二、vi/vim编辑器讲解

1、功能类似于windows操作系统里的记事本,用于编辑文件

2、vi和vim的操作是一样的,vim只不过是vi的升级版本

3、vi编辑器有三种模式

  • 命令行模式(默认打开一个文件时,就是处于命令行模式)
  • 编辑模式(在命令行模式下,按下字母i就会进入编辑模式,在最底端显示"–INSERT–"字样。按esc退出编辑模式)
  • 最后行模式(在命令行模式下,按shift + :就会进入最后行模式,在最底端显示":"字样)

4、命令行模式下的操作

  • 删除:连续按两下d字母,删除光标所在的这行内容
  • 撤销:按字母u撤销操作
  • 复制:连续按两下y字母,复制光标所在的这行内容
  • 粘贴:按字母p粘贴复制的内容
  • 剪切:连续按两下d字母,剪切光标所在的这行内容
  • 复制多行:使用复制命令之前,先按下要复制的行数
  • 删除多行:使用删除命令之前,先按下要删除的行数
  • 快速移动光标
  • 连续按两下g光标移动到文件头部
  • 按G(shift + g)光标移动到文件末尾
  • 进入编辑模式
    • 按i进入编辑模式
    • 按A(shift + a)进入编辑模式,并且光标移动到该行的末尾
  • 保存并退出:按shift + zz

5、在编辑模式下的操作

  • 编辑模式和使用记事本编辑文件是一样的
  • 按Esc退出编辑模式

6、最后行模式下的操作

  • 显示行号:set nu 或 number
  • 文本替换:1,$s/nologin/666/g
    • 1 表示起始行
    • $ 表示末尾行
    • s 表示替换
    • /nologin 表示待替换的内容
    • /666 表示替换内容
    • /g 全部替换
  • 退出:q
  • 强制退出:q!
  • 保存并退出:wq
  • 退出最后行模式(进入命令行模式)
    • 按Esc键

三、find命令讲解

1、功能:根据搜索条件查找文件

2、根据文件名称搜索

代码语言:javascript
复制
#命令格式:find [搜索范围] [-name -iname] 关键字
#示例1:#搜索根目录下,文件名是init的所有文件(注意:这里不是模糊搜索)
find / -name init	 	
#示例2:#搜索根目录下,文件名包含init的所有文件(模糊搜索)
find / -name *init*	
#示例3:#搜索根目录下,文件名以init开头的所有文件(模糊搜素)
find / -name init*	
#示例4:#搜索根目录下,文件名以init结尾的所有文件(模糊搜素)
find / -name *init	
#示例5:#搜索根目录下,文件名是init的所有文件(注意:严格区分大小写,忽略大小写使用-iname选项)
find /tmp -name init	
#示例6:##搜索根目录下,文件名是init的所有文件(注意:忽略大小写)
find /tmp -iname init	

3、根据文件大小搜索文件

  • 命令格式:find 搜索范围 文件大小(单位是数据块)
  • 单位数据块
    • 一个数据块大小是512字节
    • 假设我们要搜索大于100MB的文件
    • 1MB = 1024KB, 100MB = 102400KB
    • 1KB = 1024字节,512字节=文件块,1024字节=2个文件块,1KB = 2个文件块
    • 102400KB = 204800个文件块
    • 命令:find / -size +204800

4、根据文件类型搜索

代码语言:javascript
复制
# 命令格式:find [搜索范围] [-type] [d(目录) 或 f(文件)]
#示例1:搜索根目录下,文件名包含init的所有文件,并且文件类型是目录
find / -name *init* -a -type d 
#示例2:#搜索根目录下,文件名包含init的所有文件,并且文件大于10MB
find / -name *init* -a -size +20480	

四、Linux常用的符号

1、| 管道符号

管道符号通常和grep命令一起使用

grep是过滤命令,可以筛选搜索内容

示例:

管道符号可以把左侧输出的内容传递给右侧的命令继续使用

2、> 输出重定向符号(覆盖)

  • 把原本要输出的内容进行重定向(比如写入到指定的一个文件里)
  • echo命令相当于其他编程语言里的print函数,输出调试
代码语言:javascript
复制
# 示例1:
echo "Hello World" > /tmp/file1
# 示例2:#之前写入的Hello World会被覆盖
echo "My name is zhangsan" > /tmp/file1	

3、>> 输出重定向符号(追加)

代码语言:javascript
复制
#示例:之前吸入的My name is zhangsan不会被覆盖,追加写入
echo "I'm 18 years old." >> /tmp/file1		

五、sudo权限管理

1、sudo权限管理是针对命令的

2、权限配置文件:/ect/sudoers

3、配置格式:用户名 操作主机=执行命令的用户身份 执行命令

  • 配置的示例:root ALL=(ALL) ALL
  • 示例1:zhangsan server1=(ALL) reboot

4、要想编辑/etc/sudoers配置文件,必须使用visudo命令打开这个配置文件,然后就可以编译了

5、演示赋予zhangsan用户重启计算机命令

代码语言:javascript
复制
#配置信息:zhangsan	ALL=(ALL)	/usr/sbin/reboot
#使用su命令切换到zhangsan用户,
su - zhangsan
#命令重启计算机
sudo reboot

6、查看用户拥有哪些sudo命令

代码语言:javascript
复制
sudo -l

7、查看命令的绝对路径

代码语言:javascript
复制
which reboot

六、Linux时间命令

1、查看系统时间:date

2、修改系统时间:date -s “2019-07-23 14:43:00”

七、at命令

1、定时任务,执行一次之后命令就结束了

2、格式:at 执行任务的时间

3、举例:

代码语言:javascript
复制
at 14:49
at> echo "hello world" > /tmp/at.txt
ctrl + d 结束输入

八、Linux系统服务命令

1、查看系统服务命令是否启动

代码语言:javascript
复制
systemctl status [network(网卡服务) 或 atd(定时任务) 或 firewalld(防火墙)]

2、启动系统服务命令

代码语言:javascript
复制
systemctl start [系统服务]

3、关闭系统服务命令

代码语言:javascript
复制
systemctl stop [系统服务]

4、设置系统服务开机启动

代码语言:javascript
复制
systemctl enable [系统服务]
systemctl enable firewalld	#开机启动防火墙服务

5、禁止系统服务开机启动

代码语言:javascript
复制
systemctl disable [系统服务]
systemctl disable firewalld	#开机禁止启动防火墙服务

九、Linux文件压缩与解压

1、压缩和解压缩的命令

  • 压缩文件
    • gzip只能压缩文件,不能压缩目录
    • 格式:gzip 待压缩的文件
    • 示例:gzip file1
    • gzip压缩的时候,原文件不会保留
  • 解压文件
    • 格式:gunzip 待解压的文件
    • 示例:gunzip file1.gz

2、另一种压缩算法bzip2(作为了解就行了)

  • 压缩文件
    • 格式:bzip2 待压缩的文件
    • 示例:bzip2 file1
  • 解压文件
    • 格式:bunzip2 待解压的文件
    • 示例:bunzip2 file1.bz2 3、打包和解包命令
  • 打包就是把目录变成一个文件,没有任何压缩算法
  • 打包命令
    • 格式:tar -选项 待打包的文件
    • 示例:tar -cvf dir.tar dir
    • 注意:-f参数一定要放在最后
    • “-c” 打包
    • “-v” 显示过程
    • “-f” 签名档(打包后文件的名称)
  • 解包命令
    • 格式:tar -选项 解包路径
    • 示例1:tar -xvf dir.tar ./ #解压到当前目录
    • 示例2:tar -xvf dir.tar -C /opt/ #解压到其他目录,必须加-C(注意:C是大写的)
    • “-x” 解包

4、打包的同时进行压缩

代码语言:javascript
复制
tar -zcvf dir.tar.gz dir

5、解包的同时进行解压缩

代码语言:javascript
复制
tar -zxvf dir.tar.gz -C ./

十、Linux软件管理


1、CentOS系统的软件包格式为.rpm

2、linux有2种软件管理方式

  • rpm命令
  • yum命令 3、rpm命令的使用
  • 查看
    • 示例:rpm -qa | grep ‘python’ #查看系统是否有安装python软件
  • 安装
    • 示例:rpm -ivh /media/Packages/zlib-devel-1.2.7-17.el7.x86_64.rpm
  • 卸载
    • 示例:rpm -e --nodeps zlib-devel-1.2.7-17.el7.x86_64

4、yum命令的使用

  • 使用yum命令的前提,保证网络是畅通的,属于在线安装软件
  • 查看
    • 示例:yum list | grep ‘python’
  • 安装
    • 示例:yum install -y lrzsz
  • 卸载
    • 示例:yum remove -y lrzsz

5、我们通常使用yum安装软件,使用rpm -e --nodeps 卸载软件

十一、crontab定时器

1、crontab是周期性定时任务

2、在使用之前需要把crond服务开启

  • 检查是否已经开启
代码语言:javascript
复制
systemctl status crond
  • 如果没开启,则需要开启此服务
代码语言:javascript
复制
systemctl start crond

3、crontab命令的参数

  • -u 可以指定某一个用户执行此任务,通常不需要加
  • -e 编辑定时任务
  • -l 查看当前有哪些定时任务
  • -r 删除定时任务,注意:会把所有定时任务全部删除

4、一个简单的定时任务案例

代码语言:javascript
复制
* * * * * echo hello > /tmp/crontab.txt

5、定时任务时间解读

如果时间是时间段,可以

使用横杠(-)来表示一段连续的时间;

使用(,)表示若干不连续的时间;

使用星号(*)表示所有的时间;

使用除号(/)表示间隔时间。

6、定时任务练习题

代码语言:javascript
复制
10 21 * * * 命令			每天的21点10分执行命令
0 5 * * 1 命令			每周一的凌晨5点0分整执行命令
30 4 15,16 * * 命令		每月15号和16号的凌晨4点30分执行命令
*/5 4 * * * 命令			每天凌晨4点,每隔5分钟执行一次命令
0 4 * * 1-5 命令			每周一到周五的凌晨4点0分执行命令
0 0 1,15 * 1 命令		每月1号和15号,每周1的0点0分都会执行命令

7、删除某一个定时任务,使用crontab -e打开定时任务,然后使用dd删除保存即可

8、纠正虚拟机时间sudo date -s “2019-07-26 14:27:10”

上一篇:《Linux基础必知必会(一)》

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Linux文件权限管理
  • 二、vi/vim编辑器讲解
  • 三、find命令讲解
  • 四、Linux常用的符号
  • 五、sudo权限管理
  • 六、Linux时间命令
  • 七、at命令
  • 八、Linux系统服务命令
  • 九、Linux文件压缩与解压
  • 十、Linux软件管理
  • 十一、crontab定时器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档