Linux——初识CentOS

简介

提到Linux不得不先提一个人——Richard M. Stallman,自由软件之父,1984年创建GUN组织,开放的组织使用通用版权许可证协议保护GUN。至此有了GUN/Linux。
而Linux其实是指系统的内核,Linux之父是Torvalds。
CentOS是Linux的发行版之一,全称为Community ENTerprise Operating System。其他发行版还包括Ubuntu、SUSE、Debian、ORACLE等。
CentOS与RHEL基本相同,不过RHEL是红帽公司的企业版。

Shell是什么

1️⃣Shell的英文解释是,其实shell是一种命令解释器,将用户的指令翻译成系统可以识别的指令,来调用内核(kernel),内核是操作系统最核心的部分。

Shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行
shell可以保护内核也可以方便用户的使用。Shell分为图形界面Shell(Graphical User Interface shell,即GUI shell)和命令行式Shell(Command Line Interface shell,即CLI shell),平时我们使用的Windows系统就是典型的图形界面Shell。

2️⃣Shell的分类有很多,比如Bourne Shell (sh)、Korn Shell (ksh)、Bourne Again (bash)、POSIX Shell (psh)等等。这些shell的难易程度和可编辑行也不一样,而在CentOS中我们主要使用的Shell就是BASH Shell

cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
这里的sh并不是上文所指的Bourne Shell,这里的sh是bash的软连接。
ll /bin/sh
lrwxrwxrwx 1 root root 4 Apr 27 22:16 /bin/sh -> bash

3️⃣命令是什么?
命令:整条shell命令的主题
选项:会影响会微调命令的作用 通常是’-’,’–’,表示缩写和长选项
参数:命令作用的对象

Shell中的快捷键

Ctrl在终端中显示^
stty -a 查看所有快捷键

快捷键功能
Ctrl+C是发送SIGINT信号,终止一个进程。
Ctrl+Z是发送SIGSTOP信号,挂起一个进程,可以通过fg重启前台被中断的任务,bg把终端的任务放到后台执行
Ctrl+D代表输入完成或注销
Ctrl+A终端命令的最前端
Ctrl+E终端命令的最后端
Ctrl+K删除光标后所有字符
Ctrl+U删除光标前所有字符
Ctrl+R利用关键字,搜索历史命令,必须是连续的关键字
Alt+.引用上一个命令的最后一个参数,等价于!$ 按住Alt再按.
ESC .引用上一个命令的最后一个参数,等价于!$ 按下ESC松开后按.
tab补全命令、目录、文件名等

最小化安装系统tab是不可以补全命令的参数
可以安装bash-completion包来实现补全
yum install -y bash-completion

强大的帮助命令手册

在Linux系统中第一个学习的命令就应该是man,它可以帮组我们了解命令和配置文件的构成和作用。
man手册是以压缩格式来存放的,通常有章节的区分。

序号man手册类型
1用户命令
2内核系统调用(从用户空间到内核的进入点)
3库函数
4特殊文件或设备
5文件格式和规范
6游戏
7规范、标准和其他页面
8系统管理命令
9Linux、内核API(内核调用)
man用来提供在线帮助,可以查看命令帮助、配置文件帮助、编程帮助等信息
-a一个手册一个手册的去翻命令。如passwd一个是命令一个是文件,可以同时找
-f相当于whatis。显示命令的解释。
[root@wzp ~]# man -f ls
ls (1) - list directory contents
[root@wzp ~]# whatis ls
ls (1) - list directory contents
-w打印将要格式化或显示的文件的位置。就是命令在man的那个目录下
-M定义查找man手册页的目录。如果没有指定此参数,系统环境变量,默认/etc/man,config
man命令支持上下翻,使用'/'加上想要搜索的东西进行搜索。q退出
搜索EXAMPLES可是查看示例             即/EXAMPLES
升级或安装新版man
yum install -y man-pages
安装中文版man(汉化过来的不是百分百准确和全汉化)
[root@node1 data]# yum list | grep man.*zh
man-pages-zh-CN.noarch                    1.5.2-4.el7                @osrepo    
[root@node1 data]# yum install -y man-pages-zh-CN.noarch
[root@node1 data]# vi /etc/locale.conf
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN.UTF-8:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.UTF-8:zh_CN:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
[root@node1 data]# source /etc/locale.conf

修改主机名和默认字符集为中文

<临时修改主机名,CentOS6和CentOS7通用>
hostname xxx

<Centos7修改主机名>
vim /etc/hostname
xxx
或者
hostnamectl set-hostname xxx

<CentOS6修改主机名>
vim /etc/sysconfig/network
HOSTNAME=xxx

首先要明确为什么要修改字符?
系统在设置了区域字符集,如果字符集不兼容会导致出现乱码。
所以避免出现中文乱码,可能需要我们手动修改字符集。

CentOS6修改默认字符集
vim /etc/sysconfig/i18n
LANG=“zh_CN.GB18030”
SUPPORTED=“zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=“latarcyrheb-sun16”
CentOS7修改默认字符集

localectl set -locale zh_CN.UTF-8
或者
vim /etc/locale.conf
LANG=en_US.UTF-8

系统版本的查看方法

查看版本的命令:

uname打印一组系统信息
-s 或 --kernel-name打印内核的名字
-n 或 --nodename打印主机名
-r 或 --kernel-release打印内核发行号
-v 或 --kernel-version打印内核版本信息
-m 或 --machine打印机器架构,如x86_64
-o 或 --operating-system打印操作系统类型,如GNU/Linux
lsb_release用来显示LSB和特定版本的相关信息
-v 或 --version显示命令的版本信息
-i 或 --id显示发行版ID,如Distributor ID: CentOS
-r 或 --release显示当前系统具体对版本号
-a 或 --all显示上面所有的信息

实际上还可以通过文件来查看版本信息

cat /proc/version 
Linux version 3.10.0-1062.12.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Feb 4 23:02:59 UTC 2020

<在系统启动时的启动条显示的版本信息就是来源于此文件>
cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

系统分区的优先级

优先级从高到低
/
/boot
swap
/home
/data

注意:有些时候我们甚至只需要/分区和/boot分区。如分布式存储一类的应用建议是关闭swap分区的

系统CPU的信息

#查看CPU信息
lscpu  等同于查看/etc/cpuinfo
cat /etc/cpuinfo
#统计CPU个数
nproc

#查看CPU型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

#查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

#查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

#查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

#查看内存信息
cat /proc/meminfo

系统运行级别

最小化安装后安装图形化界面

yum groupinstall -y "Server with GUI "
#修改默认的启动模式为图形
systemctl set-default graphical.target
系统运行级别描述
CentOS6运行级别用init表示,CentOS7用target表示
CentOS6中init x表示临时切换到某运行级别中
CentOS7中systemctl isolate x.target表示临时切换到某运行级别中
0 或 poweroff.target关机模式,系统默认运行级别不能设置为0,否则不能正常启动
1 或 rescue.target单用户模式,root权限,用于系统维护,禁止远程登录,就像Windows下的安全模式
2 或 multi-user.target多用户模式,没有 NFS 网络支持,CentOS7中默认等同于3
3 或 multi-user.target完整的多用户文本模式,有 NFS,登录后进入控制台命令模式
4 或 multi-user.target系统未使用,保留
5 或 graphical.target图形化模式,登陆后进入图形 GUI 模式,X11
6 或 reboot.target重启,系统默认运行级别不能设置为0,否则不能正常启动

管理机制

CentOS 6 的服务管理机制是 systemv,采用 service 命令来管理所有的服务。
systemv使用/etc/inittab管理,运行级别采用runlevels。
CentOS7的服务管理机制是systemd,采用systemctl命令来管理所有的服务。
systemd使用“targets”而不是runlevels。系统运行级别的配置文件在/usr/lib/systemd/system/中,对应了不同运行级别的文件
  1. 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
  2. 在/etc/rc.d目录下有7个名为rcN.d的目录,对应系统的7个运行级别

[root@wzp ~]# ll /etc/rc.d/
total 36
drwxr-xr-x. 2 root root 4096 Jun 24 15:33 init.d
drwxr-xr-x. 2 root root 4096 Jun 23 19:05 rc0.d
drwxr-xr-x. 2 root root 4096 Jun 23 19:05 rc1.d
drwxr-xr-x. 2 root root 4096 Jun 23 19:05 rc2.d
drwxr-xr-x. 2 root root 4096 Jun 23 19:05 rc3.d
drwxr-xr-x. 2 root root 4096 Jun 23 19:05 rc4.d
drwxr-xr-x. 2 root root 4096 Jun 23 19:05 rc5.d
drwxr-xr-x. 2 root root 4096 Jun 23 19:05 rc6.d
-rw-r–r-- 1 root root 473 Mar 18 07:46 rc.local

  1. rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。

[root@wzp ~]# ll /etc/rc.d/rc3.d/
total 0
lrwxrwxrwx. 1 root root 20 Apr 27 21:54 K50netconsole -> …/init.d/netconsole
lrwxrwxrwx. 1 root root 17 Apr 27 22:06 K90network -> …/init.d/network
lrwxrwxrwx 1 root root 19 Jun 23 19:05 S12hostguard -> …/init.d/hostguard
lrwxrwxrwx 1 root root 28 Apr 27 22:28 S20cloudResetPwdAgent -> …/init.d/cloudResetPwdAgent
lrwxrwxrwx 1 root root 34 Apr 27 22:28 S20cloudResetPwdUpdateAgent -> …/init.d/cloudResetPwdUpdateAgent
lrwxrwxrwx 1 root root 24 Apr 27 22:28 S50multi-queue-hw -> …/init.d/multi-queue-hw

  1. 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件

对于以K开头的文件,系统将终止对应的服务
对于以S开头的文件,系统将启动对应的服务

  1. 默认允许级别centos6存放在/etc/inittab中

  2. CentOS7的默认存放逻辑是通过defalut.target链接到对应的运行级别上

[root@wzp ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 37 Apr 27 22:06 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target

历史命令的说明

history历史命令
n列出最近的n条命令,什么也不加表示列出全部
-c清空本次shell历史命令,对保存在文件中的没有影响
-d清楚指定行的命令数据
-a将历史命令缓冲区写入历史命令文件
-r读入历史命令文件写入缓冲区
-w将当前历史命令缓冲区命令写入历史命令文件
!+字母终端中直接输入!+字母表示调出最近使用一次以此字符开头的命令
!!表示上次操作的命令
!数字表示调出历史记录中的第几次并且执行
ctrl +r搜索历史命令,可以输入对应的关键字搜索,回车表示执行
~/.bash_history 记录的是前一次登录以前所执行过的命令。~指的是用户家目录
至于本次登录的命令暂时存储在内存中,注销成功后会写入文件中。
history -w 可以提前将命令缓存写入文件中

历史命令显示执行时间

<临时生效>
export HISTTIMEFORMAT='%F %T' 
或者
export HISTTIMEFORMAT='%Y%m%d-%H%M%S'
或者
export HISTTIMEFORMAT='%Y%m%d %T'
<永久生效,仅针对root用户>
vim /root/.bashrc或/root/.bash_profile 
添加HISTTIMEFORMAT='%F %T'
source /root/.bashrc或/root/.bash_profile
<永久生效,针对所有用户>
vim /etc/bashrc
source /root/.bashrc或/root/.bash_profile

历史命令缓存数量

历史命令默认缓存1000个

cat /etc/profile | grep HISTSIZE 
HISTSIZE=1000

修改历史命令缓存数量

<临时生效>
export HISTSIZE=500
<永久生效>
vim /etc/bashrc
HISTSIZE=500
source /root/.bashrc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值