美文网首页
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