Linux初探
1.Linux的发行版本
Linux的发行版本包含社区版本和商业版本,又根据不同版本之间软件管理的方式进行分类,以下是常见的发行版本。
RPM软件管理的社区版本:Fedora,CentOS,openSUSE
RPM软件管理的商业版本:RHEL(Red Hat),SUSE
DPKG软件管理的社区版本:Debian,B2D
DPKG软件管理的商业版本:Ubuntu
2.安装Linux的流程
以下以CentOS 7安装流程为例。
2.1 如何找到系统安装镜像。
方法一:直接搜索引擎搜索需要安装的Linux发行版本的名字,然后进入官网进行下载。不过因为网站处于国外,访问速度会受到影响。
方法二:https://developer.aliyun.com/mirror/访问阿里巴巴镜像网站下载,这里同步了国外的镜像文件,访问和下载速度真不错。
2.2安装过程
准备工作,下载安装vmware软件。因为这是个虚拟机软件,我们就可以直接将镜像安装在这个软件当中,最后就会生成一个虚拟机。
安装好vmware之后,开始进行以下步骤。
1.打开虚拟机,选择文件——新建虚拟机,然后就会出现这样一个画面。这里我们选择默认典型就可以点击下一步。
2.下一步之后会出现这样的提示,我们选择稍后安装操作系统。然后进行下一步。
3.此时会出现这样的界面,选择栏里面选择Linux操作 系统,版本选择为CentOS 7 64位。接着下一步。
4.接着位虚拟机取一个名字,然后在选择安装位置,如下图。再接着下一步。
5.接着选择需要分配的磁盘大小,选项默认即可,再点击下一步。
6.点击完成,就可以在vmware软件里面发现的新虚拟机。不过现在我们还没有选择操作系统,这里选择编辑虚拟机设置选项。进入设置。
7.设置里面有很多参数可以进行配置,这里其他选项可以保持默认,以后熟悉了可以再来进行个性化配置。这里选择CD/DVD,使用ISO映像文件,路径选择为刚才镜像文件下载的地址,点击确定后开启虚拟机。便可以正式开始安装系统。
8.选择Install CentOS 7,回车后等待进行下一步安装 。
9.选择语言,可以根据自己需要选择,然后选择时间,点击DATE&TIME进入到时间选择,这里选择Asia/ShangHai。接着点击左上角Done按钮返回。
10.再接着选择SOFTWARE SELECTION。进去到安装选项,选择Minimal Install(最小化)安装即可。点击Done按钮返回上级
11.选择INSTALLATION DESTINATION,进去选择磁盘,并在红箭头处选择默认自动分区。点击Done按钮返回上级
12。选择Begin Installation开始安装,并顺便创建root密码一个普通用户账号。
3配置history命令
配置history命令使其可以观察到命令的具体执行时间。
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T whoami
" 显示时间和用户
HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史
HISTCONTROL:控制命令历史的记录方式
以上变量可以 export 变量名="值" 形式存放在 /etc/profifile 或 ~/.bash_profifile
[图片上传失败...(image-cc0658-1606288472603)]
4.Linux哲学思想
一切都是一个文件(包括硬件)
小型,单一用途的程序
链接程序,共同完成复杂的任务
避免令人困惑的用户界面
配置数据存储在文本中
5Linux常用命令
5.1 echo
echo 命令可以将后面跟的字符进行输出
功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
选项
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能
echo "$VAR_NAME” #用变量值替换,弱引用
echo '$VAR_NAME’ #变量不会替换,强引用
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\e escape,相当于\033
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
5.2 date
date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记 。
若是不以加号作为开头,则表示要设定时间,而时间格式MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。
语法格式:date [选项] [+输出形式]
常用参数:
-d datestr | 显示 datestr 中所设定的时间 (非系统时间) |
---|---|
-s datestr | 将系统时间设为 datestr 中所设定的时间 |
-u | 显示目前的格林威治时间 |
--help | 显示帮助信息 |
--version | 显示版本编号 |
[root@iz2zed4h7bg5dihzfqhmn9z ~]$date
Wed Nov 25 14:43:47 CST 2020
5.3 ifconfig
ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
语法格式:ifconfig [参数]
常用参数:
add<地址> | 设置网络设备IPv6的IP地址 |
---|---|
del<地址> | 删除网络设备IPv6的IP地址 |
down | 关闭指定的网络设备 |
up | 启动指定的网络设备 |
IP地址 | 指定网络设备的IP地址 |
[root@iz2zed4h7bg5dihzfqhmn9z ~]$ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
ether 02:42:8e:2b:af:b6 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.24.185 netmask 255.255.240.0 broadcast 172.17.31.255
ether 00:16:3e:30:c6:6e txqueuelen 1000 (Ethernet)
RX packets 5199196 bytes 826089839 (787.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3708001 bytes 483656901 (461.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 87699 bytes 81689120 (77.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 87699 bytes 81689120 (77.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
5.4 screen
screen命令为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常中有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
语法格式:screen [参数]
注意:使用该命令之前需要先安装该工具 yum install -y screen
常用参数:
-A | 将所有的视窗都调整为目前终端机的大小 |
---|---|
-d<作业名称> | 将指定的screen作业离线 |
-m | 即使目前已在作业中的screen作业,仍强制建立新的screeN作业 |
-r<作业名称> | 恢复离线的screen作业 |
-R | 先试图恢复离线的作业,若找不到离线的作业,即建立新的screen作业 |
-s<shell> | 指定建立新视窗时,所要执行的shell |
-S<作业名称> | 指定screen作业的名称 |
-v | 显示版本信息 |
-x | 恢复之前离线的screen作业 |
-ls | 显示目前所有的screen作业 |
-list | 显示目前所有的screen作业 |
-wipe | 检查目前所有的screen作业,并删除已经无法使用的screen作业 |
5.5 ls
ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。
默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。作为最基础同时又是使用频率很高的命令,我们很有必要搞清楚ls命令的用法,那么接下来一起看看吧!
语法格式: ls [选项] [文件]
常用参数:
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
---|---|
-l | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
[root@iz2zed4h7bg5dihzfqhmn9z ~]$ls -al
total 184
dr-xr-x---. 11 root root 4096 Nov 23 21:40 .
dr-xr-xr-x. 21 root root 4096 Nov 17 21:38 ..
-rw-r--r-- 1 root root 22 Nov 16 19:42 aaa.txt
-rw-r--r--+ 1 root root 17 Nov 17 08:17 aa.txt
-rw------- 1 root root 21206 Nov 25 14:49 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r-- 1 root root 214 Nov 19 17:23 .bashrc
-rw-r--r-- 1 root root 292 Nov 13 09:04 bc
drwx------ 3 root root 4096 Aug 18 2017 .cache
-rw-r--r-- 1 root root 22 Nov 16 19:41 cat.log
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
-rw------- 1 root root 1383 Nov 14 19:07 dead.letter
drwxr-xr-x 3 root root 4096 Nov 19 19:34 docker-ce-stable
drwx------ 2 root root 4096 Jun 27 09:33 .elinks
-rw-r--r-- 1 root root 1573 Nov 15 09:32 file11.txx
-rw-r--r-- 1 root root 849 Nov 15 09:27 file23.txt
5.6 export
export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
语法格式: export [参数]
常用参数:
-f | 代表[变量名称]中为函数名称 |
---|---|
-n | 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中 |
-p | 列出所有的shell赋予程序的环境变量 |
参考实例
列出当前所有的环境变量:
[root@iz2zed4h7bg5dihzfqhmn9z ~]$export -p
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="iz2zed4h7bg5dihzfqhmn9z"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"