0%

Linux基础大全

一、系统分区

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
mail [用户名] 查看发送电子邮件
所在位置/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
  • mail
  • 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 修改配置文件参数

  1. dhclient:动态分配IP地址
  2. vim /etc/sysconfig/network-scripts/ifcfg-ens33
  3. 修改静态IP:BOOTPROTO=static
  4. 修改自启动: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