2.系统目录结构:
登录系统后,在当前命令窗口下输入命令:ls / 查看所有目录

- /bin: 存放二进制可执行命令
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev : 存放外部设备特殊文件
- /etc: 系统管理和配置文件
- /home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
- /lib: 这个目录里存放着系统最基本的动态连接共享库,作用类似windows里的.dll文件
/sbin 超级管理命令,这里存放的是系统管理员使用的管理程序
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root: 该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin: s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /srv: 该目录存放一些服务启动之后需要提取的数据。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /tmp: 这个目录是用来存放一些临时文件的。
- /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run: 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
- /www : 存放服务器网址相关的资源,
具体的目录结构:
- /bin [重点] (/usr/bin 、 /usr/local/bin)
- 是Binary的缩写, 这个目录存放着最经常使用的命令
- /sbin(/usr/sbin 、 /usr/local/sbin)
- s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /home [重点]
- 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般
该目录名是以用户的账号命名的。
- 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般
- /root [重点]
- 该目录为系统管理员,也称作超级权限者的用户主目录。
- /lib
- 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几
乎所有的应用程序都需要用到这些共享库
- 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几
- /lost+found
- 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /etc [重点]
- 所有的系统管理所需要的配置文件和子目录 my.conf
- /usr [重点]
- 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与
windows下的program files目录。
- 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与
- /boot [重点]
- 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- /proc
- 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
- /srv
- service缩写,该目录存放一些服务启动之后需要提取的数据。
- /sys
- 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统
- /tmp
- 这个目录是用来存放一些临时文件的。
- /dev
- 类似于windows的设备管理器,把所有的硬件用文件的形式存储。
- /media [重点]
- linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux
会把识别的设备挂载到这个目录下。
- linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux
- /mnt [重点]
- 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂
载在/mnt/上,然后进入该目录就可以查看里的内容了。 d:/myshare
- 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂
- /opt
- 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。
默认为空。
- 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。
- /usr/local [重点]
- 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。
- /var [重点]
- 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。
包括各种日志文件。
- 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。
- /selinux [security-enhanced linux] 360
- SELinux是一种安全子系统,它能控制程序只能访问特定文件。
3.Linux远程登陆及上传下载文件
3.1远程登录Linux-Xshell5
- Xshell 是目前最好的远程登录到Linux操作的软件之一,流畅的速度并且完美解决了中文乱码的问题, 是目前程序员首选的软件。
- Xshell[1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft
Windows 平台的TELNET 协议。 - Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好
的达到远程控制终端的目的。
Xshell安装:傻瓜式安装
特别说明:如果希望安装好的Xshell5可以远程访问Linux系统的话,需要一个前提,就是Linux系统启动了SSHD服务,该服务会监听22号端口
3.2远程上传下载文件Xftp

右键点击桌面要传输到Linux的文件,再在弹出的选项中点击传输

解决xftp中文乱码问题

点击确定刷新一下即可解决
查看sshd状态:
service sshd status
重新启动sshd服务
service sshd restart
4.vi和vim编辑器的使用
vi和vim的基本介绍
所有的 Linux 系统都会内建 vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别
语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别
丰富,在程序员中被广泛使用。
vi和vim常用的三种模式
正常模式 (Normal-mode)
插入模式 (Insert-mode)
命令模式 (Command-mode)
① 正常模式
启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。
② 插入模式
在正常模式中按下i, I, a, A等键,会进入插入模式。
现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
③ 命令模式
在正常模式中,按下:(英文冒号)键,会进入命令模式。
在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
5.基本操作命令
5.1开机、重启、用户注销
5.1.1开机、重启基本介绍:
- shutdown
- shutdown –h now 立该进行关机
- shudown -h 1 “hello, 1 分钟后会关机了”
- shutdown –r now 现在重新启动计算机
- halt 关机,作用和上面一样.
- reboot 现在重新启动计算机
- sync 把内存的数据同步到磁盘.
5.1.2用户登录和注销
基本介绍:
1)登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可
以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份.
2)在提示符下输入 logout 即可注销用户
使用细节:
1)logout 注销指令在图形运行级别无效,在 运行级别 3下有效.
2)运行级别这个概念,后面给大家介绍
5.2 用户管理
如图:

上图解释:一个linux系统可以拥有多个用户,在linux操作系统中拥有很多的用户组,用用户在来管理用户的权限,!](https://img-blog.csdnimg.cn/98d58e0bb5fd4082975d5de7304f83a3.png)
用家目录来规定某个用户可以在某个目录下用
5.2.1基本介绍
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向
系统管理员申请一个账号,然后以这个账号的身份进入系统。
5.2.2添加用户
基本语法
useradd 用户名
细节说明
1)当创建用户成功后,会自动的创建和用户同名的家目录
2)也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
5.2.3 指定/修改密码
基本语法
passwd 用户名
5.2.4删除用户
基本语法
userdel 用户名
应用案例
1)删除用户xiaoming,但是要保留家目录

2)删除用户以及用户主目录

5.2.5查询用户信息指令
基本语法
id 用户名
应用实例
案例1:请查询root 信息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q71hAAGp-1668049250199)(img/查询用户.png)]](https://img-blog.csdnimg.cn/e6267d1fd1604c40be845d4882127379.png)
细节说明:当用户不存在时,返回无此用户
5.2.6 切换用户
介绍
在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root
基本语法
su – 切换用户名
应用实例
1)创建一个用户zf, ,指定密码,然后切换到 zf.
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUIde5J5-1668049250199)(img/切换用户.png)]](https://img-blog.csdnimg.cn/2fce07bc950b457386601b32ac294477.png)
细节说明
1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2)当需要返回到原来用户时,使用exit指令
5.2.7 用户组
介绍
类似于角色,系统可以对有共性的多个用户进行统一的管理。
新增组
•指令
groupadd 组名
删除组
•指令(基本语法)
groupdel 组名
案例演示
增加用户时直接加上组
•指令(基本语法)
useradd –g 用户组 用户名
增加一个用户 zwj, 直接将他指定到 wudang
修改用户的组
•指令(基本语法)
usermod –g 用户组 用户名
•案例演示
修改用户的组
•指令(基本语法)
usermod –g 用户组 用户名
•案例演示
用户和组的相关文件
/etc/passwd 文件(重点)
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警
告时间:不活动时间:失效时间:标志/etc/group 文件(重点)
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
5.3指定运行级别
运行级别说明:
0 :关机
1 :单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5 ,要修改默认的运行级别可改文件
/etc/inittab的id:5:initdefault:这一行中的数字
命令:init [012356]
面试题:
如何找回root密码,如果我们忘记root密码,这么找回?
思路:进入到单用户模式,然后修改root密码.因为进入单用户模式root不需要密码就可以登陆
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LpYeQV0J-1668049250201)(img/找回密码.png)]](https://img-blog.csdnimg.cn/040c2f44e7964a1eabfd9f0dbf97cadc.png)
5.4帮助指令
man 获得帮助信息
•基本语法
man [命令或配置文件](功能描述:获得帮助信息)
•应用实例
案例:查看ls命令的帮助信息
help指令
•基本语法
help 命令 (功能描述:获得shell内置命令的帮助信息)
•应用实例
案例:查看cd命令的帮助信息
5.5文件目录类
5.1 pwd 指令
•基本语法
pwd(功能描述:显示当前工作目录的绝对路径)
•应用实例
案例:显示当前工作目录的绝对路径
5.2 ls指令
•基本语法
ls [选项] [目录或是文件]
•常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息
•应用实例
案例:查看当前目录的所有内容信息
5.3 cd 指令
•基本语法
cd 参数
•常用参数
绝对路径和相对路径
cd ~ 或者cd :回到自己的家目录
cd … 回到当前目录的上一级目录
•应用实例
案例1:使用绝对路径切换到root目录
案例2: 使用相对路径到/root 目录
案例3:表示回到当前目录的上一级目录
案例4:回到家目录
5.4 mkdir指令
mkdir指令用于创建目录
•基本语法
mkdir [选项] 要创建的目录
•常用选项
-p :创建多级目录
-m:建立目录的同时设置目录的权限
-z:设置安全上下文
-v:显示目录的创建过程
•应用实例
案例1:创建一个目录 /home/dog
案例2:创建多级目录 /home/animal/tiger
实例:
在当前工作目录中,建立一个目录文件:
[root@linuxcool ~]# mkdir dir1
在当前工作目录中,创建一个目录文件并设置700权限,不让除所有主以外任何人读、写、执行它:
[root@linuxcool ~]# mkdir -m 700 dir2
在当前工作目录中,一次性创建多个目录文件:
[root@linuxcool ~]# mkdir dir3 dir4 dir5
在系统根目录中,一次性创建多个有嵌套关系的目录文件:
[root@linuxcool ~]# mkdir -p /dir1/dir2/dir3/dir4/dir5
5.5 rmdir指令
rmdir指令删除空目录
•基本语法
rmdir [选项] 要删除的空目录
•应用实例
案例1:删除一个目录 /home/dog
•使用细节
rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录
参考实例
删除指定的空目录:
[root@linuxcool ~]# rmdir Documents
删除指定的空目录,及其内的子空目录:
[root@linuxcool ~]# rmdir -p Documents
删除指定的空目录,并显示删除的过程:
[root@linuxcool ~]# rmdir -v Documents
rmdir: removing directory, 'Documents'
5.6 touch指令
touch指令创建空文件
•基本语法
touch 文件名称
•应用实例
案例1: 创建一个空文件 hello.txt
5.7 cp指令
cp 指令拷贝文件到指定目录
•基本语法
cp [选项] source dest
•常用选项
-r :递归复制整个文件夹
-f:若目标文件已存在,则会直接覆盖原文件
-i:若目标文件已存在,则会询问是否覆盖
•应用实例
案例1: 将 /home/aaa.txt 拷贝到 /home/bbb 目录下
案例2: 递归复制整个文件夹,举例
•使用细节
强制覆盖不提示的方法:\cp
参考实例
在当前工作目录中,将某个文件复制一份,并定义新文件名称:
[root@linuxcool ~]# cp anaconda-ks.cfg kickstart.cfg
在当前工作目录中,将某个目录复制一份,并定义新目录名称:
[root@linuxcool ~]# cp -r Documents Doc
复制某个文件时,保留其原始权限及用户归属信息:
[root@linuxcool ~]# cp -a kickstart.cfg ks.cfg
将某个文件复制到/etc目录中,并覆盖已有文件,不进行询问:
[root@linuxcool ~]# cp -f ks.cfg /etc
将多个文件一同复制到/etc目录中,如已有目标文件名称则默认询问是否覆盖:
[root@linuxcool ~]# cp anaconda-ks.cfg ks.cfg /etc
cp: overwrite '/etc/ks.cfg'? y
5.8 rm指令
rm 指令移除文件或目录
•基本语法
rm [选项] 要删除的文件或目录
•常用选项
-r :递归删除整个文件夹
-f : 强制删除不提示
•应用实例
案例1: 将 /home/aaa.txt 删除
案例2: 递归删除整个文件夹 /home/bbb
•使用细节
强制删除不提示的方法:带上 -f 参数即可
5.9 mv指令
mv 移动文件与目录或重命名
•基本语法
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
•应用实例
案例1: 将 /home/aaa.txt 文件 重新命名为 pig.txt
案例2:将 /home/pig.txt 文件 移动到 /root 目录下
参考实例
在当前工作目录中,对某个文件进行剪切后粘贴(重命名)操作:
[root@linuxcool ~]# mv anaconda-ks.cfg ks.cfg
将某个文件移动到/etc目录中,保留文件原始名称:
[root@linuxcool ~]# mv ks.cfg /etc
将某个目录移动到/etc目录中,并定义新的目录名称:
[root@linuxcool ~]# mv Documents /etc/docs
将/home目录中所有的文件都移动到当前工作目录中,遇到已存在文件则直接覆盖:
[root@linuxcool ~]# mv -f /home/* .
5.10 cat指令
cat 查看文件内容
•基本语法
cat [选项] 要查看的文件
•常用选项
-n :显示行号
•应用实例
案例1: /ect/profile 文件内容,并显示行号
•使用细节
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more
5.11 more指令
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
more指令中内置了若干快捷键,详见操作说明
•基本语法
more 要查看的文件
•操作说明
•应用实例
案例: 采用more查看文件
/etc/profile
操作 功能说明
空白键 (space) 代表向下翻一页;
Enter 代表向下翻『一行』;
q 代表立刻离开 more ,不再显示该文件内容。
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
5.12 less指令
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支
持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是
根据显示需要加载内容,对于显示大型文件具有较高的效率。
•基本语法
less 要查看的文件
•操作说明
•应用实例
案例: 采用less查看一个
大文件文件
操作 功能说明
空白键 向下翻动一页;
[pagedown] 向下翻动一页
[pageup] 向上翻动一页;
/ 字串向下搜寻『字串』的功能;n:向下查找;N:向上查找;
? 字串向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q 离开 less 这个程序;
5.13 echo指令
echo输出内容到控制台。
•基本语法
echo [选项] [输出内容]
•应用实例
案例: 使用echo 指令输出环境变量
案例: 使用echo 指令输出 hello,world!
5.14 head指令
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
•基本语法
head 文件(功能描述:查看文件头10行内容)
head -n 5 文件(功能描述:查看文件头5行内容,5可以是任意行数)
•应用实例
案例: 查看/etc/profile 的前面5行代码
5.15tail指令
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。
•基本语法
- tail 文件(功能描述:查看文件头10行内容)
- tail -n 5 文件(功能描述:查看文件头5行内容,5可以是任意行数)
- tail -f 文件(功能描述:实时追踪该文档的所有更新)
•应用实例
案例1: 查看/etc/profile 最后5行的代码
案例2: 实时监控 mydate.txt , 看看到文件有变化时,是否看到, 实时的追加日期
5.16 >指令 和 >> 指令
输出重定向和 >> 追加
•基本语法
- ls -l >文件(功能描述:列表的内容写入文件a.txt中(覆盖写))
- ls -al >>文件(功能描述:列表的内容追加到文件aa.txt的末尾)
- cat 文件1 > 文件2(功能描述:将文件1的内容覆盖到文件2)
- echo “内容”>> 文件
•应用实例
案例1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中
案例2: 将当前日历信息 追加到 /home/mycal 文件中 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dfgWN2Cn-1668049250201)(img/日历追加.png)]](https://img-blog.csdnimg.cn/ade03cb6c0944563a12c7f8f5cb935cb.png)

说明:ls -l>a.txt,将ls -l的显示的内用覆盖写入到a.txt文件,如果该问及那不存在,就创建该文件。
5.17 history指令
查看已经执行过历史命令,也可以执行历史指令
•基本语法
history (功能描述:查看已经执行过历史命令)
-a 写入命令记录
-c 清空命令记录
•应用实例
案例1: 显示所有的历史命令
案例2: 显示最近使用过的10个指令。
案例3:执行历史编号为5的指令

说明:先通过history指令查询出历史指令,然后执行编号为178的指令
参考实例
显示执行过的全部命令记录:
[root@linuxcool ~]# history
1 vim /etc/sysconfig/network-scripts/ifcfg-ens160
2 reboot
3 vim /etc/sysconfig/network-scripts/ifcfg-ens160
4 vim /etc/yum.repos.d/rhel.repo
5 mkdir /media/cdrom
6 vim /etc/fstab
7 reboot
8 ping 192.168.10.10
9 dnf install httpd
10 exit
………………省略部分输出信息………………
显示执行过的最近5条命令:
[root@linuxcool ~]# history 5
11 exit
12 ifconfig
13 vim /etc/hostname
14 reboot
15 history
将本次缓存区信息写入到历史文件中(~/.bash_history):
[root@linuxcool ~]# history -w
将历史文件中的信息读入到当前缓冲区中:
[root@linuxcool ~]# history -r
将本次缓冲区信息追加写入到历史文件中(~/.bash_history):
[root@linuxcool ~]# history -a
清空本次缓冲区及历史文件中的信息:
[root@linuxcool ~]# history -c
5.18 ln 指令
软链接也成为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
•基本语法
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
•应用实例
案例1: 在/home 目录下创建一个软连接 linkToRoot,连接到 /root 目录
案例2: 删除软连接 linkToRoot

参考实例
为指定的源文件创建快捷方式(默认为硬链接形式):
[root@linuxcool ~]# ln anaconda-ks.cfg ana.cfg
为指定的源文件创建快捷方式(设定为软连接形式):
[root@linuxcool ~]# ln -s initial-setup-ks.cfg ini.cfg
6 时间日期类
6.1 date指令-显示当前日期
•基本语法
- date(功能描述:显示当前时间)
- date +%Y(功能描述:显示当前年份)
- date +%m(功能描述:显示当前月份)
- date +%d(功能描述:显示当前是哪一天)
- date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)
•应用实例
案例1: 显示当前时间信息
案例2: 显示当前时间年月日
案例3: 显示当前时间年月日时分秒
参考实例
以默认格式输出系统当前的日期与时间信息:
[root@linuxcool ~]# date
Thu May 11 09:14:35 CST 2022
按照“年-月-日”的指定格式输出系统当前的日期信息:
[root@linuxcool ~]# date "+%Y-%m-%d"
2022-05-11
按照“小时:分钟:秒”的指定格式输出系统当前的时间信息:
[root@linuxcool ~]# date "%H:%M:%S"
09:14:35
设置当前系统为指定的日期和时间:
[root@linuxcool ~]# date -s "20221101 8:30:00"
Sun Nov 1 08:30:00 CST 2022
6.2 date指令-设置日期
•基本语法
date -s 字符串时间
•应用实例
案例1: 设置系统当前时间 , 比如设置成 2020-11-11 11:22:22
6.3 cal指令
查看日历指令
•基本语法
cal [选项](功能描述:不加选项,显示本月日历)
常用参数:
| -l | 单月分输出日历 |
|---|---|
| -3 | 显示最近三个月的日历 |
| -s | 将星期天作为月的第一天 |
| -m | 将星期一作为月的第一天 |
| -j | 显示在当年中的第几天(儒略日) |
| -y | 显示当年的日历 |
•应用实例
案例1: 显示当前日历
案例2: 显示2020年日历
参考实例
显示当前月份的日历:
[root@linuxcool ~]# cal
四月 2019
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
显示近期三个月的日历(当前月,上一个月和下一个月):
[root@linuxcool ~]# cal -3
三月 2019 四月 2019 五月 2019
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 1 2 3 4 5 6 1 2 3 4
3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11
10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18
17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25
24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31
31
显示指定年月的日历,如显示2020年2月的日历:
[root@linuxcool ~]# cal 2 2020
二月 2020
日 一 二 三 四 五 六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
7 搜索查找类
7.1 find指令
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终
端。
•基本语法
find [路径] [选项]
常用参数:
| -name | 匹配名称 |
|---|---|
| -perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
| -user | 匹配所有者 |
| -group | 匹配所有组 |
| -mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
| -atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
| -ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
| -nouser | 匹配无所有者的文件 |
| -nogroup | 匹配无所有组的文件 |
| -newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
| -type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
| -size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
| -prune | 忽略某个目录 |
| -exec …… {}; | 后面可跟用于进一步处理搜索结果的命令 |
•选项说明
•应用实例
案例1: 按文件名:根据名称查找/home 目录下的hello.txt文件
案例2:按拥有者:查找/opt目录下,用户名称为 nobody的文件
案例3:查找整个linux系统下大于200m的文件(+n 大于 -n小于 n等于)
参考实例
全盘搜索系统中所有以.conf结尾的文件:
[root@linuxcool ~]# find / -name *.conf
/run/tmpfiles.d/kmod.conf
/etc/resolv.conf
/etc/dnf/dnf.conf
/etc/dnf/plugins/copr.conf
/etc/dnf/plugins/debuginfo-install.conf
/etc/dnf/plugins/product-id.conf
/etc/dnf/plugins/subscription-manager.conf
………………省略部分输出信息………………
在/etc目录中搜索所有大于1M大小的文件:
[root@linuxcool ~]# find /etc -size +1M
/etc/selinux/targeted/policy/policy.31
/etc/udev/hwdb.bin
在/home目录中搜索所有属于指定用户的文件:
[root@linuxcool ~]# find /home -user linuxprobe
/home/linuxprobe
/home/linuxprobe/.mozilla
/home/linuxprobe/.mozilla/extensions
/home/linuxprobe/.mozilla/plugins
/home/linuxprobe/.bash_logout
/home/linuxprobe/.bash_profile
/home/linuxprobe/.bashrc
列出当前工作目录中的所有文件、目录以及子文件信息:
[root@linuxcool ~]# find .
.
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
./anaconda-ks.cfg
………………省略部分输出信息………………
在/var/log目录下搜索所有指定后缀的文件,后缀不需要大小写。
[root@linuxcool ~]# find /var/log -iname "*.log"
/var/log/audit/audit.log
/var/log/rhsm/rhsmcertd.log
/var/log/rhsm/rhsm.log
/var/log/sssd/sssd.log
/var/log/sssd/sssd_implicit_files.log
/var/log/sssd/sssd_nss.log
/var/log/sssd/sssd_kcm.log
/var/log/tuned/tuned.log
/var/log/anaconda/anaconda.log
/var/log/anaconda/X.log
………………省略部分输出信息………………
在/var/log目录下搜索所有后缀不是.log的文件:
[root@linuxcool ~]# find /var/log ! -name "*.log"
/var/log
/var/log/lastlog
/var/log/README
/var/log/private
/var/log/wtmp
/var/log/btmp
/var/log/samba
搜索当前工作目录中的所有近7天被修改过的文件:
[root@linuxcool ~]# find . -mtime +7
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
………………省略部分输出信息………………
全盘搜索系统中所有类型为目录,且权限为1777的目录文件:
[root@linuxcool ~]# find / -type d -perm 1777
/dev/mqueue
/dev/shm
/var/tmp
/tmp
………………省略部分输出信息………………
全盘搜索系统中所有类型为普通文件,且可以执行的文件信息:
[root@linuxcool ~]# find / -type f -perm /a=x
/boot/vmlinuz-4.18.0-80.el8.x86_64
/boot/vmlinuz-0-rescue-c8b04558503242459d908c6c22a2d481
/etc/X11/xinit/xinitrc.d/50-systemd-user.sh
/etc/X11/xinit/xinitrc.d/00-start-message-bus.sh
/etc/X11/xinit/xinitrc.d/localuser.sh
/etc/X11/xinit/Xclients
/etc/X11/xinit/Xsession
/etc/X11/xinit/xinitrc
………………省略部分输出信息………………
全盘搜索系统中所有后缀为.mp4的文件,并删除所有查找到的文件:
[root@linuxcool ~]# find / -name "*.mp4" -exec rm -rf {} \;
7.2 locate指令
locaate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径
的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。
为了保证查询结果的准确度,管理员必须定期更新locate时刻。
•基本语法
locate 搜索文件
•特别说明
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate
数据库。
•应用实例
案例1: 请使用locate 指令快速定位 hello.txt 文件所在目录
7.3 grep指令和 管道符号 |
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
•基本语法
grep [选项] 查找内容 源文件
•常用选项
选项 功能
-n 显示匹配行及行号。
-i 忽略字母大小写
•应用实例
案例1: 请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号

8 压缩和解压类
8.1 gzip/gunzip 指令
gzip 用于压缩文件, gunzip 用于解压的
•基本语法
gzip 文件(功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz(功能描述:解压缩文件命令)
•应用实例
案例1: gzip压缩, 将 /home下的 hello.txt文件进行压缩

案例2: gunzip压缩, 将 /home下的 hello.txt.gz 文件进行解压缩

细节说明:当我们使用gzip对文件进行压缩后,不会保留原来的文件
8.2 zip/unzip 指令
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
•基本语法
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip(功能描述:解压缩文件)
•zip常用选项
-r:递归压缩,即压缩目录
•unzip的常用选项
-d<目录> :指定解压后文件的存放目录
•应用实例
案例1: 将 /home下的 所有文件进行压缩成 mypackage.zip

案例2: 将 mypackge.zip 解压到 /opt/tmp 目录下

8.3 tar 指令
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。
•基本语法
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
•选项说明
选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
•应用实例
案例1: 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz

-zcvf为组合选项
案例2: 将/home 的文件夹 压缩成 myhome.tar.gz

案例3: 将 a.tar.gz 解压到当前目录

案例4:将myhome.tar.gz 解压到 /opt/目录下

组管理和权限管理:
文件/目录 所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
查看文件的所有者
1)指令:ls –ahl
2)应用实例
修改文件所有者
•指令:chown 用户名 文件名
•应用案例
要求:使用root 创建一个文件apple.txt ,然后将其所有者修改成 zhangfei

