美文网首页
Linux基础

Linux基础

作者: 西海岸虎皮猫大人 | 来源:发表于2020-10-28 09:28 被阅读0次

1 网络配置

桥接

使用真实网卡,限制最小,可以和局域网其他主机通信,可以连公网,推荐

nat

使用vmnet8,不能和局域网通信

仅主机

使用vmnet1,只能和本主机通信

2 系统分区

mbr分区表

最大支持2.1tb,最多支持4个分区,传统分区表
为了突破4个分区的限制,主分区拿出一个作为扩展分区
扩展分区最多只有1个,不能写数据,只能包含逻辑分区

gpt分区表

支持9.4zb,理论上分区数无限制
新一代分区表

格式化

分区格式化后才能写数据,目的是写入格式系统
win使用ntfs
redhat 6使用ext4文件系统
redhat 7使用xfs
分区分block,4kb,文件使用多个 block不一定连续
某文件block空闲不存储其他文件数据
Inode,128B,文件时间权限block位置
Inode也可能写满,故不能无限上传空文件

设备文件名

linux通过硬件设备文件名寻找分区
/dev/hda1 ide硬盘接口,老式,已淘汰,光驱
/dev/sda1 scsi硬盘接口(老式服务器接口),sata硬盘接口,usb接口
现在基本都是sata
a表示第一块硬盘,1表示第一个分区
逻辑分区号从第5个开始
linux不叫盘符叫挂载点,使用已经存在的空目录

挂载
  • 必须分区
    / 根分区
    swap 分区:
    内核使用
    如果真实内存小于4g,swap为内存的两倍
    如果真实内存大于4g,swap和内存一致
    实验环境不大于2g
  • 推荐分区
    /boot
    /boot分区实际也是必须分的
    启动分区,1g
    如果不分/boot分区,用户数据写满会导致系统无法启动
  • 常用分区
    根据个人需要确定大小
    /home 用于文件服务器,单独分区可以保证安全性
    /www 用于web服务器
文件系统结构

从linux上看,/是最高目录,其他是子目录,从物理上子目录可能是其他分区

3 系统安装

密码三原则
  • 复杂性
    大于8位
    大写小写数字符号至少3种
    不适用个人信息相关
  • 易记性
  • 时效性
    最长180天
安装

使用自定义布局 - 标准分区
/home 2g ext4
/boot 200m ext4
/swap 256m swap
/ 其他所有 ext4
生产服务器使用最小化安装,这里使用basic server

配置ip
# 使用桥接,占用真实网段
# 如果使用nat模式,查看vmnet8
setup
network configuration
eth0 回车
onboot : yes
安装日志

anaconda-ks.cfg
安装配置,可用于批量安装模板
install.log 记录安装的软件包

4 初学者建议

linux严格区分大小写
linux一切皆文件,设备也是文件,设备文件保存在/dev目录
linux不能靠扩展名区分文件类型,靠权限位表示,常见7种
linux强烈建议压缩包使用扩展名
所有设备挂载后才能使用(win也是)
移动存储设备不能做成自动挂载
win程序不能直接在linux下使用
服务器不能关机只能重启
服务器重启前终止正在执行的任务,硬盘高速存储时断电易损坏

# 最后重启前把内存数据刷到磁盘
sync
# 推荐关机命令
shutdown -r now

不要在服务器高峰执行高负载命令(解压缩 备份),建议在4:00-5:00执行
配防火墙不要把自己踢出服务器
防火墙:
基本功能数据包过滤,靠ip\mac\端口号\协议类型\数据包中数据 过滤
linux防火墙靠纯手工命令完成,配置规则命令复杂
最好先在本地测试通过
笨办法,每个5分钟清空防火墙规则(回退)
外来攻击损失往往小于内部操作损失
合理分配权限: 给予用户最小的权限

5 目录结构

linux文件颜色有警示作用(颜色越鲜艳越危险),看不懂就别动

  • /bin
    系统命令,普通用户和超级用户
  • /sbin
    系统命令,只有超级用户
  • /usr/bin
    同bin
  • /usr/sbin
    同sbin
  • /boot
    启动相关,系统内核
  • /dev
    硬件设备
  • /etc
    配置文件,所有采用默认安装(rpm)的配置都在此目录
  • /home
    家目录
  • /lib /lib64
    系统函数库,.so+数字结尾为函数
  • /lost+found
    意外崩溃文件碎片
  • /media /misc /mnt
    空目录,分别挂光盘 网络设备 移动设备,一般在/mnt目录挂载
  • /opt
    相当于program files,一般不用,选择/usr/local
  • /proc /sys
    内存挂载点,别碰
# 查看cpu信息
cd /proc
cat cpuinfo
  • /selinux
    增强安全组件,来头大,fbi+美国国家安全局牵头,目的是为了限制root的权限
  • /srv
    服务数据,别碰
  • /tmp
    临时文件
  • /usr
    系统软件资源目录
    /usr/local 手工安装软件位置
    /usr/local/src 自己下载的源程序
    /usr/src/kernels 内核源程序
  • var
    动态数据目录
    /var/www/html 默认apache网页位置
    /var/lib 程序需要该表数据位置,如mysql数据库
    /var/log 日志
    /var/run 进程ID
    /var/spool/mail 邮件
    /var/spool/cron 定时任务

6 常用命令

目录 文件
# 超级用户
$ 普通用户
# -l 长格式显示
# -a 查看隐藏文件,文件隐藏是表示该文件为重要文件
# -h 人性化显示
# --color=never 暂时关闭颜色
ls -lh
# 显示目录本身
# -i 显示文件i节点号
ls -ld
---------------------
# 目录操作命令
# 上次目录
cd - 
# 递归建目录
mkdir -p a/b/c
# 删除目录,不推荐
rmdir
# 删除目录,逐个询问
rm -r 123
# 强制删除
rm -rf 123
# 误删恢复工具
extundelete
------------------------
# 文件操作命令
# 命令结果输出到文件
# 如果文件存在则追加内容
# 只要前面命令有输出结果,都可以用>>重定向
echo 111 >> abc
# 查看文件详细信息
stat abc
# linux没有创建时间,只有文件访问时间\数据修改时间\状态修改时间
# 查看文件内容
# -n 显示行号
# -A 显示隐藏符号(回车等)
cat -n abc
# 分屏显示 
# 空格翻页 b向上翻 回车滚动一行
more install.log
# less分行显示
less install.log
# 显示文件头
head install.log
# 显示文件尾
# -f 监听文件数据
tail -f install.log
链接
# 所有根目录i节点号都是2
# 引用计数表示硬链接的个数
# 创建硬链接
ln abc /tmp/abc_h
# 修改硬链接其中一个文件,其他也改变
# 不推荐使用硬链接,标记不清难于寻找
# 硬链接不允许指向目录
# 硬链接不允许跨分区
# 推荐使用软链接(类似快捷方式)
# 删除tmp目录下所有内容
rm -rf /tmp/*
# 创建软链接
ln -s /root/abc /tmp/abc_h
# 软链接block块存源文件i节点号
# 软链接权限无风险,需要参考源文件权限
# 推荐使用软链接
# 软链接主要是为了照顾管理员使用习惯
# 软链接必须写绝对路径
目录 文件通用命令
# 递归复制
cp -r
# 原样复制
cp -a abc /tmp/
# 移动文件夹,不用加 -r
mv abc /tmp/
基本权限管理
# 比man更详细的帮助
info ls
# 最后的.是selinux相关
# 类型 主[读 写 执行] 组 其他
# 类型 s 套接字 l 软链接
-rw-r--r--. 2 root root    35 Oct 27 23:18 abc
# 给所有者赋执行权限
chmod u+x abc
# 组和其他人加写权限
chmod g+w,o+w abc
# 数字权限 4读 2写 1执行
chmod 755 abc

# 常见权限3种
# 644 文件标准权限
# 755 文件执行权限 目录基本权限
# 不允许手工赋777权限
# 777 最大权限,尽力避免,安全隐患

# 添加用户
useradd user1
# 添加用户时默认生成同名用户组
# 修改密码
passwd user1
# 修改文件所有者
chown user1 abc
# 修改所属组
chgrp user1 abc
# 修改所有者 所属组
chown root:root abc
# 普通用户能够修改文件权限,前提是所有者是自己
# 普通用户不能修改文件所有者
# 对文件有写权限不能删除文件
# 删除文件需要对文件上级目录有写权限
# 执行权限对于目录是可以cd,没有危险,对目录写权限是最高的
# 目录权限只有 0 5 7
# 权限对root用户不起作用
# 所有者权限优先级最高
umask默认权限
# 新建文件的默认权限
# 基本不用改
# 新建文件默认最大权限是666
# 新建目录默认最大权限是777
# 临时修改umask
umask 033
# 逻辑与+逻辑非计算默认权限
# 永久修改
/etc/profile

# 用户id大于199为002 超级用户为022
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi
帮助命令
# 最常用
# n下翻 N 上翻
man ls
# 5为配置文件界别
man ls 5
# 最完整的帮助资料
# n 下章节 p 上章节 u 上层
info ls
# help只能获取shell内置命令,基本不用
help pwd 
# 如果能看到执行文件即为外部命令
type mkdir
# 中文man手册机翻
# 常用
ls --help
搜索命令
# 执行文件位置和帮助文档
whereis ls
# 能查看命令别名
which is
# 以上两个命令只能查系统命令不能查普通文件
# locate按照数据库搜索,消耗资源小,只按文件名搜索,最常用的搜索命令
# 异常: locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
# 强制更新locate数据库
updatedb
# locate排除了包括/tmp 的一些目录和文件
----------------------------
# 更强大的搜索命令find
# . 表示当前目录
# 搜abc不会匹配abcd
# -iname 忽略大小写

find . -name abc
# 通过文件名查i节点号
ls -i abc
# 通过i节点号查文件名
find . -inum 4456459
# 确定硬链接
find / -inum 4456459
# 查找大于28k的文件
find . -size 28k
# 按字节搜索
find . -size 35c
# 按时间搜索
find . -mtime +5
# 按权限搜索
find . -perm 644
# 任意一个权限大于4即可
find . -perm +444
# 所有权限小于4
find . -perm -444
# 按照所有者搜索
find . -user root
# 外来文件没有所有者
# 按照类型搜索
# 目录
find . -type d

# 大于1k文件和隐藏文件(逻辑与)
# -a 逻辑与
# -o 逻辑或
# 逻辑非 !
find . -size 1k -a -type f
# shell语言是所有语言最简单的

# 命令1结果作为命令2参数
find . -size +1k -a -type f -exec ls -lh {} \;
# 可用于删除临时文件
find /var/log -mtime +10 -exec rm -rf {} \;
# -ok 交互式处理
find /var/log -mtime +10 -ok rm -rf {} \;

# grep在文件中搜索字符串
grep "111" abc
# -n 显示行号
# -v 取反
# --color=auto 红色显示
grep -n "111" abc
# find是完全匹配,模糊匹配使用通配符
grep
# grep是包含匹配
grep "11" abc
# 通配符相对简单
# ? 匹配多个
# * 匹配0个或多个
# [] 匹配中括号内字符
find . -name "a*"
# 操作文件或文件名的命令都支持通配符

# 正则相对复杂
# ? 0次或1次
# * 0次或多次
# shell分标准正则和扩展正则
# 标准正则不识别?

# 匹配任意内容 
grep "a*" abc
# 1开头
grep "^1a*" abc
# 以数字1到9结尾
grep "[1-9]$" abc
管道符
# 连接多个命令
# 管道符和exec基本作用一致
# find不支持管道符 
ll /etc | more
# 管道符后边都是字符串
ll /etc/ | grep yum
# 查看所有开发端口
# t tcp
# u udp
# l 监听
# n 端口号
netstat -tuln
# 查看80端口,包含匹配(8080)
# 可以通过脚本监听80端口,需要正则过滤
netstat -tuln | grep 80
# 统计网络连接数,工作中常用
netstat -an | grep ESTABLISHED | wc -l
补充命令
# 别名,看个人喜好
# 只临时生效
alias grep='grep --color=auto'
# 永久生效修改配置
# 只对本目录生效
 vi ~/.bashrc
# 别名优先级高于系统命令
alias ser="service network restart"
快捷键
tab 补全,连续两次候选
ctrl+a 光标移动到命令行开头
ctrl+e 光标移到命令行结尾
ctrl+u 光标位置删到行首
ctrl+y 粘贴ctrl+u的内容
压缩解压缩命令
# .rar压缩比更高 .zip更古老
# .gz和.bz2 linux常用格式
# 压缩
gzip abc
# 解压缩
 gzip -d abc.gz

# gz不能压缩
# .bz2不能压缩目录
# linux专门打包命令tar
# 打包
tar -cvf test.tar 123 ABC abcd
tar -xvf test.tar
关机重启
# 重启之前sync
# 现在重启
shutdown -r now
# 指定时间重启
# 重启不推荐服务器自己执行,需要有人盯着
shutdown -r 05:30
# reboot也是安全的,而且不用加入过多的选项
# halt和poweroff直接关机不建议
# init不安全
网络命令
# setup工具配置ip
# 网络服务重启失败可能是ip冲突或者UUID冲突
# 复制虚拟机UUID重复
# 删除mac地址行
# 删除ip和mac地址的绑定
ping -c 3
# 查看哪些服务开的端口
netstat -tulnp  
# 查看网关
netstat -rn
# 查看登录用户
w 
# 用户之间发送消息
# ctrl+d发送
write user1 pts/4
# 给所用用户发消息
wall
# 发邮件
mail user1
# user1查看邮件
mail
系统痕迹命令
# 登录用户1分钟 5分钟 15分钟前的平均负载
# cpu/内存 70/90 原则
w
# 单核超过1就是高负载
# 查看用户 简单
who
# 查看所有登录过的用户
last
# 没登录过的也显示
# 系统用户不能登录也不能删
lastlog
# 错误登录日志
lastb
挂载命令
# 设备文件和空目录连接的过程为挂载
# 查询系统中已有挂载设备
# swap不需要挂载点故看不到
mount
# 创建挂载目录
mkdir /mnt/cdrom
# 查看光盘设备
ll /dev/sr0 /dev/cdrom
# 推荐挂载源文件
# vmware需要选中已连接
mount /dev/sr0 /mnt/cdrom
# 已连接状态不能直接修改iso文件
# 卸载
umount /mnt/cdrom

相关文章

网友评论

      本文标题:Linux基础

      本文链接:https://www.haomeiwen.com/subject/toynmktx.html