手摸手教你 CentOS 入门必备基础知识(建议收藏)
nanshan 2024-11-04 13:07 11 浏览 0 评论
这里记录一下我的 CentOS 学习过程,相当于自己记个笔记,同时分享出来,如果有同学刚好有需要而这个文章帮助到了你的话,在下也会十分开心。
文章最后推介了几个免费视频,B 站和慕课上的免费学习视频挺多,而且有些质量还是不错的。
1. CentOS 中的文件管理
1.1 CentOS 中根目录下的各子目录
当 cd / 进入到根目录,ls 可以看到一大堆子目录,如下图:
这些文件是有颜色的:
- 蓝色 表示文件夹;
- 灰色 表示普通文件;
- 绿色 表示可执行文件;
- 红色 表示压缩文件;
- 天蓝色 表示链接文件(快捷方式);
常用目录的作用如下:
- bin: 存放普通用户可执行的指令,普通用户也可以执行;
- dev : 设备目录,所有的硬件设备及周边均放置在这个设备目录中;
- boot : 开机引导目录,包括 Linux 内核文件与开机所需要的文件;
- home: 这里主要存放你的个人数据,具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root 用户除外;
- usr: 应用程序放置目录;
- lib: 开机时常用的动态链接库,bin 及 sbin 指令也会调用对应的 lib 库;
- tmp: 临时文件存放目录 ;
- etc: 各种配置文件目录,大部分配置属性均存放在这里;
其他更详细的目录作用参考 <CentOS根目录下各目录介绍 - 知乎>
1.2 目录相关命令
一些常用的命令见下:
作用命令切换目录cd显示当前目录完整路径pwd查看目录下的信息(包括隐藏文件)ls(ls -a)列出目录下的文件和详细信息ls-l (ll)创建目录mkdir创建文件touch复制文件(文件夹)cp(cp -r)移动/重命名文件夹和目录mv删除文件(目录)rm(rm -rf)删除空文件夹rmdir查找文件find获取帮助man / info
还有几个常用的快捷键:
作用快捷键清空至行首Ctrl + U清空至行尾Ctrl + K清屏Ctrl + L终止执行的命令Ctrl + C
值得一提的是,这些命令在其他系统也可以使用。
1.3 tree 命令查看目录树
我们可以使用 tree 命令方便地查看目录树,但是系统本身却并没有安装 tree 命令,所以我们要首先安装一下 sudo yum -y install tree,然后我们就可以快乐使用了:
image-20200304133618996
2. vim 编辑器使用方法
vim 编辑器是 CentOS 系统中使用频率比较高的编辑器,掌握基本使用方法对以后的工作有很大帮助。
通过 vim <文件名> 的方式可以编辑某文档,如果文档名不存在,那么会新建一个文档来进行编辑。
image-20200301142523562
vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
2.1 命令模式
启动 vim 后就进入了命令模式,此状态下敲击键盘动作会被认为是命令,而非输入字符。常用的几个命令:
- i 切换到输入模式,以输入字符;
- : 切换到底线命令模式,以在最底一行输入命令;
- a 切换到输入文字模式;
命令模式只有一些最基本的命令,要依靠底线命令模式输入更多命令。
2.2 输入模式
在命令模式下按下 i 就进入了输入模式。在输入模式中,可以使用以下按键:
功能命令向上翻页PageDown / Ctrl + F向下翻页PageUp / Ctrl + B跳转到文件首行1G / gg跳转到末尾行G跳转到第 # 行#G行号显示:set nu行号显示取消:set nonu插入d / Del删除当前行ddfuzhiyy将缓冲区中的内容粘贴到光标位置处之后p
还有一些其他命令,比如删除从光标处开始的 # 行内容 #dd,复制从光标处开始的 # 行内容 #yy 等,可以看文档 <Linux vi/vim | 菜鸟教程> 一文。
2.3 底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- :q 退出程序;
- :q! 放弃对文件内容的修改并退出;
- :w 保存文件;
- :w /root/xx 另存为;
- :wq 保存文件并退出;
2.4 查看文件内容
一些常见查看文件内容的命令:
功能命令浏览文件全部内容more / less查看文件内容(显示行号)cat (cat -n)在文本文件中查找字符串(显示行号)grep (grep <关键字> <要查找的文件> -n)
2.5 管道符
管道符 将一个命令的执行结果作为另一个命令的输入来执行,格式 cmd1 | cmd2 ... | cmdn
比如,将 /etc 目录中的文件名以 pass 开头的文件列举出来 ls /etc | grep pass*
再比如,查看 /etc 目录下的内容,并使用 less 的形式浏览 ls /etc | less
2.6 重定向
功能命令输出重定向,已有原来的文件则替换>输出重定向,如果原来的文件存在则追加在原来的内容之前>>suiru<cuiwu2>输出重定向与错误重定向同时实现&>
比如,将 ls / 命令执行的结果输出到 2.txt 中 ls / > 2.txt
3. 进程管理
2.1 进程管理
进程: 是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
进程管理最重要的就是 ps 命令:
- ps aux ,查看系统中所有进程,使用 BSD 操作系统格式;
- ps -le ,查看系统中所有进程,使用 Linux 标准命令格式;
ps 命令输出大约如下图所示:
输出的格式含义:
- USER:该进程由哪个用户产生的;
- PID:进程的 ID;
- %CPU:进程占用 CPU 资源的百分比;
- %MEM:进程占用物理内存的百分比;
- VSZ:进程占用虚拟内存的大小,单位 KB;
- RSS:进程占用实际物理内存的大小,单位 KB;
- TTY:进程在哪个终端运行的,tty1-tty7 代表本地控制台终端,tty1-tty6 是本地的字符界面终端,tty7 是图形终端,pts/0-255 代表虚拟终端,如果是 ? 则代表是系统进程;
- STAT:进程状态,R-运行,S-睡眠,T-停止,s-包含子进程,+-位于后台;
- START:进程启动时间;
- TIME:进程占用 CPU 的运算时间,注意不是系统时间;
- COMMAND,产生此进程的命令名;
还有个命令 pstree,显示进程树:
top 命令可以查看系统健康状态,和 Windows 系统中的系统管理器类似。
top 命令的交互模式中可以执行下面命令:
- ?/h :显示交互模式的帮助;
- P :以 CPU 使用率排序,默认就是此项;
- M:以内存的使用率排序;
- N :以 PID 排序;
- q :退出 top;
load average 后面的三个数字的意思,分别为系统在之前 1 分钟,5 分钟,15分钟的平均负载。一般认为小于 1 时,负载较小。如果大于 1,系统已经超出负荷。如果是多核 CPU,那么这个数字应该不大于你的 CPU 核心数,比如双核 CPU 时应该不大于 2。
Tasks 后面的 zombie,意思为僵尸进程,一般是进程无法正常运行,也没有正常退出卡住了,也有可能这个进程正在终止过程中,如果稍微等待一下还有,那么就需要手工检查一下。
%CPU(s) 的 id 是主要需要看的,意为空闲 CPU 的百分比,如果低于 20,那么系统的状态就比较卡了。
3.2 杀死进程
杀死进程主要有下面几个命令:
功能命令杀死某个进程kill按照进程名杀死进程killall按照进程名杀死进程,加 -t 可以按照终端号提出用户pkill
杀死进程时,可以跟信号,信号很多,常用信号:
信号代号信号名称说明1SIGHUP让进程立即关闭,然后重新读取配置文件之后重启,平滑重启2SIGINT程序终止信号,用于终止前台进程,相当于 ctrl + c 快捷键9SIGKILL强制终止,用来立即结束程序的运行,本信号不能被阻塞、处理和忽略15SIGTERM正常结束的信号,kill 命令默认就是这个信号,有时候进程已经发生问题,正常无法终止,此时会使用 -9 信号
所以常用杀死进程的命令:正常杀死 kill -1 2235 或者强制杀死 kill -9 2235
3.3 修改进程优先级
我们可以 ps -le | more 来查看进程优先级:
image-20200303103127195
PRI 代表 Priority , NI 代表 Nice,这两个值都是优先级,数字越小代表该进程优先级越高。用户只能修改 NI,不能直接修改 PRI,但系统最终取 PRI + NI 的值。NI 值的范围是 -20 到 19,普通用户调整 NI 值的范围是 0-19,而且只能调整自己的进程,root 用户才能设定进程 NI 值为负值。
可以使用 nice 命令来修改优先级,nice <选项> 命令,nice 命令可以给新执行的命令直接赋予 NI 值,但是不能修改已经存在进程的 NI 值。选项 -n 值 给命令赋予 NI 值。
比如修改 apache 的进程优先级 nice -n -5 service httpd start
如果要修改已存在的进程的优先级,需要使用 renice 命令,renice <优先级> PDID,PID 为某一个进程的 ID。
比如 renice -10 2125 修改 ID 2125 的进程 NI 值为 -10。
4. 工作管理
- 当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作;
- 放入后台的命令必须可以持续运行一段时间,这样我们才能扑捉和操作这个工作;
- 放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行;
把进程放入后台有两个主要命令:
- <命令> & 把命令放入后台,并在后台执行
- <命令> 执行后按下 ctrl + z 快捷键,放在后台暂停
查看正在后台的工作,可以使用 jobs [-l] 命令,-l 是显示工作的 PID。
image-20200303110244268
+ 代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作,- 代表倒数第二个放入后台的工作。
恢复到前台:
- fg %工作号 将后台暂停的工作恢复到前台执行,这里的 % 可以省略,注意工作号和 PID 的区别;
- bg %工作号 将后台暂停的工作恢复到后台执行,后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行;
后台命令脱离登陆终端执行的方法:
- 第一种方法是把需要后台执行的命令加入 /etc/rc.local 文件;
- 第二种方法是使用系统定时任务,让系统在指定的时间执行某个后台命令;
- 第三种方法是使用 nohup 命令;
nohup 命令的使用方法 nohup <命令> &
5. SSH 操作
Secure Shell(SSH)是建立在应用层基础上的安全网络协议,是专为远程登录会话和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过 SSH,可以把所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度,已经成为Linux系统的标准配置。
5.1 SSH 登陆服务器
ssh -p port <username>@<hostname or IP address>
比如我这里购买的腾讯云服务器就可以使用 ssh root@<公网IP/域名> 连接,如果你设置过域名对 IP 的映射,那么 @ 后面写你的域名也可以,比如我就可以 ssh root@sherlocked93 连接服务器。
然后就是输入密码,就可以进入 CentOS 系统了,但是每次登陆都需要密码,挺蠢的也不安全,我们可以设置使用 SSH 密钥的方式,密钥登陆的方式可以百度一下。
连接系统之后,可以通过 Ctrl+D 或者 exit 命令退出远程登录。
连接上 CentOS 之后,命令行左侧的命令提示符含义如下:
5.2 SSH 上传/下载文件
SSH 可以通过 scp 命令来上传文件,是 Linux 系统下基于 SSH 登陆进行安全的远程文件拷贝命令,scp 是 secure copy 的简写,可以使用它上传本地文件夹到远程服务器,也可以从远程服务器上下载文件夹到本地:
# 上传文件夹到远程服务器
scp -P port -r /local/dir username@servername:/remote/dir
# scp -p 2333 -r /test/a root@192.168.0.101:/var/b
# 从远程服务器下载文件夹
scp -P port -r username@servername:/remote/dir/ /local/dir
# scp -p 2333 -r root@192.168.0.101:/var/b /test/a
-r 参数表示递归复制,即复制该目录下面的文件和目录,如果要上传单个文件,只要把 -r 删除。大写的 P 表示的是端口,如果还是默认的 SSH 端口 22 没有更改,则不需要 -P。
5.3 SSH 设置超时断开
SSH 在使用时,经常会因为闲置时间过长而倍服务器自动断开,然后又要重新连接,比较麻烦,可以设置一下防止经常被服务器踢出。
一种方法就是修改服务器设置,找到所在用户的 .ssh 目录,如 root 用户该目录在:/root/.ssh/,在该目录创建 config 文件
vim /root/.ssh/config
加入下面一句:
ServerAliveInterval 60
然后 ESC 再 :wq 保存退出,重新开启 root 用户的shell,则再 SSH 远程服务器的时候,不会因为长时间操作断开。
还有种方法设置 $TMOUT 系统环境变量
vim /etc/profile 在最后一行加上:
export TMOUT=0
设置 TMOUT 参数为 0 的意思就是设置不超时,然后 ESC 再 :wq 保存退出,再 source /etc/profile 让配置立即生效。
参考文档:
- CentOS根目录下各目录介绍 - 知乎
- Linux vi/vim | 菜鸟教程
- Linux基础安装入门视频教程I-慕课网
- Linux系统编辑管理视频教程II-慕课网
- 基于CentOS7的Linux操作系统的入门与服务器的配置-bilibili
- 解决ssh登录后闲置时间过长而断开连接
相关推荐
- 服务器数据恢复—Raid5数据灾难不用愁,Raid5数据恢复原理了解下
-
Raid5数据恢复算法原理:分布式奇偶校验的独立磁盘结构(被称之为raid5)的数据恢复有一个“奇偶校验”的概念。可以简单的理解为二进制运算中的“异或运算”,通常使用的标识是xor。运算规则:若二者值...
- 服务器数据恢复—多次异常断电导致服务器raid不可用的数据恢复
-
服务器数据恢复环境&故障:由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档,上层安装的是Windowsserver操作系统,没有配置ups。因为服务器异常断电重启后,rai...
- 服务器数据恢复-V7000存储更换磁盘数据同步失败的数据恢复案例
-
服务器数据恢复环境:P740+AIX+Sybase+V7000存储,存储阵列柜上共12块SAS机械硬盘(其中一块为热备盘)。服务器故障:存储阵列柜中有磁盘出现故障,工作人员发现后更换磁盘,新更换的磁盘...
- 「服务器数据恢复」重装系统导致XFS文件系统分区丢失的数据恢复
-
服务器数据恢复环境:DellPowerVault系列磁盘柜;用RAID卡创建的一组RAID5;分配一个LUN。服务器故障:在Linux系统层面对LUN进行分区,划分sdc1和sdc2两个分区。将sd...
- 服务器数据恢复-ESXi虚拟机被误删的数据恢复案例
-
服务器数据恢复环境:一台服务器安装的ESXi虚拟化系统,该虚拟化系统连接了多个LUN,其中一个LUN上运行了数台虚拟机,虚拟机安装WindowsServer操作系统。服务器故障&分析:管理员因误操作...
- 「服务器数据恢复」Raid5阵列两块硬盘亮黄灯掉线的数据恢复案例
-
服务器数据恢复环境:HPStorageWorks某型号存储;虚拟化平台为vmwareexsi;10块磁盘组成raid5(有1块热备盘)。服务器故障:raid5阵列中两块硬盘指示灯变黄掉线,无法读取...
- 服务器数据恢复—基于oracle数据库的SAP数据恢复案例
-
服务器存储数据恢复环境:某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。服务器存储故障&分析:该RAID5阵...
- 「服务器虚拟化数据恢复」Xen Server环境下数据库数据恢复案例
-
服务器虚拟化数据恢复环境:Dell某型号服务器;数块STAT硬盘通过raid卡组建的RAID10;XenServer服务器虚拟化系统;故障虚拟机操作系统:WindowsServer,部署Web服务...
- 服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例
-
服务器数据恢复环境:某品牌服务器中有一组由4块SAS磁盘做的RAID5磁盘阵列。该服务器操作系统为windowsserver,运行了一个单节点Oracle,数据存储为文件系统,无归档。该oracle...
- 服务器数据恢复—服务器磁盘阵列常见故障表现&解决方案
-
RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对...
- 「服务器数据恢复」IBM某型号服务器RAID5磁盘阵列数据恢复案例
-
服务器数据恢复环境:IBM某型号服务器;5块SAS硬盘组成RAID5磁盘阵列;存储划分为1个LUN和3个分区:第一个分区存放windowsserver系统,第二个分区存放SQLServer数据库,...
- 服务器数据恢复—Zfs文件系统下误删除文件如何恢复数据?
-
服务器故障:一台zfs文件系统服务器,管理员误操作删除服务器上的数据。服务器数据恢复过程:1、将故障服务器所有磁盘编号后取出,硬件工程师检测所有硬盘后没有发现有磁盘存在硬件故障。以只读方式将全部磁盘做...
- 服务器数据恢复—Linux+raid5服务器数据恢复案例
-
服务器数据恢复环境:某品牌linux操作系统服务器,服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。服务器故障&检测:服务器在运行过程中突然瘫痪,...
- 服务器数据恢复—Sql Server数据库数据恢复案例
-
服务器数据恢复环境:一台安装windowsserver操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。在windows服务器内装有SqlServer数据库。存储空间LU...
- 服务器数据恢复—阿里云ECS网站服务器数据恢复案例
-
云服务器数据恢复环境:阿里云ECS网站服务器,linux操作系统+mysql数据库。云服务器故障:在执行数据库版本更新测试时,在生产库误执行了本来应该在测试库执行的sql脚本,导致生产库部分表被tru...
你 发表评论:
欢迎- 一周热门
-
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
WindowsServer2022|配置NTP服务器的命令
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
-
- 服务器数据恢复—Raid5数据灾难不用愁,Raid5数据恢复原理了解下
- 服务器数据恢复—多次异常断电导致服务器raid不可用的数据恢复
- 服务器数据恢复-V7000存储更换磁盘数据同步失败的数据恢复案例
- 「服务器数据恢复」重装系统导致XFS文件系统分区丢失的数据恢复
- 服务器数据恢复-ESXi虚拟机被误删的数据恢复案例
- 「服务器数据恢复」Raid5阵列两块硬盘亮黄灯掉线的数据恢复案例
- 服务器数据恢复—基于oracle数据库的SAP数据恢复案例
- 「服务器虚拟化数据恢复」Xen Server环境下数据库数据恢复案例
- 服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例
- 服务器数据恢复—服务器磁盘阵列常见故障表现&解决方案
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)