VMWare
root用户相关
设置用户密码:
sudo passwd root
切换到root用户,输入下述命令,然后键入密码。
su root
虚拟机组成
硬件
我的联想电脑的CPU核心数为12。虚拟机运行数量
*
每个虚拟机CPU数
* 每个CPU核心数
不要超过12。
IP
设置VMWare的IP地址
VMWare中,点击编辑
->虚拟网络编辑器
,会看见VMnet1和VMnet8。选中VMnet8,点击更改设置
。再次点击编辑
->虚拟网络编辑器
,会看见VMnet0,VMnet1和VMnet8。选中VMnet8,可以将子网IP第三个八位字节设置为10(如192.168.10.0)。点击NAT设置,将网关IP也同样设置(网关IP的第四个八位字节一般是2)。最后,点击虚拟网络编辑器
中的确定。
本机Windows中设置VMnet8的地址
在本机中,点击以太网
->更改适配器选项
->VMWare Network Adapter VMnet8
->属性
->Internet协议版本 4
。按照下图配置。
虚拟机内部设置IP地址
打开文件。如果识别不出vim命令,则需要下载apt install vim
。
su root
sudo vim /etc/netplan/01-netcfg.yaml
键入i
进入编辑模式。
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.10.100/24
gateway4: 192.168.10.2
nameservers:
addresses:
- 192.168.10.2
按Esc
,再键入:wq
可以保存修改的内容。
应用更改:
sudo netplan apply
建立IP地址与主机名的映射关系:
sudo vim /etc/hosts
增加下述内容:
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
使用
ipconfig
检查ens33部分的内容,查看inet是否为192.168.10.100
。然后再
ping www.baidu.com
看看是否能访问外网。hostname
查看主机名称是否为hadoop100
Linux组成
Linux系统(发行版) = Linux系统内核(开源)+系统级应用程序
Linux系统内核:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。
系统级应用程序:文件管理器、任务管理器、图片查看、音乐播放等。
Linux基础命令
ls
ls [-a -l -h] /root
-h需要与-l使用,列出易读文件大小,同时显示这些文件的总大小。ls -alh
还会列出所有文件(包括隐藏文件)的总大小。注意,在遇到文件夹时,ls
命令只会统计文件夹自己的大小比如\(4\text{KB}\)。如果要统计文件夹及其所包含文件的大小,使用命令du -sh folder
。
touch
touch mytest.txt
创建文件
cat mytest.txt
查看文件
more mytest.txt
翻页查看文件
cp, mv, rm
重命名和移动文件都用mv
命令。
rm *test
删除所有以”test”结尾的文件。
rm *test*
删除所有包含test的文件。
rm -rf /*
危险命令。
which, find
which ls
查看ls命令存放在哪里。
find 起始路径 -mindepth 2 -name 被查找的文件名
根据名称规则查找文件
下述命令可以查找到正则形如”*-*-*-*-*“的文件(-type f)并删除(-delete)。
find -type f -name "*-*-*-*-*" -delete
下述命令可以查找到文件夹名称中包含zookeeper
的文件夹(如果不区分大小写,则使用参数-iname替换-name):
find /opt -type d -name "*zookeeper*"
find 起始路径 -size +|-n[kMG]
根据文件大小查找文件。例如find /root -size +100M
在/root
路径下查找文件大小大于\(100\text{MB}\)的文件
grep, wc
grep [-n] "目标关键字" 目标文件
在目标文件中查找目标关键字,显示出含有目标关键字的行,使用参数-n
表示显示内容加上行号。
wc [-c -m -l -w] 目标文件
。
-c
表示统计Bytes数量-m
统计字符数量。“换行符”,“空格”都算字符,另外.txt文件统计出的字符数会\(+1\)。英文中,一个字符就是一个Byte。-l
统计行数-w
统计单词数量
管道符
管道符|
将左侧的结果作为右侧的输入。凡是有内容输出的命令都可以和管道符|
做配合。
例如grep "American" mytest.txt | wc -w
,查找mytest.txt
的文件中包含有”American”的那些行,然后统计这些内容中的单词的总数。
例如ls -alh /root/bin | grep kafkastartstop.sh
只查看kafkastartstop.sh
文件的信息。
例如ls -alh | wc -l
可以统计当前路径下的文件个数。
例如grep "American" mytest.txt | grep "friends"
连续两遍过滤。
echo
echo
命令类似于编程语言中的print命令,它可以在命令行中直接打印内容。
下述命令可以将pwd
的执行结果输入到mytext.txt中。
echo `pwd` > mytest.txt
>
是覆盖写;>>
是追加写
tail
tail [-f -n] 文件路径
-f
表示持续跟踪-n
表示查看尾部多少行,默认10行
用户和权限
用户与用户组
创建用户组:
groupadd myGroup
在指定用户组中创建用户zt并且生成用户家目录:
useradd -g myGroup -m zt
查看某用户的uid,gid,所属的用户组:
id zt
把用户zt新加到用户组myGroup中:
usermod -aG myGroup2 zt
删除用户zt并删除用户家目录和mail pool:
userdel -r zt
删除用户组(仅在用户组为空时生效):
groupdel myGroup
文件/etc/passwd
的尾部会展示新建的用户。例如当我用useradd -m zt
后,/home/zt
路径被生成,同时在/etc/passwd
文件的尾部出现zt:x:1000:1001::/home/zt:/bin/sh。
其中的x表示密码占位符,1000是用户ID,1001是用户组ID,/home/zt是用户主目录,/bin/sh是用户的默认shell。
文件/etc/group
的尾部会展示新建的用户组、例如当我用groupadd myGroup
后,/etc/group
的尾部会出现myGroup:x:1000:。
其中x表示密码占位符,1000是用户组ID。
使用下述命令切换到用户zt,并加载目标用户的环境变量,并切换到目标用户的主目录。
su - zt
创建了新用户后,在root用户中使用下述命令可以修改新用户的终端显示,不让其只显示一个$符号。
usermod -s /bin/bash zt
文件权限
查看文件权限
举例drwxr-xr-x
d:代表这是一个文件夹
rwx:代表所属的用户对它的权限是读、写、执行。
r-x:代表所属用户组对它的权限是读、执行。
r-x:代表其他用户对它的权限是读、执行。
修改文件权限chmod
chmod [-R] 权限 文件或文件夹
- -R表示对文件夹内的全部内容执行相同的操作
将文件权限修改为rwxr-x–x:chmod u=rwx,g=rx,o=x mytest.txt
将文件夹及其所有内容修改为rwxr-x–x:chmod -R u=rwx,g=rx,o=x myfolder
权限序号\(7\)代表所有读写执行权限,chmod 777 mytest.txt
表示在用户、用户组、其他用户上对mytest.txt文件赋予所有权限。
修改文件所属用户/用户组
chown [-R] [用户][:][用户组] 文件或文件夹
更改文件的用户组权限:chown :myGroup1 mytest.txt
软件安装、systemctl
软件安装
apt [-y] [install | remove | search] 软件名称
-y
:是否自动确认
下载网络文件:例如下载hadoop安装包:
wget [-b] url
-b
表示后台下载,下载日志写入到当前工作目录的wget-log文件。
systemctl
systemctl start | stop | status | enable | disable 服务名
服务名可以是:NetworkManager, ssh, firewalld, network等。
软连接(快捷方式)
ln -s 原文件路径 快捷文件路径
IP地址
使用ifconfig
查看本机IP地址,这个IP地址是私网的IP地址。
使用curl ifconfig.me
可以查看本机的公网地址。
ping -c 3 www.baidu.com
:检查www.baidu.com是否能够访问,检查3次。
curl www.baidu.com
:向目标网站发送网络请求。
域名解析
计算机会首先查找Windows系统中的C:\Windows\System32\drivers\etc\hosts
和Linux中的/etc/hosts
中记录的域名到ip地址的映射。之后才会查找公开的DNS服务器也会纪录域名到ip地址的映射。
端口
linux可以支持\(65,535(2^16-1)\)个端口。
公认端口\(1~1023\):例如ssh使用\(22\)端口,HTTPS使用\(443\)端口。
注册端口\(1024~49151\):通常可以随意使用,用户松散绑定一些程序和服务。
动态端口\(49152~65535\):程序对外进行网络连接时用于临时使用。
查看一个IP地址目前被占用的端口有哪些:nmap 127.0.0.1
(nmap需要提前下载)
查看某个端口的占用情况:netstat -anp | grep 端口号
(netstat需要提前下载)
进程
ps
ps -ef
PID:进程的进程号。
PPID:启动此进程的其他进程ID。
C:此进程的CPU占用率。
STIME:进程启动的时间。
TTY:系统的终端序号,如果是?则表示此进程由系统启动,不是由终端启动的。
TIME:累计所使用的的CPU的时间(单位秒)。
CMD:进程的启动命令或启动路径。
top
PR:进程的优先级,值越小优先级越高。
NI:负数表示高优先级,正值表示低优先级。
VIRT:使用的虚拟内存,单位KB。
RES:使用的物理内存,单位KB。
SHR:使用的共享内存,单位KB。
S:进程状态:S为休眠,R为运行,Z为僵死,I为空闲
%CPU:cpu占用率。
%MEM:内存占用率。
%TIME+:进程使用的CPU总计时,单位10毫秒
磁盘、网卡
查看磁盘使用情况df -h
iostat
:硬盘的读取、写入速度等信息
sar -n DEV 3 2
:3秒刷新一次,一共刷新两次。