Linux 概述与安装

概述

Linux 是一种自由和开放源码的类 UNIX 操作系统。
Linux 英文解释为 Linux is not Unix
Linux 是在 1991 由林纳斯·托瓦兹在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启发。

安装 VMware 16

VMware Workstation Pro 16 安装教程

安装 CentOS

CentOS 7系统安装配置图解教程(包含设置静态IP的步骤)

CentOS 基本配置

CentOS7配置阿里云镜像源(超详细过程)
Linux yum 命令

VMware 启动虚拟机后电脑蓝屏

VMware开启虚拟机电脑蓝屏的解决方法(亲测有效)
Win10启动VMware虚拟机开机秒蓝屏问题完美解决

网卡设置及故障排查方法

vmware虚拟机三种网卡
VMware虚拟机常见问题汇总

Linux 基本操作

Linux 的文件结构

Linux 没有盘符这个概念,只有一个根目录/,所有的文件都挂载在/下边。

Linux 文件结构

其中比较重要的目录:

  • /etc - 系统中的配置文件,错误的更改可能会造成系统无法启动;
  • /bin, /sbin, /usr/bin, /usr/sbin - 放置系统预设的执行文件的目录,如一些常用的系统命令 ls, cd, touch 等(**/bin** 和 /usr/bin 是给普通的系统用户使用的,而 /sbin/usr/sbin/ 则是给 root 用户使用的);
  • /var - 存放着各种程序的日志文件(**/var/log**)和一些预设配置文件等。

基本概念

用户目录:存放在 /home 下,称之为 用户工作目录 或 家目录。

1
2
3
4
5
6
7
8
9
10
11
# 使用 pwd 可以查看当前所在目录的完整路径
[root@localhost ~]# pwd
/root

# 使用 su 切换系统内存在的其他用户
[root@localhost ~]# su java

# cd ~ 代表回到当前用户的家目录
[java@localhost root]$ cd ~
[java@localhost ~]$ pwd
/home/java

其他:

  • 终端前面的[java@localhost ~]$对应的含义为:[用户名@主机名 当前所在的目录名称]$
  • .代表当前目录,而..则代表了上一级目录(在根目录,两者都表示当前目录)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 当前目录为 /home
[java@localhost home]$ pwd
/home

# 使用 . 表示当前目录,则该操作执行后目录仍然为 /home
[java@localhost home]$ cd .
[java@localhost home]$ pwd
/home

# 从 /home 目录返回到 / 目录
[java@localhost home]$ cd ..
[java@localhost /]$ pwd
/

# 在根目录下使用返回上一级无变化
[java@localhost /]$ cd ..
[java@localhost /]$ pwd
/
[java@localhost /]$

文件权限

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

访问用户

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

访问权限

对于普通用户而言,文件分为读(R)写(W)执行(X)三个权限。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ls 为查看当前目录下的文件,-l 参数在官方文档中则意为“使用长列表格式”,使用它可以看到各类文件及文件夹更为详细的信息吗,包括权限类别,链接的文件数量,所属用户,文件大小,最后一次的修改时间等。
[root@localhost /]# ls -l
total 28
lrwxrwxrwx. 1 root root 7 Dec 26 2019 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 May 11 2020 boot
drwxr-xr-x. 19 root root 3240 Jan 15 22:12 dev
drwxr-xr-x. 137 root root 8192 Jan 15 22:19 etc
drwxr-xr-x. 3 root root 18 Dec 26 2019 home
lrwxrwxrwx. 1 root root 7 Dec 26 2019 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Dec 26 2019 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Nov 5 2016 media
drwxr-xr-x. 2 root root 6 Nov 5 2016 mnt
drwxr-xr-x. 3 root root 16 Dec 26 2019 opt
dr-xr-xr-x. 176 root root 0 Jan 15 22:12 proc
dr-xr-x---. 14 root root 4096 Jan 15 22:30 root
drwxr-xr-x. 37 root root 1140 Jan 15 22:15 run
lrwxrwxrwx. 1 root root 8 Dec 26 2019 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Nov 5 2016 srv
dr-xr-xr-x. 13 root root 0 Jan 15 22:12 sys
drwxrwxrwt. 14 root root 4096 Jan 16 00:12 tmp
drwxr-xr-x. 13 root root 155 Dec 26 2019 usr
drwxr-xr-x. 21 root root 4096 Jan 15 22:12 var

第一段参数lrwxrwxrwx.九位三组的格式,分别为所有者(属主)用户组(属组)其他用户定义了执行三种权限。而起始的第一个字母则定义了该文件的类型,例如l代表了该文件是一个链接文件。(类似于 Windows 下的快捷方式)

基本命令

Linux 基本命令

具体参照 Linux 命令手册

使用实例

(1)ps查看进程信息并使用 less 分页显示

1
2
3
4
5
[root@localhost Desktop]# ps -aux > 1.txt | less -N 1.txt

1 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
2 root 1 0.0 0.4 193628 4820 ? Ss 14:04 0:05 /usr/lib/systemd/systemd --switc 2 hed-root --system --deserialize 21
......

(2)查看命令历史记录并使用 less 分页显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@localhost Desktop]# history | less


1 ping baidu.com
2 ifconfig
3 ping 192.168.8.128
4 vim /etc/sysconfuig/network-scripts/ifcfg-ens33
5 vim /etc/sysconfig/network-scripts/ifcfg-ens33
6 service network restart
7 rpm -qa|grep jdk
8 yum -yy remove copy-jdk-configs-1.2-1.el7.noarch
9 reboot
10 mkdir -p /usr/local/soft/
11 cd /usr/local/soft/
12 ll
13 tar -xzvf jdk-8u40-linux-x64.tar.gz -C /usr/local/soft/java
14 mkdir java
15 tar -xzvf jdk-8u40-linux-x64.tar.gz -C /usr/local/soft/java
16 vim /etc/profile
17 source /etc/profile
18 java -version
19 systemctl stop filewalld.service
20 systemctl stop filewalld.service

(3)查找10天前的文件

1
2
3
4
[java@localhost ~]$ find . -type f -mtime +10
./.bash_logout
./.bash_profile
./.bashrc

(4)使用 find 查找符合条件的文件并执行复制操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[java@localhost Desktop]$ ls
[java@localhost Desktop]$ ps aux > 1.txt
[java@localhost Desktop]$ mkdir dir1/
[java@localhost Desktop]$ ls
1.txt dir1

# 末尾一定要以分号结尾,为了保险再添加一个反斜杠表示转义
[java@localhost Desktop]$ find . -name '*.txt' -exec mv {} dir1/2.txt \;
mv: ‘./dir1/2.txt’ and ‘dir1/2.txt’ are the same file

[java@localhost Desktop]$ ls dir1/
2.txt
[java@localhost Desktop]$ ls
dir1

(5)使用 chmod 修改文件权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost Desktop]# ll
total 20
-rw-r--r--. 1 root root 16763 Jan 16 23:52 1.txt
drwxr-xr-x. 2 root root 6 Jan 17 00:54 dir

[root@localhost Desktop]# chmod g+w,o+w 1.txt
[root@localhost Desktop]# ll
total 20
-rw-rw-rw-. 1 root root 16763 Jan 16 23:52 1.txt
drwxr-xr-x. 2 root root 6 Jan 17 00:54 dir

[root@localhost Desktop]# chmod 664 1.txt
[root@localhost Desktop]# ll
total 20
-rw-rw-r--. 1 root root 16763 Jan 16 23:52 1.txt
drwxr-xr-x. 2 root root 6 Jan 17 00:54 dir
名称 含义
r 读,用数字4表示
w 写,用数字2表示
x 执行,用数字1表示
- 无权限,用数字0表示
s 特殊权限
名称 含义
664 rw- rw- r–
775 rwx rwx r-x

(6)使用 chown 更改文件所属的用户及组信息

1
2
3
4
5
6
7
8
9
10
[root@localhost Desktop]# ll
total 20
-rw-rw-r--. 1 root root 16763 Jan 16 23:52 1.txt
drwxr-xr-x. 2 root root 6 Jan 17 00:54 dir

[root@localhost Desktop]# chown java:java 1.txt
[root@localhost Desktop]# ll
total 20
-rw-rw-r--. 1 java java 16763 Jan 16 23:52 1.txt
drwxr-xr-x. 2 root root 6 Jan 17 00:54 dir

Vi/Vim 编辑器

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)

进入 Vi/Vim 时默认为 命令模式,切换到编辑(输入)模式可以使用i(光标前),l(行首),a(光标后),A(行末)。

常用快捷键

按键 用途
ZZ 若文件发生更改则保存后退出(等同于 wq)
ZQ 退出且不保存(等同于 q!)
yy 复制光标所在的行
dd 剪切光标所在的行
p P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。
yw 复制一个单词
dw 删除一个单词
b 将光标移动至所在单词的首部
u 撤销
[Ctrl]+r 取消撤销

详细文档

Linux vi/vim

键位图

Vim 键位图

VMware 虚拟机创建快照、克隆

VMware使用技巧之“快照”+“克隆”(建议拍摄快照前关闭系统)
修改完后记得开机进入系统修改ip,根据需求还可以使用hostnamectl set-hostname 主机名对系统进行重新命名。

RPM

rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

RPM 的缺点

  1. RPM 在安装时无法指定安装路径,安装路径在制作 RPM 包时就已经指定了;
  2. RPM 软件包通常都存在依赖问题。

RPM 使用方法

Linux rpm 命令

1
2
3
# 使用示例
# i: install 即安装,v 显示更多细节, h 显示安装进度
[root@ahost ~]# rpm -ivh package_name

RPM 网络镜像库

1
2
# CentOS 7.9 2009 版本
https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/

YUM

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

修改镜像源

Centos 7 修改YUM镜像源地址为阿里云镜像地址

Epel 镜像

YUM 使用方法

Linux yum 命令

参考文章

Linux 文件与目录管理
Linux 文件基本属性
Linux 用户和用户组管理
Linux date命令
Linux grep 命令
Linux kill命令
Linux ps 命令
cal命令

Linux软件安装管理之——RPM与YUM详解