- 一、学习资料
- 二、Linux目录结构
- 三、VI/VIM编辑器
- 四、服务管理
- 五、常用基本命令
- 5.1 帮助命令
- 5.2 文件目录类
- 5.2.1 pwd显示当前工作目录的绝对路径
- 5.2.2 ls列出目录的内容
- 5.2.3 cd切换目录
- 5.2.4 mkdir创建一个新的目录
- 5.2.5 rmdir删除一个空的目录
- 5.2.6 touch创建空文件
- 5.2.7 cp复制文件或目录
- 5.2.8 rm删除文件或目录
- 5.2.9 mv移动文件与目录或重命名
- 5.2.10 cat查看文件内容
- 5.2.11 more文件内容分屏查看器
- 5.2.12 less分屏显示文件内容
- 5.2.13 echo
- 5.2.14 head显示文件头部内容
- 5.2.15 tail输出文件尾部内容
- 5.2.16 >输出重定向和>>追加
- 5.2.17 ln软链接
- 5.2.18 history查看已经执行过历史命令
- 5.3 时间日期类
- 5.4 用户管理命令
- 5.4.2 passwd设置用户密码
- 5.5 用户组管理命令
- 5.6 文件权限类
- 5.7 搜索查找类
- 5.8 压缩和解压类
- 5.9 磁盘查看和分区类
- 5.10 进程管理类
- 5.11 crontab系统定时任务
- 六、软件包管理
一、学习资料
b站学习视频:3天搞定Linux,1天搞定Shell,清华学神带你通关
二、Linux目录结构
- /bin 是Binary的缩写,这个目录存放着最经常使用的命令。
- /sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /root 该目录为系统管理员,也称作超级权限者的用户主目录。
- /lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
- /etc所有的系统管理所需要的配置文件和子目录
- /usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /boot 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。
- /proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /srv service缩写,该目录存放一些服务启动之后需要提取的数据。
- /sys 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs。
- /tmp 这个目录是用来存放一些临时文件的。
- /dev 类似于windows的设备管理器把所有的硬件用文件的形式存储
- /media(CentOS6) linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后linux会把识别的设备挂载到这个目录下CentOS7迁移到 /run/media
- /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
- /opt 这是给主机额外安装软件所摆放的目录。比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的。
- /var 这个目录中存放着在不断扩充着的东西我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
三、VI/VIM编辑器
3.1一般模式
指令:vi
| yy | 复制光标当前一行 |
|---|---|
| y 数字 y | 复制一段(从第几行到第几行) |
| p | 箭头移动到目的行粘贴 |
| u | 撤销上一步 |
| dd | 删除光标当前行 |
| d 数字 d | 删除光标(含)后多少行 |
| x | 剪切一个字母,相当于 del |
| X | 剪切一个字母,相当于 Backspace |
| yw | 复制一个词 |
| dw | 删除一个词 |
| shift+6(^) | 移动到行头 |
| shift+4 ($) | 移动到行尾 |
| 1+shift+g | 移动到页头,数字 |
| shift+g | 移动到页尾 |
| 数字+shift+g | 移动到目标行 |
3.2 编辑模式
进入一般模式后,无法编辑文件内容。需要按下i、I、o、O、a、A 等任何一个字母后才会进入编辑模式
| i | 当前光标前 |
|---|---|
| a | 当前光标后 |
| o | 当前光标行的下一行 |
| I | 光标所在行最前 |
| A | 光标所在行最后 |
| O | 当前光标行的上一行 |
3.3 指令模式
| :w | 保存 |
|---|---|
| :q | 退出 |
| :! | 强制执行 |
| /要查找的词 | n 查找下一个,N 往上查找 |
| :noh | 取消高亮显示 |
| :set nu | 显示行号 |
| :set nonu | 关闭行号 |
| :%s/old/new/g | 替换内容 /g 替换匹配到的所有内容 |
四、服务管理
计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
启动之后一只存在、常驻内存的进程,一般被称作“服务”(service)。
4.1 service服务管理
- 基本语法 service 服务名 start | stop |·restart | status
查看服务的方法:进入 /etc/init.d/
[root@localhost init.d]# pwd/etc/init.d[root@localhost init.d]# ls -al 总用量 44drwxr-xr-x. 2 root root 88 8月 8 2022 .drwxr-xr-x. 10 root root 127 8月 8 2022 ..-rw-r--r--. 1 root root 18104 1月 3 2018 functions-rwxr-xr-x. 1 root root 4334 1月 3 2018 netconsole-rwxr-xr-x. 1 root root 7293 1月 3 2018 network-rw-r--r--. 1 root root 1160 4月 11 2018 README-rwxr-xr-x. 1 root root 1702 8月 8 2022 redis_6379
4.2 chkconfig设置后台服务的自启配置
chkconfig(功能描述:查看所有服务器自启配置)
chkconfig 服务名 off(功能描述:关掉指定服务的自动启动)
chkconfig 服务名 on(功能描述:开启指定服务的自动启动)
chkconfig 服务名 —list(功能描述:查看服务开机启动状态)4.3 systemctl
基本语法:systemctl start | stop | restart | status 服务名
查看服务的方法:/usr/lib/systemd/system
[root@localhost system]# pwd/usr/lib/systemd/system[root@localhost system]# ls -al总用量 1480drwxr-xr-x. 26 root root 20480 8月 8 2022 .drwxr-xr-x. 13 root root 4096 8月 8 2022 ..-rw-r--r--. 1 root root 275 4月 27 2018 abrt-ccpp.service-rw-r--r--. 1 root root 380 4月 27 2018 abrtd.service-rw-r--r--. 1 root root 361 4月 27 2018 abrt-oops.service-rw-r--r--. 1 root root 266 4月 27 2018 abrt-pstoreoops.service-rw-r--r--. 1 root root 262 4月 27 2018 abrt-vmcore.service-rw-r--r--. 1 root root 311 4月 27 2018 abrt-xorg.service-rw-r--r--. 1 root root 751 4月 11 2018 accounts-daemon.service-rw-r--r--. 1 root root 527 3月 25 2017 alsa-restore.service-rw-r--r--. 1 root root 486 3月 25 2017 alsa-state.service-rw-r--r--. 1 root root 412 3月 25 2017 alsa-store.service-rw-r--r--. 1 root root 682 5月 4 2018 anaconda-direct.service-rw-r--r--. 1 root root 185 5月 4 2018 anaconda-nm-config.service......
4.4 systemctl设置后台服务的自启配置
基本语法:
CentOS7的运行级别简化为
- multi-user.target等价于原运行级别3(多用户有网,无图形界面)
- graphical.target等价于原运行级别5(多用户有网,有图形界面)
- 查看当前运行级别
- systemctl get-default
修改当前运行级别
临时关闭防火墙
- 查看防火墙状态 :systemctl status firewalld
- 临时关闭防火墙 :systemctl stop firewalld
开机启动时关闭防火墙
sync (功能描述:将数据由内存同步到硬盘中)
- halt (功能描述:停机,关闭系统,但不断电)
- poweroff (功能描述:关机,断电)
- reboot (功能描述:就是重启,等同于shutdown -r now)
shutdown [选项] [时间]
- [选项] -H 相当于—halt,停机
- [选项] -r =reboot重启
- [时间] now 立刻关机
[时间] 数字 等待多久后关机(时间单位是分钟)。
Linux系统中为了提高磁盘的读写效率,对磁盘采取了“预读迟写”操作方式。当用户保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
五、常用基本命令
Shell可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以通过终端控制台来输入命令,由shell进行解释并最终交给内核执行。 本章就将分类介绍常用的基本shell命令。
5.1 帮助命令
5.1.1 man获得帮助信息
基本语法
- man [命令或配置文件](功能描述:获得帮助信息)
显示说明
基本语法
5.2 文件目录类
5.2.1 pwd显示当前工作目录的绝对路径
pwd:print working directory 打印工作目录
基本语法
基本语法
- ls [选项] [目录或是文件]
- 选项说明
- -a 全部的文件,连同隐藏档(开头为.的文件)一起列出来(常用)
- -l 长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll”
显示说明
基本语法
- cd [参数]
参数说明
基本语法
- mkdir [选项] 要创建的目录
选项说明
基本语法
基本语法
基本语法
- cp [选项] source dest (功能描述:复制source文件到dest)
选项说明
基本语法
- rm [选项] deleteFile (功能描述:递归删除目录中所有内容)
选项说明
基本语法
基本语法
- cat [选项] 要查看的文件
选项说明
基本语法
- more 要查看的文件
操作说明
基本语法
- less 要查看的文件
操作说明
基本语法
- echo [选项] [输出内容]
选项说明
基本语法
- head文件(功能描述:查看文件头10行内容)
- head -n 5 文件(功能描述:查看文件头5行内容,5可以是任意行数)
选项说明
基本语法
- tail文件 (功能描述:查看文件尾部10行内容)
- tail -n 5 文件(功能描述:查看文件尾部5行内容,5可以是任意行数)
- tail -f 文件 (功能描述:实时追踪该文档的所有更新)
选项说明
基本语法
基本语法
- ln -s [原文件或目录] [软链接名](功能描述:给原文件创建一个软链接)
经验技巧
基本语法
基本语法
- date [OPTION]… [+FORMAT]
- 选项说明
- -d<时间字符串> 显示指定的“时间字符串”表示的时间,而非当前时间
- -s<日期时间> 设置系统日期时间
参数说明
基本语法
基本语法
基本语法
基本语法
- cal [选项] (功能描述:不加选项,显示本月日历)
选项说明
基本语法
基本语法
基本语法
基本语法
基本语法
基本语法
基本语法
- usermod -g 用户组 用户名
选项说明
基本语法
基本语法
基本语法
- groupmod -n 新组名 老组名
选项说明
基本语法
0首位表示类型,在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- 代表文件
- d 代表目录
- l 链接文档(link file)
- 第1-3位确定属主(该文件的所有者)拥有该文件的权限。—-User
- 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—-Group
- 第7-9位确定其他用户拥有该文件的权限—-Other
rwx作用文件和目录的不同解释
- 作用到文件
- [ r ]代表可读(read):可以读取,查看
- [ w ]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
- [ x ]代表可执行(execute):可以被系统执行
作用到目录
基本语法
- chmod [{ugoa} {+-=} {rwx} ] 文件或目录 +赋予权限 -删除权限 =赋予权限
- chmod [mode=421 ] [文件或目录]
- 经验技巧
- u:所有者
- g:所有组
- o:其他人
- a:所有人(u、g、o的总和)
- r=4 w=2 x=1
- rwx=4+2+1=7
案例实操
基本语法
- chown [选项] [最终用户] [文件或目录](功能描述:改变文件或者目录的所有者)
- 选项说明
- -R 递归操作
案例实操
基本语法
- chgrp [最终用户组] [文件或目录](功能描述:改变文件或者目录的所属组)
案例实操
基本语法
- find [搜索范围] [选项]
- 选项说明
- -name<查询方式> 按照指定的文件名查找模式查找文件
- -user<用户名> 查找属于指定用户名所有文件
- -size<文件大小> 按照指定的文件大小查找文件,单位为:
- b——块(512字节)
- c——字节
- w——字(2字节)
- k——千字节
- M——兆字节
- G——吉字节
案例实操
基本语法
- locate搜索文件
- 经验技巧
- 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
案例实操
基本语法
- grep 选项 查找内容 源文件
- 选项说明
- -n 显示匹配行及行号
- 案例实操
- 查找某文件在第几行 ls | grep -n test
5.8 压缩和解压类
5.8.1 gzip/gunzip压缩
- 基本语法
- gzip文件(功能描述:压缩文件,只能将文件压缩为*.gz文件)
- gunzip 文件.gz (功能描述:解压缩文件命令)
- 经验技巧
- 只能压缩文件不能压缩目录
- 不保留原来的文件
- 同时多个文件会产生多个压缩包
案例实操
基本语法
- zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
- unzip [选项] XXX.zip (功能描述:解压缩文件)
- 选项说明
- zip选项 -r 压缩目录
- unzip选项 -d<目录> 指定解压后文件的存放目录
- 经验技巧
- zip压缩命令在windows/linux都通用,可以压缩目录且保留源文件。
案例实操
基本语法
- tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
- 选项说明
- -c 产生.tar打包文件
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 打包同时压缩
- -x 解包.tar文件
- -C 解压到指定目录
案例实操
基本语法
- du目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)
- 选项说明
- -h 以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示;
- -a 不仅查看子目录大小,还要包括文件
- -c 显示所有的文件和子目录大小后,显示总和
- -s 只显示总和
- —max-depth=n 指定统计子目录的深度为第n层
案例实操
基本语法
- df选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
选项说明
基本语法
- lsblk(功能描述:查看设备挂载情况)
选项说明
基本语法
- mount [-t vfstype] [-o options] device dir(功能描述:挂载设备)
- umount设备文件名或挂载点(功能描述:卸载设备)
- 参数说明
- -t vfstype 指定文件系统的类型,通常不必指定。mount会自动选择正确的类型。常用类型有:
- 光盘或光盘镜像:iso9660
- DOS fat16文件系统:msdos
- Windows 9x fat32文件系统:vfat
- Windows NT ntfs文件系统:ntfs
- Mount Windows文件网络共享:smbfs
- UNIX(LINUX)文件网络共享:nfs
- -o options
- 主要用来描述设备或档案的挂接方式。常用的参数有:
- loop:用来把一个文件当成硬盘分区挂接上系统
- ro:采用只读方式挂接设备
- rw:采用读写方式挂接设备
- iocharset:指定访问文件系统所用字符集
- 主要用来描述设备或档案的挂接方式。常用的参数有:
- device 要挂接(mount)的设备
- dir 设备在系统上的挂接点(mount point)
- -t vfstype 指定文件系统的类型,通常不必指定。mount会自动选择正确的类型。常用类型有:
- 案例实操
- 挂载光盘镜像文件
- mkdir /mnt/cdrom/ (建立挂载点)
- mount -t iso9660 /dev/cdrom /mnt/cdrom/ (设备/dev/cdrom 挂载到 挂载点 :/mnt/cdrom中)
- 卸载光盘镜像文件
- umount /mnt/cdrom
- 设置开机自动挂载
- vi /etc/fstab
- 挂载光盘镜像文件
5.9.5 fdisk分区
- 基本语法
- fdisk -l (功能描述:查看磁盘分区详情)
- fdisk 硬盘设备名(功能描述:对新增硬盘进行分区操作)
- 选项说明
- -l 显示所有硬盘的分区列表
- 经验技巧
- 该命令必须在root用户下才能使用
功能说明
基本语法
- ps aux | grep xxx(功能描述:查看系统中所有进程)
- ps -ef | grep xxx(功能描述:可以查看子父进程之间的关系)
- 选项说明
- a 列出带有终端的所有用户的进程
- x 列出当前用户的所有进程,包括没有终端的进程
- u 面向用户友好的显示风格
- -e 列出所有进程
- -u 列出某个用户关联的所有进程
- -f 显示完整格式的进程列表
- 功能说明
- ps aux显示信息说明
- USER:该进程是由哪个用户产生的
- PID:进程的ID号
- %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源
- %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源
- VSZ:该进程占用虚拟内存的大小,单位KB
- RSS:该进程占用实际物理内存的大小,单位KB
- TTY:该进程是在哪个终端中运行的。对于CentOS来说,tty1是图形化终端,tty2-tty6是本地的字符界面终端。pts/0-255代表虚拟终端
- STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示
- START:该进程的启动时间
- TIME:该进程占用CPU的运算时间,注意不是系统时间
- COMMAND:产生此进程的命令名
- ps -ef显示信息说明
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
- C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU时间
- CMD:启动进程所用的命令和参数
- ps aux显示信息说明
经验技巧
基本语法
- kill [选项]进程号(功能描述:通过进程号杀死进程)
- killall进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
选项说明
基本语法
- pstree [选项]
选项说明
基本命令
- top [选项]
- 选项说明
- -d 秒数 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
- -i 使top不显示任何闲置或者僵死进程。
- -p 通过指定监控进程ID来仅仅监控某个进程的状态。
- 操作说明
- P 以CPU使用率排序,默认就是此项
- M 以内存的使用率排序
- N 以PID排序
- q 退出top
- 查询结果字段解释

- 第一行信息为任务队列信息
- 14:25:38 系统当前时间
- up 331 days 系统的运行时间
- 3 users 当前登录了三个用户
- load average: 0.03, 0.04, 0.05 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。
- 第二行为进程信息
- Tasks: 134 total 系统中的进程总数
- 1 running 正在运行的进程数
- 132 sleeping 睡眠的进程
- 0 stopped 正在停止的进程
- 0 zombie 僵尸进程。如果不是0,需要手工检查僵尸进程
- 第三行为CPU信息
- Cpu(s): 0.1%us 用户模式占用的CPU百分比
- 0.1%sy 系统模式占用的CPU百分比
- 0.0%ni 改变过优先级的用户进程占用的CPU百分比
- 99.7%id 空闲CPU的CPU百分比
- 0.1%wa 等待输入/输出的进程的占用CPU百分比
- 0.0%hi 硬中断请求服务占用的CPU百分比
- 0.1%si 软中断请求服务占用的CPU百分比
- 0.0%st st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。
- 第四行为物理内存信息
- Mem: 625344k total 物理内存的总量,单位KB
- 571504k used 已经使用的物理内存数量
- 53840k free 空闲的物理内存数量
- 65800k buffers 作为缓冲的内存数量
第五行为交换分区(swap)信息
基本语法
- netstat -anp | grep进程号(功能描述:查看该进程网络信息)
- netstat –nlp | grep端口号(功能描述:查看网络端口号占用情况)
- 选项说明
- -a 显示所有正在监听(listen)和未监听的套接字(socket)
- -n 拒绝显示别名,能显示数字的全部转化成数字
- -l 仅列出在监听的服务状态
- -p 表示显示哪个进程在调用
案例实操
基本语法
- crontab [选项]
- 选项说明
- -e 编辑crontab定时任务
- -l 查询crontab任务
- -r 删除当前用户所有的crontab任务
参数说明
- 第一个“*” 一小时当中的第几分钟
- 第二个“*” 一天当中的第几小时
- 第三个“*” 一个月当中的第几天
- 第四个“*” 一年当中的第几月
- 第五个“*” 一周当中的星期几
- 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
- , 代表不连续的时间。比如“0 8,12,16 *命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
- 代表连续的时间范围。比如“0 5 1-6命令”,代表在周一到周六的凌晨5点0分执行命令
- / 代表每隔多久执行一次。比如“/10 *命令”,代表每隔10分钟就执行一遍命令
六、软件包管理
6.1 RPM
6.1.1 RPM概述
RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。RPM包的名称格式:Apache-1.3.23-11.i386.rpm
“apache”软件名称
“1.3.23-11”软件的版本号,主版本和此版本
“i386”是软件所运行的硬件平台,Intel 32位处理器的统称
“rpm”文件扩展名,代表RPM包6.1.2 RPM查询命令(rpm -qa)
基本语法
- rpm -qa (功能描述:查询所安装的所有rpm软件包)
经验技巧
基本语法
- rpm -e RPM软件包
- rpm -e —nodeps软件包
选项说明
基本语法
- rpm -ivh RPM包全名
选项说明
基本语法
- yum [选项] [参数]
- 选项说明
- -y 对所有提问都回答“yes”
参数说明
安装wget, wget用来从指定的URL下载文件 yum install wget
- 在/etc/yum.repos.d/目录下,备份默认的repos文件 cp CentOS-Base.repo CentOS-Base.repo.backup
- 下载网易163或者是aliyun的repos文件,任选其一
- 使用下载好的repos文件替换默认的repos文件 mv CentOS7-Base-163.repo CentOS-Base.repo
- 清理旧缓存数据,缓存新数据 yum clean all yum makecache



