一、系统分区
1.1 分区类型
1.1.1 主分区
- 最多只能有4个
1.1.2 扩展分区
- 最多只能有1个
- 主分区加扩展分区最多有4个
- 不能写入数据,只能包含逻辑分区
1.1.3 逻辑分区
- 可以写入数据
1.2 格式化
- 又称逻辑格式化
- 目的是在硬盘中写入文件系统
- 文件系统有:FAT16、FAT32、NTFS、EXT2、EXT3、EXT4(默认)等
1.3 硬件设备名
硬件 | 设备文件名 |
---|---|
IDE硬盘 | /dev/hd[a-d] |
SCSI/SATA/USB硬盘 | /dev/sd[a-p] |
光驱 | /dev/cdrom或/dev/sr0 |
软盘 | /dev/fd[0-1] |
打印机(25针) | /dev/lp[0-2] |
打印机(USB) | /dev/usb/lp[0-15] |
鼠标 | /dev/mouse |
1.4 分区表示
- 不管如何分区,1、2、3、4都用于主分区,第一个逻辑分区都是从5开始
1.5 挂载
1.5.1 必备分区
- / (根分区)
- swap分区(交换分区,内存2倍,不超过2GB)
1.5.2 推荐分区
- /boot(启动分区,200MB,默认是sda1)
1.6 文件系统结构
- Linux目录可以放在不同的系统分区中
1.7 小结
- 分区:把大硬盘分为小的逻辑分区
- 格式化:写入文件系统
- 分区设备文件名:给每个分区定义设备文件名
- 挂载:给每个分区分配挂载点(挂载点必须是空目录,挂载后分区才能正常使用)
二、Linux命令
2.1 文件目录
目录名称 | 含义 |
---|---|
. | 代表当前目录 |
.. | 代表上一级目录 |
- | 代表前一个工作目录 |
~ | 代表[目前用户身份]所在的家目录 |
2.2 文件处理命令
2.2.1 命令列表
- 以下命令执行权限为所有用户
命令 | 选项 | 解释 |
---|---|---|
ls | -ald [文件/目录] | a:显示目录中全部文件(包括隐藏文件) -l:详细信息显示 -d:查看目录属性 -i:查看i节点 显示目录文件信息 所在位置/bin/mkdir |
mkdir | -p | -p:递归创建 创建新目录 |
cd | ||
pwd | 显示当前目录 所在位置/bin/pwd |
|
rmdir | 删除空目录 | |
cp | -rp [原文件/目录] [目标目录] | -r:表示复制目录 -p:表示保留文件属性 复制文件或目录 所在位置/bin/cp |
mv | [原文件或目录] [目标目录] | 剪切文件、改名 所在位置/bin/mv |
rm | -rf | -r:表示删除目录 -f:表示强制执行 |
touch | [文件名] | 创建空文件 所在位置/bin/touch,文件名不推荐加空格 |
cat | -n [文件名] | -n:表示显示行号 显示文件内容 |
tac | 反向显示文件内容 | |
more | 按f/空格翻页 按Enter换行 按q退出 分页显示文件内容 所在位置/bin/more |
|
less | 按PgUp向上翻页 /+搜索名称进行内容搜索(继续按n可以向下查找) 分页显示文件内容(可以向上翻页) 所在位置/usr/bin/less |
|
head | -n [文件名] | -n:指定行数 显示文件前几行,默认显示前世行 所在位置/uer/bin/head |
tail | -nf | -n:指定行数 -f:表示动态显示文件末尾内容 显示文件后几行,默认显示后10行 所在位置/usr/bin/tail |
ln | -s [原文件] [目标文件] 生成链接文件 所在位置/bin/ln |
2.2.2 示例
- ls -ld
- mkdir -p /tmp/a/b
- cd ..(返回上一目录)/cd [绝对路径/相对路径]
- pwd
- rmdir /tmp/a/b
- cp -r /tmp/a/b /root(将b目录复制到root目录下)
- mv /tmp/a/b /root/c(将b剪切到root目录并改名为c)
- touch a.list
- cat /etc/issue
- more /etc/services
- less /etc/services
- head -n 20 /etc/services
- tail -n 18 /etc/services
- ln -s /etc/issue /tmp/issue.soft
2.3 权限管理命令
2.3.1 命令列表
- 以下命令执行权限为所有用户
命令 | 选项 | 解释 |
---|---|---|
chmod | [{ugoa}{+-=}{rwx}] [文件或目录]或[mode=421] [文件或目录]/-R | -R:表示递归修改某一目录下全部文件的权限 改变文件或目录权限 u表示所有者,r=4,w=2,x=1 所在位置/bin/chmod |
chown | [用户] [文件或目录] | 改变文件或目录的所有者 所在位置/bin/chown |
chgrp | [用户组] [文件或目录] | 改变文件或目录的所属组 所在位置/bin/chgrp |
umask | [-S] | -S:表示以rwx形式显示新建文件缺省权限 显示、设置文件的缺省权限 所在位置Shell内置命令 |
2.3.2 示例
- chmod u+x,o-r,g=rwx a.list
- chmod 640 a.list
- chown gaoy a (改变文件a的所有者为gaoy)
- chown root:tsgroup /project/(改变project目录的所有者和所属组)
- chgrp a b.list
- umask -S
2.4 文件搜索命令
2.4.1 命令列表
- 以下命令执行权限为所有用户
命令 | 选项 | 解释 |
---|---|---|
find | [搜索范围] [匹配条件] | -name:根据文件名查找 -iname:不区分大小写查找 - size:根据文件大小查找 -user:根据所有者查找 文件搜索 所在位置/bin/find |
locate | [文件名] | -i:不区分大小写查找 在文件资料库中查找文件,速度比find快 所在位置/usr/bin/locate |
which | [命令名称] | 搜索命令所在目录及别名信息 所在位置/usr/bin/which |
whereis | [命令名称] | 搜索命令所在目录及帮助文档路径 |
grep | -inv [关键字] [文件名] | 在文件中搜寻字串匹配的行并输出 所在位置/bin/grep |
2.4.2 示例
- find /etc -name init(在目录/etc中查找文件init)
- locate inittab
- which ls
- whereis ls
- grep mysql /root/install.log
2.5 帮助命令
2.5.1 命令列表
- 以下命令执行权限为所有用户
命令 | 选项 | 解释 |
---|---|---|
man | [命令或配置文件] | 获取帮助信息 按q退出 按空格翻页 按Enter换行 按/-[查找内容]进行查找 按n向下查找 所在位置/usr/bin/man |
whatis | [命令] | 简单显示命令帮助信息 |
apropos | [配置文件] | 查看配置文件的信息 |
—help | [命令] —help | 查看命令常见选项 |
help | [命令] | 获取Shell内置命令的版帮助信息 所在位置Shell内置命令 |
2.5.2 示例
- man ls
- man services:查看配置文件services的帮助信息
- whatis ls
- apropos inittab
- ls —help
- help umask
2.6 用户管理命令
2.6.1 命令列表
- useradd/userdel执行权限为root
- 其他命令执行权限为所有用户
命令 | 选项 | 解释 |
---|---|---|
useradd | -udcgGs | -u [UID]:手工指定用户的UID -d [家目录]:手工指定用户的家目录 -c [用户说明]:手工指定用户的说明 -g [组名]:手工指定用户的初始组 -G [组名]:手工指定用户的附加组 -s shell:手工指定用户的登录shell,默认是/bin/bash 所在位置:/usr/sbin/useradd; 添加用户,不推荐手工指定用户的家目录 |
passwd | -Slu [用户名]—stdin | -S:查询用户密码的密码状态 -l:暂时锁定用户 -u:解锁用户 —stdin:可以通过管道符输出的数据作为用户的密码 -Slu:这些选项只能由root执行 设置用户密码,root可以更改任何人的密码,普通用户可以更改自己的密码 所在位置:/usr/bin/passwd; 只用root可以改其他用户的密码,其他用户只能直接输入passwd(不用接用户名)改自己的密码(必须符合密码复杂性原则) |
usermod | -ucGLU | -u [UID]:修改用户的UID号 -c [用户说明]:修改用户的说明信息 -G [组名]:修改用户的附加组-L-U; -L:临时锁定用户 -U:解锁用户锁定 |
chage | -l:列出用户的详细密码 -d [日期]:修改密码最后一次更改日期 -m [天数]:两次密码修改间隔 -M [天数]:密码有效期 -W [天数]:密码过期前警告天数 -I [天数]:密码过后宽限天数 -E [日期]:账号失效时间 |
|
userdel | -r [用户名] | -r:删除用户的同时删除用户家目录 |
id | [用户名] | 查看用户ID(UID、GID等) |
su [选项] [用户名] | - -c |
-:选项只是用“-”代表连带用户的环境变量一起切换 -c:仅执行一次命令,而不切换用户身份 |
groupadd | -g [GID] [组名] | -g [GID]:指定组ID |
groupmod [选项] [组名] | -g [GID]-n [新组名] | -g:修改GID -n:修改组名 |
groupdel [组名] | 没有初始组,此用户不能存在 | |
gpasswd | -ad [用户名] [组名] | -a:把用户加入组 -d:把用户从组中删除; 把用户添加入组或从组中删除 |
who | 查看登录用户信息 所在位置:/usr/bin/who |
|
w | 查看登录用户详细信息 所在位置:/usr/bin/w |
2.6.2 示例
- useradd yangmi
- echo “123” | passwd —stdin lamp:给用户lamp添加密码123
- passwd -l sc:锁定用户(该用户无法登录)
- usermod -c “test user” lamp
- chage -d 0 lamp:用户一登录就要修改密码
- su root:这样切换不会改变此用户的环境变量
- su - root:把用户的操作环境也改为root环境(推荐)
- su - root -c “useradd user3”:不切换成root,但执行useradd命令添加user3用户
- groupmod -n testgrp group1:把组名group1修改为testgrp
- gpasswd -a user1 root:把user1用户加入到root组中
- who
- w
2.7 压缩解压命令
2.7.1 命令列表
- 以下命令执行权限为所有用户
命令 | 选项 | 解释 |
---|---|---|
gzip | [文件] | 压缩文件(目录不可以),压缩后文件格式为.gz,压缩后只保留压缩后的文件,不保留原文件所在位置/bin/gzip |
gunzip | [压缩文件] | 解压缩.gz的压缩文件 |
tar | -zcfvx [压缩后的文件名] [目录] | -c:打包 -v:显示详细信息 -f:指定文件名 -z:打包同时压缩 -x:解包 打包目录,即把目录打包成一个.tar的文件,压缩后的文件格式为.tar.gz所在位置:/bin/tar |
zip | -r [压缩后文件名] [文件或目录] | -r:压缩目录 压缩文件或目录,压缩后文件格式为.zip 所在位置/usr/bin/zip |
unzip | [压缩文件] | 解压.zip的压缩文件 所在位置/usr/bin/unzip |
bzip2 | -k [文件] | 压缩文件,压缩后文件格式.bz2 |
bunzip2 | -k [压缩文件] | 解压缩 |
2.7.2 示例
- gunzip a.gz
- tar -zcf Japan.tar.gz Japan
- tar -axvf Japan.tar.gz(解包)
- zip -r Japan.zip Japan
- unzip test.zip
- bzip2 -k boduo
- tar -cjf Japan.tar.bz2 Japan(针对目录)
- bunzip2 -k boduo.bz2
- tar -xjf Japan.tar.bz2(针对目录)
2.8 网络命令
2.8.1 命令列表
- 以下命令执行权限为所有用户
- ifconfig执行权限为root,其他均为所有用户
命令 | 选项 | 解释 |
---|---|---|
write | <用户名> | 给登录用户发信息 以Ctrl+D保存结束 所在位置:/usr/bin/write |
wall | [message] | 发广播信息 所在位置:/usr/bin/wall |
ping | -c [IP地址] | 测试网络连通性 所在位置:/bin/ping |
ifconfig | [网卡名称] [IP地址] | 查看和设置网卡信息 所在位置:/sbin/ifconfig |
[用户名] | 查看发送电子邮件 所在位置/bin/mail |
|
last | 列出目前与过去登入系统的用户信息 所在位置:/usr/bin/last |
|
lastlog | -u [uid] | 检查某特定用户上次登录的时间 所在位置/usr/bin/lastlog |
traceroute | 显示数据包到主机间的路径 所在位置:/bin/traceroute |
|
netstat | -tulrn | 显示网络相关信息 所在位置:/bin/netstat |
setup | 配置网络 所在位置/usr/bin/setup |
|
mount | [-t 文件系统] [设备文件名] [挂载点] |
2.8.2 示例
- write linzhiling
- wall abcdefgh
- ping -c 3 192.168.1.156
- ifconfig eth0 192.168.8.250
- mail root
- last
- lastlog
- lastlog -u 502
- traceroute www.baidu.com
- netstat -tlun(查看本机监听的端口)
- netstat -an(查看本机所有的网络连接)
- netstat -rn(查看本机路由表)
- setup
- mount -t iso9660 /dev/sr0 /mnt/cdrom
- umount /dev/sr0(卸载)
2.9 关机重启命令
2.9.1 命令列表
命令 | 选项 | 解释 |
---|---|---|
shutdown | -chr [时间] | -c:取消前一个关机命令 -h:关机 -r:重启 |
reboot | 重启 | |
init 0 | 关机 | |
init 6 | 重启 |
2.9.2 系统运行级别
(1)级别
级别 | 解释 |
---|---|
0 | 关机 |
1 | 单用户 |
2 | 不完全多用户、不含NFS服务 |
3 | 完全多用户(默认) |
4 | 未分配 |
5 | 图形界面 |
重启 |
(2)相关命令
命令 | 解释 |
---|---|
runlevel | 查看系统运行级别 |
logout | 退出登录 |
2.10 Shell命令
2.10.1 命令列表
命令 | 选项 | 解释 |
---|---|---|
echo | -e [输出内容] | -e:支持反斜线控制的字符转换;基本输出命令 |
history | -cw [历史命令保存文件] | -c:清空历史命令(不推荐清空) -w:把缓存中的历史命令写入历史命令保护文件 ~/.bash_history 查看之前输入的命令,不加w选项,刚输入的命令还在缓存中,还未写入历史命令保存文件中,默认保存1000条历史命令(可以在环境变量配置文件/etc/profile中进行修改) |
alias | [别名]=[‘原命令’] | alias [别名]=[‘原命令’]:设定命令别名 alias:查询命令别名 临时生效,重启后无效 |
2.10.2 示例
- history
- history -w
- alias vi=’vim’
- alias
2.11 字符提取命令
2.11.1 cut命令
- 选项:-df [文件名]
- 解释:
- -d 分隔符:按照指定分隔符分割列
- -f 列号:提取第几列
- 说明:默认提取以制表符分割的列
2.11.2 printf命令
- ‘输出类型/输出格式’ 输出内容
- 输出类型:
- %ns:输出字符串。n是数字指代输出几个字符
- %ni:输出整数。n是数字指代输出几个数字
- %m.nf:输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中2位是小数,6位是整数
输出格式:
- \a:输出警告音
- \b:输出退格键
- \f:清除屏幕
- \n:换行
- \r:回车
- \t:水平输出退格键,即Tab键
- \v:垂直输出退格键,即Tab键
说明:利用管道符或者直接接文件名都无法利用此命令输出文件内容,print和printf一般在awk命令中使用
- 示例
- printf ‘%s %s %s \n’ 1 2 3 4 5 6
- printf ‘%s’ $(cat s.txt):输出文件内容
2.11.3 awk命令
- 选项:
- ‘条件1 {动作1}
- 条件2 {动作2}…’ 文件名
- 条件:
- 一般使用关系表达式作为条件
- x>10
- x>=10
- x<=10
- 动作:格式化输出流程控制语句
- 说明:print只能在awk中使用,会自动换行
- 示例:
- awk ‘{printf $2 “\t” $6 “\n”}’ s.txt:输出文件第2列和第六列
- df -h | awk ‘{print $1 “\t” $3}’
- df -h | grep sda5 | awk ‘{print $5}’ | cut -d “%” -f 1:截取某一行的第5列数据
- awk ‘BEGIN{printf “This is a txt \n”} {print $2 “\t” $5}’ s.txt:在输出文件内容前,先输出This is a txt
- awk ‘BEGIN{FS=”:”} {print $1 “\t” $3}’ /etc/passwd:FS指定分隔符为冒号,不加BEGIN,文件的第一行就不会处理
- awk ‘END{printf “The End \n”} {printf $2 “\t” $6 “\n”}’ s.txtEND:表示输出完成之后,再输出The End
2.11.4 sed命令
- 选项:[-nei] ‘[动作]’ [文件名]
- 解释:
- -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕
- -e:允许对输入数据应用多条sed命令编辑
- -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
动作:
- a \:追加,在当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结
- c \:行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结
- i \:插入,在当前行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结
- d:删除,删除指定的行
- p:打印,输出指定的行
- s:字串替换,用一个字符串替换另外一个字符串。
- 格式为“行范围s/旧字串/新字串/g”(和vim中的替换格式类似)
示例:
- sed -n ‘2p’ s.txt:输出第二行,不加-n会把所有内容都输出
- df -h | sed -n ‘2p’ s.txt:输出df命令内容第2行
- sed ‘2,4d’ s.txt:将文件输出的内容的第2到4行删除,但不改变文件本身
- sed ‘2i hello \world’ s.txt:在文件输出内容第2行插入hello world内容,并不改变文件本身
- sed ‘4s/99/55/g’ s.txt:将文件输出内容的第4行的99改为55
- sed -e ‘s/LiMing//g ; s/Gao//g/‘ s.txt:同时把LiMing和Gao修改为空白
三、网络配置
3.1 准备工作
- 将虚拟机网络配置改为桥接模式,才能保证主机和虚拟机ping通
3.2 第一步
3.2.1 修改配置文件参数
- dhclient:动态分配IP地址
- vim /etc/sysconfig/network-scripts/ifcfg-ens33
- 修改静态IP:BOOTPROTO=static
- 修改自启动:ONBOOT=yes
3.3 第二步
3.3.1 向配置文件添加IP地址、子网掩码、网关、DNS
- IPADDR=192.168.1.102
- NETMASK=255.255.255.0
- GATEWAY=192.168.1.1
- DNS1=119.29.29.29
- GATEWAY和IPADDR需要在同一网段下,否则无法上网
3.4 第三步
- 重启网络服务:systemctl restart network.service
四、开启web服务
4.1 安装tomcat
4.2 安装nginx
4.3 开放端口
- 在不关闭防火墙的前提下,开放浏览器访问端口
- 开启tomcat:systemctl start tomcat.service
- 永久开放8080端口:firewall-cmd —zone=public —add-port=8080/tcp —permanent
- 重启防火墙:systemctl restart firewalld.service
- 查看是否开放成功:firewall-cmd —list-ports
- 也可以关闭防火墙对服务器进行访问:
- 暂时关闭防火墙:systemctl stop firewalld
- 永久关闭防火墙:systemctl disable firewalld