计算机基础和Linux安装

Linux发行版的分类

Linux发行版虽然很多,但是可以根据软件安装包的格式进行大体上的分类,这样类似的系统使用方法都没有太大差异的。

比较常见的软件包有如下三种:

.deb格式,使用此类安装包的系统通常派生自Debian系统,我们将这类系统划分为Debian系列。

.rpm格式,使用此类安装包的系统通常派生自Red Hat Linux,我们将这类系统划分为Red Hat系列。

.pkg.tar.xz格式,使用此类安装包的系统通常派生自Arch Linux,使用Pacman进行软件包管理,我们将这类系统划分为Pacman系列。

注: AppImage格式, 这类软件包是通用的软件包格式,通常可以直接在系统中运行的,并不会按此格式划分系统类别。除了上面这三种软件打包方式还有一些不是很通用的打包方式,作为新手我们可以了解这三种即可。

Debian系列(包管理命令:apt/dpkg): Debian GNU/Linux是一种强调使用自由软件的发行版,支持多种硬件平台。Debian及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为软件包管理器。比较流行的发行版有:Ubuntu、Debian、LinuxMint、elementary OS、MX Linux、Kali Linux等。

Red Hat系列(包管理命令:yum或zypper或rpm): Red Hat Linux和SUSE Linux是最早使用RPM格式软件包的发行版,如今RPM格式已广泛运用于众多的发行版。这两种发行版后来都分为商业版本和社区支持版本。Red Hat Linux的社区支持版本现称为Fedora,商业版本则称为Red Hat Enterprise Linux,CentOS是与Red Hat Linux企业版兼容分支版本,软件包不包含Red Hat的商业软件。比较流行的发行版有:Fedora、CentOS、openSUSE、

Pacman系列(包管理命令:pacman): 基于KISS原则,针对x86-64的CPU做了优化,以.pkg.tar.xz格式打包并由包管理器进行跟踪维护,特别适合动手能力强的Linux用户。比较流行的发行版有:Manjaro、Arch Linux、Artix Linux等。

Linux的发行版真的很多,我们可以通过一张图来了解到底有多少种Linux发行版。

                                            安装Centos7.9


点击开启虚拟机后,选择 install CentOS7,回车

等待后,安装如下图示操作即可

3. 时区设置 - 选择 Asia,Shanghai

4. 磁盘空间设置

5. 修改主机名

6.Begin Installation

点击 Begin Installation

7. 设置密码(牢记密码)

8. 等待初始化完成后,重启

9. 重启完成后,输入用户名进入系统

                                          

                                        安装Ubuntu 21.04


 配置环境变量,实现执行history的时候可以看到执行命令的时间


[root@centos8 ~]# cat .bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export HISTCONTROL=ignoreboth

export HISTTIMEFORMAT="%F %T "

[root@centos8 ~]# source .bash_profile

[root@centos8 ~]# history

    1  2021-08-29 21:35:31 yum update -y

    2  2021-08-29 21:35:31 ctrl+z

    3  2021-08-29 21:35:31 ps -ef | grep yum



                                                Unix 哲学思想


一切都是一个文件(包括硬件)

小型,单一用途的程序

链接程序,共同完成复杂的任务

避免令人困惑的用户界面

配置数据存储在文本中


echo 基本用法

echo 命令可以将后面跟的字符进行输出

功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加

上换行号

语法:

选项:

-E (默认)不支持 \ 解释功能

-n 不自动换行

-e 启用 \ 字符的解释功能

显示变量

启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

\a 发出警告声

\b 退格键

\c 最后不加上换行符号

\e escape,相当于\033

\n 换行且光标移至行首

\r 回车,即光标移至行首,但不换行

\t 插入tab

\\ 插入\字符

\0nnn 插入nnn(八进制)所代表的ASCII字符

\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)

范例:

Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。

Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。

Ctrl+b n:切换到下一个窗口。

Ctrl+b :切换到指定编号的窗口,其中的是状态栏上的窗口编号

Ctrl+b w:从列表中选择窗口

Ctrl+b ,:窗口重命名

tmux list-keys

tmux list-commands

echo [-neE][字符串]

echo "$VAR_NAME”   #用变量值替换,弱引用

echo '$VAR_NAME’   #变量不会替换,强引用1.7.8.2 echo 高级用法

在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码

具有颜色的字符,其格式如下:

\033[30m -- \033[37m 设置前景色

\033[40m -- \033[47m 设置背景色

[root@centos8 ~]#echo -e 'a\x0Ab'

a

b

[root@centos8 ~]#echo -e '\033[43;31;1;5mmagedu\e[0m'

magedu

[root@centos8 ~]#echo -e '\x57\x41\x4E\x47'

WANG

[root@centos8 ~]#echo \$PATH

$PATH

[root@centos8 ~]#echo \

[root@centos8 ~]#echo \\

\

[root@centos8 ~]#echo \\\

>

[root@centos8 ~]#echo \\\\

\\

[root@centos8 ~]#echo "$PATH"

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@centos8 ~]#echo '$PATH'

$PATH

"\033[字符背景颜色;字体颜色m字符串\033[0m"

#字符背景颜色范围: 40--47                  

40:黑                      

41:红                        

42:绿                        

43:黄                        

44:蓝                        

45:紫                        

46:深绿                      

47:白色                      

#字体颜色: 30--37

30: 黑

31: 红

32: 绿

33: 黄

34: 蓝

35: 紫

36: 深绿加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:

1.8 字符集和编码

许多场合下,字符集与编码这两个概念常被混为一谈,但两者是有差别的。字符集与字符集编码是两个

不同层面的概念

charset是character set的简写,即字符集,即二进制和字符的对应关系,不关注最终的存储形式

encoding是charset encoding的简写,即字符集编码,简称编码,实现如何将字符转化为实际的二进制

进行存储或相反,编码决定了空间的使用的大小

1.8.1 ASCII码

37: 白色

\033[0m   关闭所有属性  

\033[1m   设置高亮度  

\033[4m   下划线  

\033[5m   闪烁  

\033[7m   反显  

\033[8m   消隐  

\033[nA   光标上移n行  

\033[nB   光标下移n行  

\033[nC   光标右移n列  

\033[nD   光标左移n列  

\033[x;yH 设置光标位置x行y列  

\033[2J   清屏  

\033[K   清除从光标到行尾的内容  

\033[s   保存光标位置  

\033[u   恢复光标位置  

\033[?25l   隐藏光标  

\033[?25h   显示光标

\033[2J\033[0;0H 清屏且将光标置顶


screen

利用screen 可以实现会话管理,如:新建会话,共享会话等

注意:CentOS7 来自于base源,CentOS8 来自于epel源

范例:安装 screen

screen命令常见用法:

创建新screen会话

screen –S [SESSION]

加入screen会话

screen –x [SESSION]

退出并关闭screen会话

exit

剥离当前screen会话

Ctrl+a,d

显示所有已经打开的screen会话

screen -ls

恢复某screen会话

screen -r [SESSION]


date命令是显示或设置系统时间与日期。

很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

语法

date(选项)(参数)

选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;-u:显示GMT;--help:在线帮助;--version:显示版本信息。

参数

<+时间日期格式>:指定显示时使用的日期时间格式。

ifconfig命令用来查看和配置网络设备

ifconfig [-v] [-a] [-s] [interface]

ifconfig命令常用的参数如下:

参数参数说明

-a查看全部网络接口配置信息

-s显示简短摘要信息(类似 netstat -i)

-v有错误时打印详细出错信息

查看当前主机的网络接口信息:

# ifconfig

br0: flags=4163  mtu 1500

        inet 192.168.230.149  netmask 255.255.255.0  broadcast 192.168.230.255

        inet6 fe80::20c:29ff:fed0:7b22  prefixlen 64  scopeid 0x20

        ether 00:0c:29:d0:7b:22  txqueuelen 1000  (Ethernet)

        RX packets 9169  bytes 1245550 (1.2 MB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 476  bytes 46975 (46.9 KB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163  mtu 1500

        ether 00:0c:29:d0:7b:22  txqueuelen 1000  (Ethernet)

        RX packets 9682  bytes 1442242 (1.4 MB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 477  bytes 48652 (48.6 KB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10

        loop  txqueuelen 1000  (Local Loopback)

        RX packets 222  bytes 16357 (16.3 KB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 222  bytes 16357 (16.3 KB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

激活/关闭指定的网卡:

# ifconfig ens33 up

# ifconfig ens33 down

为指定的网卡配置IP地址:

# ifconfig ens33 192.168.230.149

# ifconfig ens33 192.168.230.149 netmask 255.255.255.0

# ifconfig ens33 192.168.230.149 netmask 255.255.255.0

          broadcast 192.168.230.1

修改网卡的MAC地址:

# ifconfig ens33 down

# ifconfig ens33 hw ether 00:11:22:33:44:55

# ifconfig ens33 up


1.export命令简介

export命令为Shell内建命令,用于设置或显示环境变量,环境变量包含变量与函数。

在Shell中执行程序时,Shell会提供一组环境变量。export可新增、删除或修改环境变量,供后续被执行的程序使用。export的作用效果仅限于当前登陆。

2.命令格式

export[-fn][name[=word]]...export-p

3.命令选项

-f:表示[name]中为函数名称。-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。-p:列出所有的Shell环境变量。

4.常用示例

(1)定义环境变量并赋值。

exportMYNEWV=8

(2)修改指明Shell命令搜索路径的环境变量PATH。

exportPATH=$PATH:/usr/local/mysql/bin

查看是否已经设置好,可以使用命令export -p命令来查看,也可以使用echo命令打印变量内容。

export-p|grep PATH#或者echo $PATH

(3)export用于Shell脚本。

用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。系统将创建一个子shell进程。此时,系统中将有两个shell进程,一个是登录时系统启动的shell进程,另一个是系统为运行脚本程序创建的shell进程。当一个脚本程序运行完毕,它的脚本shell进程将终止,可以返回到执行该脚本之前的shell。从这种意义上来 说,用户可以有许多shell进程,每个shell进程都是由其父shell进程派生的。

在子shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。 export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。

例如脚本test1.sh中调用脚本test2.sh,test2.sh中使用test1.sh定义的变量shareVar。 test1.sh定义如下:

#!/bin/shshareVar=666exportshareVar./test2.sh

test2.sh定义如下:

#!/bin/shecho"in $0"echo $shareVar

执行test1.sh输出结果如下:

[user_00@TENCENT64~]./test1.shin./test2.sh666

5.Linux设置环境变量的三种实现方法

(1)1.直接使用export命令

exportPATH=$PATH:/usr/local/mysql/bin

注意:直接使用export设置的变量都是临时变量,也就是说退出当前的Shell为该变量定义的值便不会生效了。我们可以使用如下两种方式使变更永久有效。

(2)修改/etc/profile,加入如下行,将对所有用户生效。

exportPATH=$PATH:/usr/local/mysql/bin

注意:修改完这个文件必须要使用如下命令执行配置文件的内容,在不用重启系统的情况下使修改的内容生效。

source/etc/profile#或./etc/profile

(3)修改~/.bashrc文件,加入如下行,只对当前用户生效。

exportPATH=$PATH:/usr/local/mysql/bin

修改这个文件之后同样也需要使用source或者是.命令使配置文件生效。



你可能感兴趣的:(计算机基础和Linux安装)