作业
- 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
- 安装Centos7.6操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图。
- 配置环境变量,实现执行history的时候可以看到执行命令的时间。
- 总结Linux哲学思想。
- 总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令。
一 Linux简述
目前在商用的服务器领域,有三种流行的操作系统,Linux,Unix和Windows,其中Linux因其稳定、开源等诸多优点,受多数企业所青睐。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
二 Linux的发行版
Linux是一个内核,是系统的主要基本部件之一,许多公司或社团将内核、源代码及相关的应用程序组织构成一个完整的操作系统,即所谓的发行版,供一般用户使用。
目前三大主流发行版分别是Debian、RedHat、SUSE。
Debian
Debian是社区类Linux的典范,在服务器和桌面电脑领域都有着广泛的应用,特色的是apt-get/dpkg包管理方式,其分支之一Ubuntu受到多开发人员喜爱。
RedHat
RedHat Linux系列是红帽公司研发的Linux发行版,包括RHEL、Fedora、CentOS和Oracle Linux多种版本。RHEL是红帽公司有偿提供技术的版本,系统使用免费,许多大型公司使用;Fedora相比RHEL,打包了更多的软件包,多样化的社区参与Fedora的建设;CentOS就是RHEL的免费版本,使用RHEL的源代码再次编译并替换logo和标识为CentOS标识,多用户活动、演示和实验。
SUSE
SUSE、SLES和openSUSE的关系类似于Fedora、RHEL和CentOS的关系。
三 安装Centos7.6操作系统
-
使用VMware Workstation点击【创建新的虚拟机】
-
在向导中选择安装类型
-
选择【稍后安装操作系统】
-
选择操作系统版本
-
编辑虚拟机名称和安装位置
-
指定虚拟机占用的磁盘大小
-
确认安装参数,点击【完成】
-
点击【编辑虚拟机设置】
-
挂载iso镜像文件,编辑内存大小,网络模式
-
启动虚拟机后进入安装界面,选择【Install CentOS 7】
-
选择安装时使用的语言和键盘布局,并非系统语言和键盘布局
-
点击【DATE & TIME】设置日期和时间
-
点击【SOFTWARE SELECTION】选择安装的环境和程序包
-
点击【INSTALLATION DESTINATION】选择到哪个磁盘,如自定义分区请勾选【I will configure partioning】
-
创建分区,至少包含三个分区,swap分区大小内存的1.5至2倍,不超过32G
-
选择【Accept Change】格式化分区
-
点击【NETWORK & HOST NAME】设置网络参数,点击【Configure】进行ens33网卡的配置
-
在【General】选项中勾选【Automatically ...】,网卡会开机启动
-
在【IPv4 Settings】选项中设置IP配置方法为Manual(手动),及IP地址,因为在虚拟机设置中网卡模式为桥接模式,此处配置为物理机同网段的IP即可
-
点击【Begin Installation】开始安装
-
设置密码和添加用户
-
安装完成后,点击【Reboot】重启,进入系统
-
输入用户名密码即可登陆,因为在第19步中没配DNS,所有没有ping同外网域名地址,加上DNS地址即可和物理机一样连接外网,至此系统安装完成。
四 history 命令的使用
history命令可以显示和管理曾经执行过的命令列表,输出结果有默认的格式,如图:可以修改history命令相关的变量来修改显示的格式,相关变量如下:
变量 | 说明 |
---|---|
HISTSIZE | 命令历史记录的条数 |
HISTFILE | 指定历史文件,默认为~/.bash_history |
HISTFILESIZE | 命令历史文件记录历史的条数 |
HISTTIMEFORMAT | 显示时间,示例:HISTTIMEFORMAT="%F %T " |
HISTIGNORE | 指定在历史中不记录的命令 |
HISTCONTROL | 控制命令历史的记录方式,可设置的值:ignoredups,ignorespace,ignoreboth,erasedups |
五 总结Linux哲学思想。
- 一切皆文件:
- 由众多功能单一的程序组成;一个程序只做一件事,并且做好;
- 尽量避免跟用户交互;
- 使用文本文件保存配置信息
- 提供机制,而非策略
六 总结Linux常用命令
- uname 显示内核版本
[shizhilei@localhost ~]$ uname -r
3.10.0-957.el7.x86_64
- 显示操作系统发行版本
[shizhilei@localhost ~]$ cat /etc/system-release
CentOS Linux release 7.6.1810 (Core)
- hostname 设置主机名
[root@abc ~]# hostname ABC
[root@abc ~]# hostname
ABC
- lscpu 显示cpu型号
[root@abc ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 142
Model name: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
...
- lsblk 查看硬盘和分区
[root@abc ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 15.8G 0 part /
sr0 11:0 1 4.3G 0 rom
- exit 退出登陆
- init6、reboot、shutdown -r now 重启
- init0、halt、poweroff、shutdown -h now 关机
- date 显示和设置系统时间
[root@abc ~]# date
Sun Apr 19 17:05:52 CST 2020
[root@abc ~]# date +'%F'
2020-04-19
- whoami 显示当前登陆的用户
[root@abc ~]# whoami
root
- echo 打印至标准输出
[root@abc ~]# echo hello
hello
- screen 是一个可以在多个进程之间复用一个物理终端的全屏幕窗口管理器(需要安装screen程序包)
用法
Use: screen [-opts] [cmd [args]]
or: screen -r [host.tty]
常用screen参数
screen -S session_name # 新建一个叫session_name的session
screen -x session_name # 加入一个叫session_name的session
screen -ls(或者screen -list) # 列出当前所有的session
screen -r session_name # 回到session_name这个session
screen -d session_name # 远程detach某个session
screen -d -r session_name # 结束当前session并回到session_name这个session - ifconfig 网卡管理,CentOS7中需安装net-tools包
Usage:
ifconfig [-a] [-v] [-s] [[] ]
[add [/]]
[del [/]]
[[-]broadcast []] [[-]pointopoint []]
[netmask ] [dstaddr ] [tunnel ]
[outfill ] [keepalive ]
[hw ] [mtu ]
[[-]trailers] [[-]arp] [[-]allmulti]
[multicast] [[-]promisc]
[mem_start ] [io_addr ] [irq ] [media ]
[txqueuelen ]
[[-]dynamic]
[up|down] ...
显示网络设备信息
[root@abc ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::c14f:c1:4e5a:dc76 prefixlen 64 scopeid 0x20
ether 00:0c:29:87:7e:99 txqueuelen 1000 (Ethernet)
RX packets 38142 bytes 30819530 (29.3 MiB)
RX errors 0 dropped 19 overruns 0 frame 0
TX packets 12052 bytes 1211111 (1.1 MiB)
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 34 bytes 2786 (2.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 34 bytes 2786 (2.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
关闭和启用网卡
ifconfig ens33 down
ifconfig ens33 up
- export 新增,修改或删除环境变量
用法
export [-fnp][变量名称]=[变量设置值]
列出所有环境变量
export -p
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="abc"
declare -x LANG="en_US.UTF-8"
...
设置环境变量并赋值
[root@abc ~]# export ABC=123
[root@abc ~]# echo $ABC
123