1.Linux入门
1.1.Linux CentOS7的网络设置
- 入门命令
重启主机的命令:reboot 重启网卡的命令:systemctl restart network.service 查看ip地址的命令:ip addr ping网络是否畅通:ping ip地址
- 桥接模式(Bridged)
可以访问外网 容易与局域网的其他集器ip地址冲突
- Host-Only仅主机模式
一般情况下不可以访问外网 不会与局域网的其他机器ip地址冲突
- NAT模式
可以访问外网 不会与局域网的其他机器ip地址冲突
1.2.虚拟机的快速克隆
克隆之后,systemctl restart network.service 命令会报错,原因试MAC地址不正确,会复制原来的MAC地址。
网卡路径:/etc/sysconfig/network-scripts/ifcfg-eno16777728,修改MAC地址后保存
1.3.虚拟机的快照
2.Linux常用操作
2.1.Linux常用基础命令(一)
(1)cd命令
- 功能说明:切换目录
- 举例:cd /usr/local/ ; cd … ; cd - ; cd(回到家目录)
(2)ls命令
- 功能说明:列出目录内容
- 举例:ls -ltr ; ls -ltr /home ; ll
(3)pwd命令
- 功能说明:查询所在目录
- 举例:pwd
- (4)cat命令
- 功能说明:查看小文件内容
- 举例:cat -n 123.txt
(5)more命令
- 功能说明:查看大文件内容
- 举例:more System.map-3.10.0-123.e17.x86_64
(6)head命令
- 功能说明:查看文件的前N行,默认查看前10行
- 举例:head -20 System.txt
(7)tail命令
- 功能说明:查看文件的后面N行,默认查看后10行
- 举例:tail - f access.log ; tail -20 access.log
(8)touch命令
- 功能说明:创建一个空文件
- 举例:touch 123.txt
(9)mkdir命令
- 功能说明:创建目录
- 举例:mkdir -p /tmp/xd (注意不加-p,不能多级创建) ;mkdir /tmp/xd/test{1…10} ; mkdir /tmp/xd/test{1…10}.txt
(10)rmdir命令
- 功能说明:删除目录
- 举例:rmdir /tmp/xd
(11)cp命令
- 功能说明:拷贝文件
- 举例:cp 123.txt class/(复制123.txt到class目录) ; cp -a 123.txt class/ 789.txt(复制123.txt重命名位789.txt到class目录下,-a完全复制)
(12)mv命令
- 功能说明:移动或更名现有的文件和目录
- 举例:mv 123.txt 345.php ; mv 789.txt /home/789.php
(13)rm命令
- 功能说明:删除文件或目录
- 举例:rm 987.txt ; rm -rf 456.txt
(14)diff命令
- 功能说明:对比文件差异
- 举例:diff 123.txt 456.txt
(15)exit命令
- 功能说明:退出命令
(16)ssh命令
- 功能说明:远程安全登录方式
- 举例:ssh ip
(17)id命令
- 功能说明:查看用户
- 举例:id root
(18)uname命令
- 功能说明:查询主机信息
- 举例:uname -a
(19)ping命令
- 功能说明:查看网络是否畅通
- 举例:ping ip
(20)echo命令
- 功能说明:标准输出命令
- 举例:echo “this is echo 命令”
(21)man命令
- 功能说明:查看帮助文档
- 举例:man ls
(22)help命令
- 功能说明:查看内部命令帮助
- 举例:help if
2.2.Linux常用基础命令(二)
(1)clear命令
- 功能说明:清屏
- 举例:clear ; ctrl+L
(2)who命令
- 功能说明:当前在本地系统上的所有用户信息
- 举例:whoami ; who
(3)uptime命令
- 功能说明:显示当前时间,系统运行了多长时间,多少用户登陆过,负载信息
- 举例:load average: 0.00,0.01,0.05 (1分钟的负载,5分钟的负载,15分钟的负载)
(4)w命令
- 功能说明:查询系统信息
- 举例:w
(5)free命令
- 功能说明:查看系统内存
- 举例:free -h ; free -m
- (6)wc命令
- 功能说明:统计文件的行数
- 举例:wc -l 123.txt
(7)grep 命令
- 功能说明:查找文件里符合条件的字符串
- 举例:grep ‘11111111111’ 123.txt | wc -l
- -n:输出记录对应的行号 grep -n ‘1111111’ 123.txt
- -w:精确匹配 grep -w ‘111111’ 123.txt
- -i:忽略大小写 grep -i ‘1111111’ 123.txt
- -v:反向选择 grep -v ‘1111111’ 123.txt
- (8)find命令
- 功能说明:查询文件
- 举例:
- find / -name 123.txt (查询名称为123.txt的文件或者文件夹)
- find / -type f -name 123.txt (查询名称为123.txt的文件)
- 注意:find 最好不要从根目录开始查,非常消耗性能,生产不要用
(9)uniq命令
- 功能说明:对排序好的内容进行统计
- 举例:uniq -c 123.txt |sort -n
(10)sort命令
- 功能说明:对内容进行排序
- 举例:uniq -c 123.txt | sort -n
(11)df命令
- 功能说明:文件系统的磁盘使用情况统计
- 举例:df -h
(12)hostname命令
- 功能说明:查看主机名
- 举例:hostname
(13)netstat命令
- 功能说明:查看网络端口的使用情况
- 举例:netstat -tunlp |grep nginx
- -t:显示tcp端口
- -u:显示UDP端口
- -n:指明拒绝显示别名
- -l:指明监听的内容
- -p:指明显示建立相关连接的程序名
- centos中默认没有netstat命令,须安装:yum install net-tools
(14)ps命令
- 功能说明:显示所有进程信息。ps与grep常用组合,查找特定的进程
- 举例:
- ps aux | grep nginx
- ps -ef | grep nginx
(15)kill命令
- 功能说明:杀进程
- 举例:kill -9 进程号
- (16)top命令
- 功能说明:监控Linux系统状况,比如cpu、内存的使用
- 举例:top ;按住q退出
(17)du命令
- 功能说明:统计大小
- 举例:du -sh ; du -sm *
(18)firewall-cmd命令
- 功能说明:查看防火墙的状态
- 举例:firewall-cmd --state
- centos7关闭防火墙的命令:systemctl stop firewall.service
(19)echo命令
- 功能说明:判断上一个命令是否正确
- 举例:echo $?
(20)cal命令
- 功能说明:查看日历
- 举例:cal 2008
2.3.Linux的输入输出错误重定向
(1)什么是输入重定向?
输入重定向就是把要输入的信息写入到指定的文件去
(2)什么是输出重定向?
输出重定向就是把要输出的信息写道一个文件中去,而不是将要输出的信息打印到控制台
(3)什么是错误重定向?
错误重定向就是把错误的信息写入到一个文件中去
(4)Linux中一切皆文件
文件描述符 | posix名称 | 用途 |
/dev/stdin | 0 | 标准输入 |
/dev/stdout | 1 | 标准输出 |
/dev/stderr | 2 | 标准错误输出 |
(5)输入重定向:<
举例:wc -l < 123.txt
(6)输出重定向:> 代表覆盖写入;>> 代表追加写入
举例:cat >>123.txt(追加输入) ;cat >123.txt(覆盖输入);ls -lrt >123.txt(ls-lrt查询结果覆盖到123.txt中); echo ‘123123’ >123.txt(直接写入)
(7)错误重定向:2>
举例:llll 2> 123.txt(将错误信息写到123.txt中);llll 2>/dev/null 将一些无用的错误报错写到这里
(8)符号:
&:代表等同于的意思:ls -lrt /boot /test 1>/root/123.txt 2>&1
&>:代表部分正确还是错误的意思:ls -lrt /boot /test &>123.txt
|:管道符:用于将前面的执行结果作为后面执行的条件
;:代表可以执行多条命令,cat etc/password; grep root
&&:前面的命令执行成功的话,后面才可以执行,前面执行失败的话,后面不执行 :llll && grep root
||:前面的命令执行成功,后面的不执行,面前的执行失败,后面的才执行:grep root || ls -lrt
2.4.Linux下的目录分类与作用
/:根目录,一般根目录下之村放目录,不要存放文件,也不要修改,或者删除目录下的文件 /mnt:测试目录 /root:root用户的家目录 /home:普通用户的家目录 /tmp:临时文件(比如文件上传时) /var:存放经常修改的数据,比如程序运行的日志文件 /boot:存放启动linux时使用的内核文件,包括链接文件以及镜像文件 /etc:系统默认放置配置文件的地方 /bin:所有用户都能执行的程序 /sbin:只有root才能执行的程序 /usr:用户自己的软件都可以放到这里 /dev:存放硬件设备的地方(dev/cdrom) /media:挂载光盘使用
挂载光盘:mount /dev/cdrom /media 卸载光盘:umount /dev/cdrom
2.5.虚拟机与外部物理机时间同步
(1)卸载光盘的时候出现:
解决办法:
首先确认联网状态
- yum install -y psmisc
- fuser -mv /media
- fuser -kv /media
(2)date命令
- date “+%Y-%m-%d %H:%M:%S” 时间格式刷
- date -s “2020-10-1 22:00:00” 指定当前时间
- date -d yesterday “+%Y-%m-%d %H:%M:%S” 查看昨天日期
- date “+%w” 显示星期几
- (3)安装VMwareTools
- 打开虚拟机,安装VMwareTools使工具软件包下载到光盘
- 挂载光盘到linux系统:mount /dev/cdrom /mnt
- cp VMwareTools-10.2.0-7259539.tar.gz /root/
- umount /dev/cdrom
- root目录解压:tar -xf VMwareTools-10.2.0-7259539.tar.gz
- cd vmware-tools-distrib
- yum -y install perl-Data-Dumper
- ./vmware-install.pl
- 安装过程全部yes或者默认
2.6.Linux编辑器vi的使用
(1)vi的基本概念(三种模式)
插入模式:按住键盘的i(当前位置前面插入)或者o(当前位置的下一行)或者a(当前位置的后面插入) 命令模式:按住esc 底行模式:前提是在命令模式,按住:进入
(2)在命令行模式的基本操作
$ #移动到这一行的行尾 gg #移动到当前文本的行首 G #移动到文档最后一行的行首 x #删除内容,删除一个字符 dd #删除游标所在的那一整行,多行删除3dd u #复原原来的操作 v #选中范围按y即复制 p #当前光标所在行,向下粘贴 P #当前光标所在行,向上粘贴 yy #复制当前光标所在行,多行复制3yy
(3)在底行模式中的操作
n #n为数字,光标移动到第n行 /字符串 #寻找内容,从上往下查找,按n查找下一个 %s/word1/word2/g #从第一行到最后一行寻找word1字符串,并将该字符串取代为word2 n1,n2s/word1/word2/g #n1与n2为数字。在第n1与n2行之间寻找2word1的单词替换成word2 set nu #显示行号 set nonu #取消行号 q! #强制离开不保存 wq! #强制离开并保存 !ls #暂时离开 ? #模糊查找,从下往上开始查找,按n查找下一个 s #作替换,s/t/A 当前行的第一个t字符替换成A,s/t/A/g当前行的所有t字符替换成A,%s/t/A全文t替换成A r #读文件,将读到的文件内容插入在当前文件的末尾
(4)编辑模式操作
A #直接在光标行末尾插入 a #在光标后插入 i #在光标前插入 I #在光标所在的行首插入 o #在下一行插入 O #在上一行插入
2.7.Linux的用户管理与组管理
(1)Linux用户的分类
Linux是一个多用户、多任务的操作系统
超级用户root:拥有至高无上的权限UID:0 普通用户:权限有一定的限制,可以登录系统。一版可以执行/usr/local/bin或者/usr/bin或者自己的家目录。 UID:500-10000(centos6) UID:1000-10000(centos7) 系统用户(伪用户):一般不会登录系统,一版情况下是用来维持某个程序的服务。 UID:1-499(centos6) UID:1-999(centos7)
(2)关于用户的相关配置文件
- 账号信息:/etc/passwd
- 密码信息:/etc/shadow
(3)账号信息解析
lixiang:x:1230:0::/home/lixiang:/bin/bash
lixiang | :x | :1230 | :0 | : | :/home/lixiang | :/bin/bash |
用户 | 密码占位符 | UID | GID | 描述 | 用户家目录 | 登陆后使用shell解释 |
/sbin/nologin #不可登录的 /bin/bash #可以登录
(4)密码信息解析
lixiang:xxxx:18794:0:99999:7:::
lixiang | :xxxx | :18794 | :0 | :99999 | :7 | :空 | :空 |
用户账号名 | 密码的密文 | 账号上次修改距离1970-01-01过去多长时间 | 距离上次修改密码多少天不能修改密码,0表示随时可以修改 | 密码过期天数 | 强制密码修改提醒时间,表示密码过期前7天开始警告 | 当密码过期后多少天该账号被禁用 | 用户过期日期,若设置则显示过期日期为距1970-01-01有多少天 |
(5)添加用户命令:useradd
- -u #指定用户UID
- -d #指定用户主目录
- -g #指定用户所属组
- -r #指定用户是系统用户
- -s #用户登录shell解释器
- -M #不创建主目录
举例:创建一个用户lixiang,指定UID为1010,指定家目录为home/lixiang,指定所属组root组,指定登录shell为/bin/bash
useradd -u 1010 -d /home/lixiang -g root -s /bin/bash lixiang
(6)删除用户命令:userdel
userdel -r lixiang -r #连同家目录一起删除
(7)添加用户组命令:groupadd
(8)修改用户的信息命令:usermod
- -u #指定用户的UID
- -d #指定用户的主目录
- -g #指定用户所属组
- -s #修改用户的登录Shell,默认是bin/bash
- -e #修改用户的失效日期,格式为”YYYY-MM-DD“
usermod -u 1300 -g 0 -d /usr/local/lixiang lixiang
(9)设置用户密码命令:passwd
passwd lixiang echo '123456' | passwd --stdin lixiang
(10)用户登录出现如下信息
如下: bash-4.2$ bash-4.2$ 解决:复制/etc/skel 中bash相关的文件到家目录当中 cp -r /etc/skel/.bash* /home/lixiang/
(11)获取主机ip
hostname -I ifconfig | grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1
2.8.Linux文件属性与权限操作
(1)文件的属性:ls -lrti
135088935 -rw-------. 1 root root 1778 Oct 1 2020 yum.log
135088935 第一列:i节点,i节点可以理解为文件的id,一个i节点号可以对应多个文件,但是一个文件只能对应一个i节点号。
-rw-------. 第二列:文件的类型与权限 (1)- #代表的是文件 d #代表的是目录 l #代表的是软链接 b #代表是块设备 c #代表的是硬件设备 (2)r:读权限 w:写权限 x:执行权限 4:读权限 2:写权限 1:执行权限 - rw- --- ---:分为三列,第一列为所属者的权限,第二列为所属组的权限,第三列为其他权限
1 第三列:有多少文件名链接到这个节点
root 第四列:文件的所有者
root 第五列:文件的所有组
1778 第六列:容量大小,单位默认为B
Oct 1 2020 第七列:创建或最近修改的时间
yum.log 第八列:文件名
(2)文件链接
原始文件:
软链接:ln -s 举例:ln -s /home/lixiang/yum.log /usr/local/ i节点号根源文件不一样,源文件一旦删除,软链接将找不到源文件。
硬链接:ln 举例:ln /home/lixiang/yum.log /usr/local/lixiang/ i节点与源文件一模一样,源文件删除,硬链接还可以继续使用,常用于防止重要文件被误删。
(3)修改文件的权限命令:chmod
- -R:递归的意思
- chmod -R 777 /home/lixiang
举例:
文件权限修改之前:
执行命令:chmod u+x,g+w,o+w 123.txt
撤销权限:chmod u-w,g-r,o-w 123.txt
举例: chmod u+x,g+w,o+w boot.log chmod u-x,g-w,o-w 123.txt chmod 777 boot.log
(4)修改文件的所有者跟所属组的命令:chown
更改文件目录lixiang 的所属者为root用户和所属组为lixiang组
chown -R root:lixiang lixiang
2.9.Linux的文件归档与解压缩
(1)文件归档与文件压缩
- 文件归档:
文件归档也称为打包,指的是一个文件或者多个文件或者目录的一个集合,这个集合存储在一个文件内。归档文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和。工作中常于压缩结合在一起。
- 文件压缩:
节约磁盘空间,加快文件的传输速率。
(2)压缩解压缩命令:gzip、xz
- gzip:不能压缩目录,只能压缩文件,压缩速度最快,但是压缩比例比较低。扩展名:.gz
不保留源文件压缩:gzip 123.txt 保留源文件压缩:gzip -c 123.txt >123.txt.gz 不保留源文件的解压:gunzip 123.txt.gz 保留源文件的解压:gunzip -c 345.txt.gz > 234.txt 不保留源文件解压:gzip -d 345.txt.gz
- xz:可以压缩目录和文件,压缩的速度比较慢,但是压缩的比例最高。扩展名:.xz
不保留源文件的压缩:xz 123.txt 保留源文件的压缩:xz -c 345.txt > 345.txt.xz 不保留源文件的解压:unxz 345.txt.xz 保留源文件的解压:xz -d -k 123.txt.xz 不保留源文件的解压:xz -d 123.txt.xz
(3)归档与压缩命令:tar
- 参数:
-c #创建新文件 -f #指定文件格式 -v #显示详细过程
- 压缩:
tar -cvf vmware.tar vmware-tools-distrib -z 以gzip方式归档压缩:tar -zcvf vmware.tar.gz vmware-tools-distrib -J 以xz方式进行归档压缩:tar -Jcvf vmware.tar.xz vmware-tools-distrib tar -Jcvf /home/lixiang/vmware.tar.xz vmware-tools-distrib
- 解压缩:
-x 解档解压缩操作:tar -xvf vmware-tools.tar.xz -C 解压指定路径:tar -xvf vmware-tools.tar.xz -C /home/lixiang