工欲善其事,必先利其器。
Linux 介绍
各 Linux 发行版如下:
- 中标麒麟:中标软件(国产)
- slackware:SUSE Linux Enterprise Server (SLES) , OpenSuse桌
- debian: ubuntu,deepin(深度),mint
- Redhat: RHEL: RedHat Enterprise Linux, 每18个月发行一个新版本
- CentOS: Community Enterprise Operating System 兼容RHEL的格式
- Fedora:每6个月发行一个新版本
Unix 哲学思想:
- 一切皆文件,一切皆可配置
- 链接程序,共同完成复杂的任务
- 配置数据存储在文本中
在 Vmware 安装 Linux
准备工作
- Vmware Workstation:虚拟机,用于在 Windows 或者其它主机安装 Linux。
- Xshell 或 Putty:用于通过 SSH 连接 Linux。
- CentOS 和 Ubuntu 镜像:
- 建议 Centos 7.9 或 Centos 8.5:建议下载 dvd 版镜像。
- 建议 Ubuntu 18.04.6。
安装 CentOS
新建虚拟机
- 安装 Vmware Workstation。
- 打开 Vmware Workstation,单击【文件】>【新建虚拟机】。
- 选择【典型(推荐)】>【下一步】>【稍后安装操作系统】>【下一步】。
- 选择【Linux】>版本【Centos 7 64位】>【下一步】>“配置虚拟机名称和位置”>【下一步】。
- 配置磁盘大小,建议100G左右,然后单击【下一步】>【完成】。
- 找到刚刚创建的虚拟机,单击【编辑虚拟机设置】,找到【CD/DVD(IDE)】,将下载好的 ISO 镜像挂载,如下图:
- 单击【开启此虚拟机】,开始安装 CentOS。
CentOS 安装配置
- 进入安装界面之后,选择【Install CentOS7】。
- 等待片刻会进入语言选择界面,选择【English】即可。
- 在 INSTALLATION SUMMARY 界面按需配置。例如 SOFTWARE SELECTION 选择 Minial Install,如下图:
- 每一项都配置完之后,单击【Begin Installation】开始安装。
- 配置 root 和口令:
6. 等待安装结束并重启,输入 root 和口令即可进入 CentOS。
Ubuntu 安装步骤类似。
Linux 目录结构
- /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
- /bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
- /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
- /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
- /lib64:专用于x86_64系统上的辅助共享库文件存放位置
- /etc:配置文件目录
- /home/USERNAME:普通用户家目录
- /root:管理员的家目录
- /media:便携式移动设备挂载点
- /mnt:临时文件系统挂载点
- /dev:设备文件及特殊文件存储位置
- /opt:第三方应用程序的安装位置
- /srv:系统上运行的服务用到的数据
- /tmp:临时文件存储位置
- /proc: 用于输出内核与进程信息相关的虚拟文件系统
- /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
- /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
常用命令
ifconfig
使用 ifconfig 命令可以查看网卡 IP 地址等信息:
[[email protected] ~]#ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.68.71 netmask 255.255.255.0 broadcast 192.168.68.255
inet6 fe80::d41:eecf:3c27:b767 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:a3:ec:ac txqueuelen 1000 (Ethernet)
RX packets 7285 bytes 9189640 (8.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2493 bytes 311346 (304.0 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
禁用网卡:
ifconfig down ifcfg-name
# ifcfg-name 是网卡名称,根据实际情况输入
启用网卡:
ifconfig up ifcfg-name
# ifcfg-name 是网卡名称,根据实际情况输入
history
使用 history 命令,可以查看执行过的命令,如下图所示:
[[email protected] ~]#history
1 ip addr
2 vi /etc/sysconfig/network-scripts/ifcfg-ens33
3 systemctl restart network
4 ip a
5 hostname
6 hostname centos7.9_19
7 hostname centos7.9-19
8 hostname --help
9 hostnamectl --help\
10 hostnamectl --help
如果希望 histroy 命令能够执行命令的日期和时间,可以添加 HISTTIMEFORMAT 变量,执行命令如下:
HISTTIMEFORMAT="%F %T "
此时在执行 history 命令查看,会带有命令的执行时间:
[[email protected] ~]#history
1 2021-12-26 10:25:00 ip addr
2 2021-12-26 10:25:00 vi /etc/sysconfig/network-scripts/ifcfg-ens33
3 2021-12-26 10:25:00 systemctl restart network
4 2021-12-26 10:25:00 ip a
bash 执行的变量在系统重启之后将失效,可以将 HISTTIMEFORMAT="%F %T " 写在 /etc/profile 文件。
date
date 命令用于查看当前系统时间:
[[email protected] ~]#date
Sun Dec 26 10:54:34 CST 2021
查看 date 帮助:
date --help
修改时间:
使用 date -s time,例如:
date -s "11:05:00"
date -s "2021-12-26 11:05:00"
指定格式输出时间:
[[email protected] ~]#date "+%F %T"
2021-12-26 10:57:40
[[email protected] ~]#date "+%T"
10:58:01
[[email protected] ~]#date "+%D %T"
12/26/21 10:58:38
#显示前一天:
[[email protected] ~]#date -d "-1 days" "+%F %T"
2021-12-25 11:04:05
echo 命令
echo 命令可以将后面跟的字符进行输出。
功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。
echo -[neE] [字符串]
-E:不支持\解释功能
-n:不自动换行
-e:启用\字符的解释功能
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\e escape,相当于\033
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
[[email protected] ~]#echo "lkx"
lkx
[[email protected] ~]#echo -e "lkx\nabcd\nefg"
lkx
abcd
efg
[[email protected] ~]#echo -e "lkx\nabcde\befg"
lkx
abcdefg
[[email protected] ~]#echo -e "lkx\nab\tcdeefg"
lkx
ab cdeefg