1. Linux发行版本
- debian:
- redhat:
- RHEL:RedHat Enterprise Linux,每18个月发行一个新版本
- CentOS:Community Enterprise Operating System 兼容RHEL的格式
- 中标麒麟:中标软件
- Fedora:每6个月发行一个新版本
2. Linux的哲学思想
- 一切皆文件
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免了令人困扰的用户界面
-
配置数据存储在文本中
3. 操作系统的安装?
3.1 Linux安装前准备
虚拟器:用软件(如:vmware、virtualbox等)模拟硬件,方便实验的灵活配置。本次实验采用的是VMware软件。
镜像文件:CentOS-7.9-x86_64-DVD-2009.iso
? ? ? ? ? ? ? ? ?ubuntu-18.04.5-server-amd64.iso
3.2?安装CentOS 7.9
3.2.1 针对CentOS7.9创建虚拟机环境
- 选择创建新的虚拟机
- ?选择自定义(高级),点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
- 点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- 选择稍后安装操作系统,点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
- ?客户操作系统选择Linux,版本选择CentOS 7 64位,点击下一步? ??
- ?设置虚拟机名称和保存位置,点击下一步(建议不采用默认位置)? ? ??
- ?设置处理器配置,设置好后点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?设置内存大小,点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
- ?设置磁盘大小,点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?点击下一步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?点击完成? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?加载光盘? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?3.2.2 安装CentOS 7.9
- ?点击开启此虚拟机
- ?选择Install CentOS 7,回车
- ?选择语言,建议语言选择英文,点击Continue
- ?修改时区,点击Time & Date? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
- ?时区选择上海,点击Done
- ?自定义分区,点击INSTALLATION DESTIONACTION
- ?选择 I will configure partitioning,点击Done
- ?设置成Standard Partition
- ?自定义/boot分区,点击+号,选择挂载点和设置文件大小,点击Add mount point? ? ? ? ? ? ? ? ? ? ? ? ??
- ?自定义/分区,点击+号,选择挂载点和设置文件大小,点击Add mount point? ? ? ? ? ? ? ? ? ? ? ? ? ?
- ?自定义swap分区,点击+号,选择挂载点和设置文件大小,点击Add mount point
- ?点击Done,完成分区? ? ? ? ? ? ? ? ? ? ?
- ?点击Accept Changes? ? ? ? ? ? ? ? ? ? ??
- ?配置网络和主机名,点击NETWORK & HOST NAME
- ?设置主机名和自动获取IP地址
- ?设置完成,点击Done? ? ? ? ? ? ? ??
- ?关闭KDUMP,点击KDUMP ?
- ?点击Begin Installation? ? ? ? ? ?
- ?设置root口令,点击ROOT PASSWORD
- ?输入口令,点击Done? ? ? ? ? ? ? ??
- ?创建一个普通用户,点击USER CREATION
- ?输入用户名和密码,点击Done
- ?开始安装,等待安装结束
- 点击Reboot,完成安装
?3.3 安装ubuntu 1804
?3.3.1 针对ubuntu 1804创建虚拟机环境
创建的过程基本与centos7.9的过程一样,详细过程此处略。
唯一的区别就是客户端操作系统选择 Linux, 版本选择 Ubuntu 64位 ,如下图所示:? ?? ? ? ? ? ? ? ? ? ? ? ??
?3.3.2 安装ubuntu1804
- ?选择开启此虚拟机? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
- ?开始安装,选择语言,选择英语,回车? ? ? ? ? ? ? ? ? ? ? ? ?
- ?选择Install Ubuntu Server,回车? ? ? ? ? ? ? ? ? ? ? ??
- ?选择安装过程的语言,默认选择English,回车
- ?选择所在国家或地区为Hong Kong,回车
- ?选择No,不检测键盘布局? ? ? ? ?
- ?选择键盘布局English(US),回车
- ?继续回车? ? ? ? ? ? ? ? ? ? ? ? ?
- ?配置主机名(hostname),输入主机名,选择Continue,回车
- ?建立用户和设置密码,输入用户名,选择Continue,回车
- ?确认用户名,无误后选择Continue,回车
- ?输入密码,选择Continue,回车
- 再次输入密码,选择Continue,回车
- ?选择YES,回车? ? ? ? ? ? ? ? ? ? ??
- ?确定位置和时区,确认无误,选择YES,回车
- ?选择手工分区? ? ? ? ? ? ? ? ? ? ? ? ??
- ?选择要操作的硬盘? ? ? ? ? ? ? ? ??
- ?创建一个空的分区表,选择yes,回车
- ?创建一个分区,选择分区表,回车
- ?选择Create a new partition,回车
- ?输入分区大小,选择Continue,回车
- ?选择Primary,回车? ? ? ? ? ? ? ? ?
- ?选择Beginning,回车?
- ?设置相应的mount point,然后选择Done setting up the partition,回车
- ?选择YES,回车? ? ? ? ? ? ? ? ? ?
- ?根据环境判定是否需要配置代理,需要代理则输入地址,然后选择Continue,回车,否者直接选择Continue,回车
- 选择 自动升级? ? ? ? ? ? ? ? ? ? ?
- ?使用空格选择openssh server,回车
- ?安装grub,选择YES,回车
- ?选择Continue,回车,完成安装
4. 其他?
4.1 命令的格式
COMMAND [OPTIONS....] [ARGUMENTS....]
?选项:用于启动或关闭命令的某个或某些功能
参数:命令的作用对象,比如:文件名,用户名等
范例:
[admin1@CentOS7 ~]$ echo "hello world"
hello world
[admin1@CentOS7 ~]$ echo -e "a\nb"
a
b
[admin1@CentOS7 ~]$ echo -n "abcd"
abcd[admin1@CentOS7 ~]$
范例:screen的安装与使用
注意:screen在centOS7上来自于base源,CentOS8上来自于epel源
# screen的安装
[root@CentOS7 ~]# yum install -y sceen
[root@CentOS8 ~]# dnf install -y screen
# 创建一个新的会话
[root@CentOS7 ~]# screen -S test
[root@CentOS8 ~]# screen -S java
# 加入一个会话
[root@CentOS7 ~]# screen -x test
[root@CentOS8 ~]# screen -x java
# 查看会话
[root@CentOS7 ~]# screen -ls
There are screens on:
1325.pts-0.CentOS7 (Detached)
1291.test (Detached)
2 Sockets in /var/run/screen/S-root.
# 退出会话
[root@CentOS7 ~]# exit
范例:
[root@CentOS7 ~]# date
Wed Aug 25 23:11:33 CST 2021
[root@CentOS7 ~]# date "0812093021.24"
Thu Aug 12 09:30:24 CST 2021
[root@CentOS7 ~]# date
Thu Aug 12 09:30:25 CST 2021
[root@CentOS7 ~]# date +%F
2021-08-12
[root@CentOS7 ~]# date +"%F %T"
2021-08-12 09:30:53
[root@CentOS7 ~]# date +%s
1628731873
[root@CentOS7 ~]# date -d @`date +%s` +%F
2021-08-12
[root@CentOS7 ~]#
[root@CentOS7 ~]# date -d "-1 day" +%F
2021-08-11
范例:
[root@CentOS7 ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.152 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::c6fa:3b0e:eeaf:3c64 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1d:89:18 txqueuelen 1000 (Ethernet)
RX packets 14135 bytes 18476376 (17.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2276 bytes 192070 (187.5 KiB)
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
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
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
[root@CentOS7 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.152 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::c6fa:3b0e:eeaf:3c64 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1d:89:18 txqueuelen 1000 (Ethernet)
RX packets 14164 bytes 18478566 (17.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2294 bytes 194588 (190.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
范例:
[root@CentOS7 ~]# export
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="CentOS7.db-node1-test"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XDG_SESSION_ID="1"
[root@CentOS7 ~]# echo $PS1
[\u@\h \W]\$
[root@CentOS7 ~]# echo 'export PS1="\[\e[1;32m\][\t \# \u@\h \W]\\$ \[\033[0m\]"' > /etc/profile.d/env.sh
[root@CentOS7 ~]# cat /etc/profile.d/env.sh
export PS1="\[\e[1;32m\][\t \# \u@\h \W]\\$ \[\033[0m\]"
[root@CentOS7 ~]# . /etc/profile
[09:35:29 31 root@CentOS7 ~]#
[09:35:31 31 root@CentOS7 ~]#
[09:35:31 31 root@CentOS7 ~]#
4.2?实现执行history,显示执行命令的时间
范例:针对CentOS系统
[root@CentOS8 ~]# history
1 hostname
2 hostname -I
3 echo $PS1
4 getent passwd
5 shutdown -h now
6 dnf install -y screen
7 history
[root@CentOS8 ~]# echo 'export HISTTIMEFORMAT="%F %T "' >> /etc/profile.d/env.sh
[root@CentOS8 ~]# cat /etc/profile.d/env.sh
export HISTTIMEFORMAT="%F %T "
[root@CentOS8 ~]# source /etc/profile
[root@CentOS8 ~]# history
1 2021-08-25 23:03:29 hostname
2 2021-08-25 23:03:29 hostname -I
3 2021-08-25 23:03:29 echo $PS1
4 2021-08-25 23:03:29 getent passwd
5 2021-08-25 23:03:29 shutdown -h now
6 2021-08-25 23:03:34 dnf install -y screen
7 2021-08-25 23:17:50 history
8 2021-08-25 23:18:49 echo 'export HISTTIMEFORMAT="%F %T "' >> /etc/profile.d/env.sh
9 2021-08-25 23:18:55 cat /etc/profile.d/env.sh
10 2021-08-25 23:19:08 source /etc/profile
11 2021-08-25 23:19:09 history
范例:针对ubuntu系统
admin1@ubuntu1804:~$ history
1 shutdown -h now
2 sudo -i
3 history
admin1@ubuntu1804:~$ echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
admin1@ubuntu1804:~$
admin1@ubuntu1804:~$ . .bashrc
admin1@ubuntu1804:~$ history
1 2021-08-25 23:00:27 shutdown -h now
2 2021-08-25 23:20:07 sudo -i
3 2021-08-25 23:20:12 history
4 2021-08-25 23:20:47 echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
5 2021-08-25 23:20:50 . .bashrc
6 2021-08-25 23:20:52 history
4.3?目录结构?
[root@CentOS8 ~]# ll /
total 16
lrwxrwxrwx. 1 root root 7 Nov 3 2020 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Aug 25 18:58 boot
drwxr-xr-x. 2 root root 6 Aug 25 18:54 data
drwxr-xr-x. 19 root root 3120 Aug 25 22:55 dev
drwxr-xr-x. 79 root root 8192 Aug 25 22:55 etc
drwxr-xr-x. 3 root root 20 Aug 25 18:59 home
lrwxrwxrwx. 1 root root 7 Nov 3 2020 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Nov 3 2020 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Nov 3 2020 media
drwxr-xr-x. 3 root root 18 Aug 25 18:56 mnt
drwxr-xr-x. 2 root root 6 Nov 3 2020 opt
dr-xr-xr-x. 158 root root 0 Aug 25 22:54 proc
dr-xr-x---. 2 root root 135 Aug 25 19:14 root
drwxr-xr-x. 23 root root 640 Aug 25 22:55 run
lrwxrwxrwx. 1 root root 8 Nov 3 2020 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Nov 3 2020 srv
dr-xr-xr-x. 13 root root 0 Aug 25 22:55 sys
drwxrwxrwt. 9 root root 187 Aug 25 23:05 tmp
drwxr-xr-x. 12 root root 144 Aug 25 18:55 usr
drwxr-xr-x. 20 root root 278 Aug 25 19:13 var
4.3.1 Linux的目录结构
- 文件和目录被组织成一个单根倒置树结构
- 一切从/开始
- 以.开头的文件为隐藏文件
- 路径分隔符为/
- 对于EXT文件系统,文件名最长255个字节,路径最长4095个字节
- 每个文件都有两类数据,即元数据(meta data)和数据(data)
- 文件名称大小写敏感
4.3.2 常见的文件系统目录功能?
- /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
- /bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
- /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
- /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
- /lib64:专用于x86_64系统上的辅助共享库文件存放位置
- /etc:配置文件目录 /home/USERNAME:普通用户家目录
- /root:管理员的家目录
- /media:便携式移动设备挂载点
- /mnt:临时文件系统挂载点
- /dev:设备文件及特殊文件存储位置
- b: block device,随机访问
- c: character device,线性访问
- /opt:第三方应用程序的安装位置
- /srv:系统上运行的服务用到的数据
- /tmp:临时文件存储位置
- /usr: universal shared, read-only data*
- /var: variable data files
- /proc: 用于输出内核与进程信息相关的虚拟文件系统
|