Linux基础用法(超全面,超详细,收藏这一篇就够了)

Linux系统基础知识

  • 1.操作系统简介
  • 2.服务器的分类
  • 3.系统安装
  • 4.连接操作系统
  • 5.配置时区语言
  • 6.文件基本操作
  • 7. 用户和组管理
  • 8. 文件权限管理
  • 9. 配置本地存储

1.操作系统简介

什么是UNIX?

  • UNIX是由OPEN GROUP管理的一个商标,它指的是一个遵循特定规范的计算机操作系统
  • 这个规范称为单一UNIX规范(The Single UNIX Specification)
  • UNIX的源代码属于SCO公司

类UNIX系统

  • 多数为商用,如SCO的Unixware、IBM的AIX、HP的HP-UX和Sun的Solaris
  • 免费的有FreeBSD和Linux

认识Linux

  • 什么是Free Software?
  • Shareware/Freeware
  • 不提供Source Code
  • 无法让使用者自由更改或散播
  • 什么是 自由软件Opensource?
  • Freedom(自由)/Open(开放)
  • Source Code必须公开
  • 任何人都可以自由传播、下载、使用或改写

什么是Linux

  • 是一个类UNIX内核的可以自由发布的实现版本,是一个操作系统的底层核心
  • 可以获得内核源代码,编译并安装,然后获得并安装许多其他自由发布的软件,从而创建一个完整的Linux,通常称为Linux系统
  • Linux发行版

发行版简介

  • Linux操作系统(kernel+ultiliteies):专家才会用
  • Linux发行版(Distribution):整合更多配套软件,普通用户也能用

LINUX源起

  • 1991 年 8 月芬兰的一个学生Linus Torvalds在comp.os.minix 新闻组贴上了以下这段话:

「你好,所有使用 minix 的人 -我正在为386 ( 486 ) AT 做一個免费的操作系統 ( 只是为了爱好 ),不会像 GNU 那样很大很专业。」

LINUX源起

  • Linus Torvalds 林纳斯·托瓦兹 (Linux内核 和 Git创始人)
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第1张图片
    LINUX源起
  • 1990年秋,Linus修读Unix课程,基于minix编写仿真程序
  • 1991年10月发布linux0.02版本
  • 1993年发布linux0.99版本
  • 1994年3月发布linux1.0版本 • 1994年加入GNU组织
    https://www.kernel.org

GNU计划

  • 1983 年 Richard Stallman(自由软件业的精神教父) 创办 GNU(GNU’s not Unix)计划
  • 开始于1984年,旨在发展一个类-Unix 且为 自由软件 的完整操作系统
    http://www.gnu.org

GNU计划

  • Richard Stallman 理查德·斯托曼
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第2张图片
    自由软件基金会
  • GNU计划的赞助单位
  • FSF(Free Software Fundation)提倡免费软件
  • FSF自由使用权的三個意义:
  • 可自由复制GNU的软件
  • 可自由修改源代码
  • 可自由散布修改过的源代码,但不得收取任何版权费用
    https://www.fsf.org

GNU General Public License

  • 大众公有版权/通用公共版权
  • 官方翻译:自由文件许可
  • Copyleft(是copyright的反话,就是防止有人给自由软件的使用加上限制)
    https://www.gnu.org/licenses/gpl-3.0.html

在GPL条款下发布的主要GNU项目软件

  • GCC
  • G++
  • GDB
  • GNU make
  • Bash • GNU Emacs
    https://directory.fsf.org/wiki/Main_Page

GNU与Linux

• GNU
• 仍自行发展Hurd Kernel
• 开发许多以GPL发行的应用程序与工具程序
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第3张图片
• Linux(Linus’s Unix)
• 由网络上热心的朋友一起发展Linux Kernel
• 采用GNU发展的许多应用程序与工具
• 应该称作GNU/Linux
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第4张图片
Linux发行版

  • Redhat
  • Fedora
  • SUSE
  • Debian
  • Ubuntu
  • Centos
  • Kylin
  • UOS
    https://www.linux.org/pages/download/
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第5张图片
    国产操作系统
  • 统信UOS • 麒麟软件 中标麒麟kylin 银河麒麟neokylin
  • 深度deepin
  • 中科红旗Asianux
  • 起点操作系统StartOS
  • 中兴新支点NewStart

2.服务器的分类

计算机体系结构

  • 冯·诺依曼 体系结构
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第6张图片
    服务器
  • 服务器 Server
  • 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:cpu、硬盘、内存,系统、系统总线等。
  • 冯·诺依曼体系结构

机箱外观分类

  • 塔式服务器
  • 机架服务器
  • 刀片服务器

Linux基础用法(超全面,超详细,收藏这一篇就够了)_第7张图片
大小类型分类

  • 微型机
  • 小型机
  • 大型机
  • 超算
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第8张图片
    体系架构分类
  • CISC服务器(Complex Instruction Set Computer,复杂指令集)
  • RISC服务器(Reduced Instruction Set Computing,精简指令集)
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第9张图片
    业务类型分类
  • 数据库服务器
  • 缓存服务器
  • 中间件服务器
  • 应用服务器
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第10张图片
    虚拟化分类
  • 物理机 (没有虚拟化的服务器)
  • 虚拟机 (一般以VMware虚拟化为主虚拟出的服务器)
  • 云主机 (公有云、私有云等云平台虚拟化出来的服务器)

公有云:亚马逊、微软云、阿里云、腾讯云、华为云私有云:政务云、中原云、一朵云

业务相关

  • 私有云为主,目前南方沿海省份信息化建设比较发达,政府都会有自己的私有云平台,一般叫做政务云。
  • 政务云,政务外网根据网络隔离策略划分分为 政务外网公有云和 政务外网专有云
  • 业务内网,也称国土内网,局域网
  • 互联网,常规意义上的互联网

3.系统安装

Linux系统安装
1、 安装模式:文本界面、图形界面
2、 分区规划:/boot、/home、swap、/
3、 软件包选择
4、 第三方驱动加载

安装模式

  • 文本模式:

    最小化安装,安装界面不直观,磁盘分区需要纯命令操作,安装速度快

  • 图形模式:

    用于高级定制,选择安装包,使用鼠标操作,安装过程可以选择中文,界面友好美观,磁盘分区工具简单易用

文本模式:
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第11张图片

欢迎界面
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第12张图片
语言
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第13张图片
参数设置
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第14张图片
安装过程
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第15张图片
创建用户
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第16张图片
设置root密码
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第17张图片
完成安装
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第18张图片
登录界面
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第19张图片
安装模式

  • 图形界面
    在软件包选择步骤选择桌面安装即可
    GNOME Desktop

图形模式

Linux基础用法(超全面,超详细,收藏这一篇就够了)_第20张图片
登录界面
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第21张图片
登录效果
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第22张图片
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第23张图片

4.连接操作系统

SSH工具

Window下ssh工具
• SecureCRT 商业软件
• Xshell 商业软件 (有家庭校园免费版)
• MobaXterm 商业软件(有家庭免费版)
• Putty 开源软件

Linux下ssh工具
• SecureCRT 商业软件
• Putty 开源软件
• OpenSSH 开源软件(系统自带)

Xshell
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第24张图片
Xshell输入用户名与密码
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第25张图片
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第26张图片
Xshell登录成功
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第27张图片
CRT输入地址
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第28张图片
CRT输入密码
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第29张图片
CRT登录成功
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第30张图片
ssh

  • ssh 远程连接工具
  • 命令格式:
    ssh [options] [arguments]
  • 功能介绍:
    ssh指令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器,实现对服务器的远程管理。
  • 命令示例:
    -p 端口
  • 命令示例:
# ssh [email protected]   以root用户登录192.168.8.129服务器
# ssh -p 64422 [email protected] 以root用户登录192.168.20.88使用64422端口

SFTP工具

windows下sftp工具

  • WinSCP 开源软件
  • Xftp 商业软件 (有家庭校园免费版)
  • FileZilla

WinSCP连接
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第31张图片
WinSCP主机信息Linux基础用法(超全面,超详细,收藏这一篇就够了)_第32张图片
WinSCP登录成功
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第33张图片
WinSCP文件操作
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第34张图片
Xftp连接
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第35张图片
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第36张图片
Shell简介

  • Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
  • shell也被称为LINUX的命令解释器
  • Shell 本身是一个程序。将用户输入的命令行拆解为”命令名“与”参数“。 接着,根据命令名找到对应要执行的程序,对被执行的程序进行初始 化,然后将刚才解析出来的参数传给该程序并执行。
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第37张图片
    • shell是一种高级程序设计语言,提供了变量,函数,条件判断,循环等开发语言的功能。
    • 由于Shell本身是个程序,所以它可以被任何用户自己开发的各种
    Shell所代替
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第38张图片
    查询shell
  • 查询默认shell
  • echo ${SHELL}
  • env | grep SHELL
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第39张图片
    退出shell
  • exit 退出当前shell
  • 功能介绍:
    退出当前shell,在shell脚本中可以终止当前脚本执行。
  • 命令格式: exit
  • 命令示例:
    exit
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第40张图片
    开机关机
  • 开机方式:按电源键,谁都会。服务器可以通过IMPI协议远程引导
  • 关机命令:
    shutdown
    -h 关闭计算机
    -r 重启计算机
    shutdown -h now 马上关机
    shutdown -r 10 10分钟后重启
    开机关机
  • 关机命令:
    poweroff halt
  • 重启命令:
    reboot
  • 重启快捷键:
    Ctrl+Alt+Del
    建议系统安装完成禁用,以免误操作导致重启
    关机重启
  • systemctl
    systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl 。
  • systemctl poweroff 关机
  • systemctl reboot 重启
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第41张图片

5.配置时区语言

时间配置

  • timedatectl 配置时间
  • 命令格式:
    timedatectl [options] [command]
  • 功能介绍:查询和更改系统时钟和设置
    status 显示时区设置 set-time 设置时间 set-timezone 设置时区 list-timezones 列出时区
  • 命令示例:
# timedatectl status   显示时间时区配置
# timedatectl set-time  18:30:30  设置时间为18:30:30
# timedatectl list-timezones     列出所有可用时区
# timedatectl set-timezone Asia/Shanghai    设置时区为Asia/Shanghai
  • date 查询时间
  • 命令格式:
    date [options] [command]
  • 功能介绍:查询和配置系统语言和键盘布局 • 命令示例:
# date   显示时间
# date +"%Y-%m-%d %H:%M"  显示格式为年月日以及时间
[root@localhost ~]# date -s '2000-11-21 00:00:00'
20001121日 星期二 00:00:00 CST
[root@localhost ~]# date
20001121日 星期二 00:00:13 CST
[root@localhost ~]# 

语言配置

  • localectl 配置语言及键盘
  • 命令格式:
    localectl [options] [command]
  • 功能介绍:查询和配置系统语言和键盘布局
    status 显示设置 set-locale 设置语言 list-locales 显示语言 set-keymap 设置键盘布局 list-keymaps 列式键盘布局
  • 命令示例:
# localectl status   显示语言键盘配置
# localectl set-locale LANG=en_US.UTF-8  设置语言为en_US.UTF-8 
# localectl list-locales    列出语言
# localectl list-keymaps    列出键盘布局
# localectl set-keymap us us    设置键盘布局为字符模式下us图形模式下us

主机名配置
• hostnamectl 配置主机名
• 命令格式: hostnamectl [options] [command]
• 功能介绍:查询和配置主机名
status 显示设置 set-hostname 设置主机名
• 命令示例:

# hostnamectl status   显示主机名
# hostnamectl set-hostname training.beyonds.info  设置主机名为training.beyonds.info
[root@master ~]# hostnamectl set-hostname localhost   设置主机吗为localhost
[root@master ~]# bash
[root@localhost ~]# 

6.文件基本操作

列出文件

  • ls 列出文件
  • 命令格式:
    ls [options] [FILE]
  • 功能介绍:列出指定目录下的文件
    -l 列表显示 -a显示所有包含隐藏
    -h显示大小 -t按时间排序
  • 命令示例:
# ls -a   列出所有文件
# ls -t   列出文件按时间排序
# ls -alh   列出所有文件显示大小按时间排序

切换目录

  • cd 切换目录
  • 命令格式:
    cd [DIR]
  • 功能介绍:切换到指定的工作目录 • 命令示例:
# cd /mnt   切换到/mnt目录
# cd –   切换到上次所在目录
# cd .. 返回上一级目录
# cd ../../../home   切换到相对目录home
# cd  $ORACLE_HOME   切换到ORACLE_HOME变量值目录
# cd ~   切换到用户主目录

创建文件
• touch 文件创建命令
• 命令格式:
touch [options] [arguments]
• 功能介绍:创建新的空文件,也可以用来改变文件的时间属性
-t 更改文件时间属性atime、mtime -r 修改为某个文件的时间
• 命令示例:

# touch newfile   创建一个文件newfile
# touch -t 1005201030 newfile   更改newfile时间戳为2010.05.20 10:30
# touch -r word.sql  first.sql   以word.sql的时间为准修改first.sql的时间

创建目录

  • mkdir 创建目录
  • 命令格式:
    mkdir [options] [arguments]
  • 功能介绍:创建新的空目录
    -p 递归创建
    -m 指定权限以数字表示法
  • 命令示例:
# mkdir newdirectory   创建目录newdirectory
# mkdir -p  /tmp/permission/test   递归创建/tmp/permission/test目录
# mkdir -m 700 /tmp/upload   创建/tmp/upload目录并赋予权限700

复制文件

  • cp 文件复制
  • 命令格式:
    cp [options] [arguments]
  • 功能介绍: cp指令用来将一个或多个源文件复制到指定的目标文件或目录。
    -f 强制覆盖已经存在的目标文件 -p 保持源文件所有者、权限信息和时间属性
    -r 对目录进行复制时,递归到所有子目录及文件
  • 命令示例:
# cp  oldfile  newfile   复制oldfile为newfile
# cp -r  /mnt/test  /tmp/test   复制/mnt/test目录到/tmp/test
# cp -a  /data/mysql  /usr/local/mysql   复制/data/mysql目录到/usr/local/mysql保留权限等文件属性

移动文件

  • mv 移动文件或更改文件名
  • 命令格式:
    mv [options] [arguments]
  • 功能介绍: mv指令可以移动文件或为文件改名
    -f 强制不提醒
    -u 目标文件比较旧或者缺失时更新
  • 命令示例:
# mv /root/oldfile /tmp   移动oldfile到/tmp目录
# mv /data /u01   重命名/data为/u01
# mv /etc/hosts /etc/hosts.bak   重命名hosts为hosts.bak

删除文件

• rm 删除文件
• 命令格式:
rm [options] [arguments]
• 功能介绍: rm指令用户删除给定的文件和目录 -f 强制删除,不会有删除文件的信息提示
-r 递归方式删除目录及目录下所有内容
• 命令示例:

# rm testfile   删除testfile文件
# rm -f myfile   删除myfile文件        
# rm -rf /tmp/backup   强制删除/tmp/backup文件

查看文件

  • cat 查看文本文件内容
  • 命令格式:
    cat [options] [FILE]
  • 功能介绍:查看文件内容,针对文本文件
    -n 显示行号
    -b 显示除空格以外的行号
  • 命令示例:
# cat catalina.out   查看catalina.out文件
# cat -n /var/log/messages   查看/var/log/message文件显示行号
# cat -b readme.md   查看readme.md文件显示除空格外的行号
  • more 查看文件内容
  • 命令格式:
    more [options] [FILE]
  • 功能介绍:查看文件内容,针对文本文件
    +num 从第 num 行开始显示
    -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • 命令示例:
# more catalina.out   查看catalina.out文件
# more +100 /var/log/messages   从100行开始查看/var/log/messages文件
# more -s readme.md   合并多行空格为一行查看readme.md文件
  • less 查看文件内容
  • 命令格式:
    less [options] [FILE]
  • 功能介绍:查看文件内容,针对文本文件
    -e 文件结束后自动离开
    -f 强制打开设备或二进制文件
  • 命令示例:
# less catalina.out   查看catalina.out文件内容
# less -e /var/log/messages   查看/var/log/messages文件内容
# less -f sys.dat   强制打开sys.dat二进制文件内容
  • tail 查看文件内容
  • 命令格式:
    tail [options] [FILE]
  • 功能介绍:查看文件内容,针对文本文件
    -n 查看文件n行内容
    -f 持续查看文件最新的内容
  • 命令示例:
# tail catalina.log   查看catalina.log 文件内容
# tail -n 10 /var/log/messages   查看/var/log/messages文件第十行内容
# tail -f /tomcat/logs/catalina.out   查看/tomcat/logs/catalina.out最新的内容

查找内容

  • grep 查找文件内容
  • 命令格式:
    grep [options] [FILE]
  • 功能介绍:查找过滤文件内容,针对文本文件
    -v 反向过滤 -l 列出文件名 -r 递归目录 -i 不区分大小写
  • 命令示例:
# grep beyonds readme.md   查找beyonds字符在文件readme.md中
# grep -v “#” /etc/fstab   查找/etc/fstab文件中不包含#的内容
# grep -rl error /var/log/   查找/var/log目录中包含error的文件并列出文件名
  • find 查找文件
  • 命令格式:
    grep [path] [expression]
  • 功能介绍:查找过滤匹配各种条件的文件
    -name 名称过滤 -perm 权限过滤 -size 大小过滤
    -type 类型过滤 d目录 f文件 -exec 执行命令
  • 命令示例:
# find /var/log -name messages*   查找/var/log目录下所有messges打头的问题
# find /root/ -perm 777   查找/root目录下权限为777的文件
# find /root/ -size +20M   查找/root目录下大小大于20M的文件
# find / -type d -perm 777 -exec chmod 755 {} \;   查找/下权限777的目录并修改权限为755
# find / -user tom +5M -exec cp -a {} /root/findfiles/ \;   查看你tom用户下大于5M的文件并复制到/root/findfiles下

VIM编辑器

  • vim 编辑器
  • 命令格式:
    • vim [options] [arguments]
  • 功能介绍:
    vi是Unix和类Unix操作系统中最通用的纯文本编辑器。Linux中有vi和vim,vim是vi的增强版。
  • 命令示例:
    • #vim /etc/hosts 编辑hosts文件

VIM编辑器

  • vim编辑器有三种模式:

  • 命令模式Command mode

    打开vim编辑器之后默认进入命令模式,按“x”“yy”“p”“r”“R”“gg”“GG”命令模式操作
    
  • 编辑模式Insert mode

    按“A”“a”“O”“o”“I”“i”进入编辑模式操作按“esc”退出编辑模式,进入命      令模式
    
  • 末行模式Last line mode

     按“:wq”“:q!”“:w”“:q”“:help”进入末行模式
    


文件归档

  • tar 文件归档
  • 命令格式
    • tar [options] [arguments]
  • 功能介绍
    • tar指令是linux下的归档工具,可以为文件和目录创建tar格式的打包文件。
    • -c 创建 -x 解压 -f 指定文件 -v 显示过程 -t 列出文件
  • 命令示例:
    • tar -cvf boot.tar /boot 打包/boot生成boot.tar打包
    • tar -tvf boot.tar 列出boot.tar压缩包内容
    • tar -xvf boot.tar 解开boot.tar包到当前目录

文件解压缩

  • 命令格式:
    • tar [options] [arguments]
  • 功能介绍:
    • tar指令支持“gzip”、“bzip2”、“compress”等压缩格式,可以直接使用tar指令打包文件压缩或解压缩。
      -z gzip格式 -j bzip2格式 -J xz格式 -C 指定特定目录
  • 命令示例:
    • tar -zcvf boot.tar.gz /boot 打包/boot目录生成boot.tar.gz压缩包
    • tar -zxvf boot.tar.gz 解压boot.tar.gz到当前目录
    • tar -jcvf boot.tar.bz /boot 打包/boot目录生成boot.tar.gz压缩包
    • tar -jxvf boot.tar.bz 解压boot.tar.gz到当前目录
    • tar -Jcvf boot.tar.xz /boot 打包/boot目录生成boot.tar.xz压缩包
    • tar -Jxvf boot.tar.xz 解压boot.tar.xz到当前目录

文件解压缩

  • zip/unzip 压缩解压缩
  • 命令格式:
    • zip/unzip [options] [arguments]
  • 功能介绍:
    • zip 打包文件为zip包
    • unzip 解压缩zip包
  • 命令示例:
    • zip images.zip .jpg 打包.jpg生成images.zip压缩包
    • unzip images.zip 解压images.zip到当前目录

解压缩命令

  • gzip/gunzip
  • bzip2/bunzip2
  • compress/uncompress
  • xz
  • rar/unrar

7. 用户和组管理

  • 用户有三类:根用户:root 超级管理员,UID为0 系统用户:bin 系统级用户,UID为1–500 普通用户:centos 普通业务用户,UID大于1000
  • 初始定义文件
    • /etc/login.defs
[root@localhost ~]# cat /etc/login.defs 
#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#

# *REQUIRED*
#   Directory where mailboxes reside, _or_ name of file, relative to the
#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
#   QMAIL_DIR is for Qmail
#
#QMAIL_DIR	Maildir
MAIL_DIR	/var/spool/mail
#MAIL_FILE	.mail

# Password aging controls:
#
#	PASS_MAX_DAYS	Maximum number of days a password may be used.
#	PASS_MIN_DAYS	Minimum number of days allowed between password changes.
#	PASS_MIN_LEN	Minimum acceptable password length.
#	PASS_WARN_AGE	Number of days warning given before a password expires.
#
PASS_MAX_DAYS	99999
PASS_MIN_DAYS	0
PASS_MIN_LEN	5
PASS_WARN_AGE	7

#
# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000
UID_MAX                 60000
# System accounts
SYS_UID_MIN               201
SYS_UID_MAX               999

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN                  1000
GID_MAX                 60000
# System accounts
SYS_GID_MIN               201
SYS_GID_MAX               999

#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD	/usr/sbin/userdel_local

#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME	yes

# The permission mask is initialized to this value. If not specified, 
# the permission mask will be initialized to 022.
UMASK           077

# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes

# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512

[root@localhost ~]# 

  • 用户账号文件:
    • /etc/passwd
    • /etc/shadow
  • passwd文件格式
 root :x:0:0:root:/root:/bin/bash 
 beyonds:x:1000:1001::/home/beyonds:/bin/bash
  • passwd字段说明
beyonds:   x      :  1000 : 1001 :                   : /home/beyonds  :  /bin/bash
用户名  :密码 :UID  :GID :描述详细 :主目录              :默认shell

用户和组

  • 用户组文件:
    • /etc/group
    • /etc/gshadow
group文件格式 root:x:0:
beyonds:x:1001:
  • group格式说明 beyonds :
x       : 1001  :
组名       :组密码  :GID :组中的用户

添加用户

  • useradd 添加用户
  • 命令格式:
    • useradd [options] [arguments]
  • 功能介绍:用来创建账号
    • -u 指定UID -g 指定默认组 -G 指定附加组
    • -m 创建主目录 -M 不创建主目录 -s 指定默认shell
  • 命令示例:
    • useradd beyonds 创建beyonds用户
    • useradd -m flysea 创建flysea用户并创建主目录
    • useradd -s /sbin/nologin centos 创建centos用户默认shell为/sbin/nologin
    • useradd -u 1101 -g oinstall -G dba,oper oracle 创建oracle用户UID为1101且初始组为oinstall附件
      组为dba、oper

用户密码

  • passwd 设置密码
  • 命令格式:
    • passwd [options] [arguments]
  • 功能介绍:用来设置密码
    • -l 锁定用户 -u 解锁用户
    • –stdin 从标准输入读取token
  • 命令示例:
    • passwd beyonds 设置beyonds密码
    • passwd -l flysea 锁定flysea用户
    • passwd -u centos 解锁centos用户
    • echo beyonds.info | passwd --stdin beyonds 设置beyonds用户密码为beyonds.info

用户管理

  • usermod 设置密码
  • 命令格式:
    • usermod [options] [arguments]
  • 功能介绍:用来管理用户
    • -l 修改用户名 -L 锁定用户 -U 解锁用户
    • -u 修改UID -s 修改用户登录shell
  • 命令示例:
    • usermod -L beyonds 锁定beyonds用户
    • usermod -U beyonds 解锁beyonds用户
    • usermod -l test beyonds 修改beyonds用户为test
    • usermod -s /sbin/nologin beyonds 修改beyonds用户shell为/sbin/nologin

删除用户

  • userdel 设置密码
  • 命令格式:
    • userdel [options] [arguments]
  • 功能介绍:用来删除用户
    • -f 强制删除
    • -r 删除用户主目录
  • 命令示例:
    • userdel beyonds 删除beyonds用户
    • userdel -f flysea 删除flysea用户
    • userdel -r centos 删除centos用户及其主目录

用户环境变量

  • 配置用户环境变量
    • /home/username/.bash_profile
    • /home/username/.bashrc

添加用户组

  • groupadd 添加用户组
  • 命令格式:
    • groupadd [options] [arguments]
  • 功能介绍:用来添加用户组
    • -g 指定GID -r 创建系统用户组
  • 命令示例:
    • groupadd oinstall 添加oinstall用户组
    • groupadd -g 1031 dba 添加dba用户组GID为1031

用户组管理

  • groupmod 添加用户组
  • 命令格式:
    • groupmod [options] [arguments]
  • 功能介绍:用来管理用户组
    • -g 指定新的GID -n 修改新的用户组名称
  • 命令示例:
    • groupmod -g 2000 beyonds 修改beyonds用户组GID为2000
    • groupmod -n flysea beyonds 修改beyonds用户组名称为flysea

用户组管理

  • groupmems 添加用户组
  • 命令格式:
    • groupmems [options] [arguments]
  • 功能介绍:用来管理用户组
    • -a 添加用户到用户组 -d 删除用户从用户组
    • -l 列出用户组中的用户
  • 命令示例:
    • groupmems -g test -a beyonds 添加beyonds用户到test用户组
    • groupmems -g test -d beyonds 删除beyonds用户从test用户组
    • groupmems -g mail -l 列出mail用户组的用户

删除用户组

  • groupdel 删除用户组
  • 命令格式:
    • groupdel [options] [arguments]
  • 功能介绍:用来删除用户组
  • 命令示例:
    • groupdel beyonds 删除beyonds用户组
    • groupdel oinstall 删除oinstall用户组

切换用户

  • su 切换用户
  • 命令格式:
    • su [options] [arguments]
  • 功能介绍:切换用户 - 生效用户环境变量
  • 命令示例:
    • su beyonds 切换beyonds用户
    • su - oracle 切换oracle用户

用户提权

  • sudo 用户提权
  • 命令格式:
    • sudo [options] [arguments]
  • 功能介绍:用户提权执行命令
    • -l 查看用户sudo的权限
  • 命令示例:
    • sudo mkdir /mnt/test 提权创建/mnt/test目录
    • sudo systemctl restart sshd 提权执行sshd重启

8. 文件权限管理

权限简介

  • 何为权限权力的限制
    • 在Linux系统中,所有的文件和目录都有权限
    • 确定谁能够通过何种方式对文件或目录进行何种操作
    • 有严格的权限等级,如果权限过高导致误操作会增加服务器的风险各种权限给用户、服务等分配是否合理影响服务器安全
  • 权限限制的是普通用户

查看权限

  • 查看权限
    • ls -l /ll 查看文件权限
[root@master ~]# ls -l
总用量 104
drwxr-xr-x. 2 root root     6 1015 15:58 公共
drwxr-xr-x. 2 root root     6 1015 15:58 模板
drwxr-xr-x. 2 root root     6 1015 15:58 视频
drwxr-xr-x. 2 root root     6 1015 15:58 图片
drwxr-xr-x. 2 root root     6 1015 15:58 文档
drwxr-xr-x. 2 root root     6 1015 15:58 下载
drwxr-xr-x. 2 root root     6 1015 15:58 音乐
drwxr-xr-x. 2 root root     6 1015 15:58 桌面
-rw-------. 1 root root  1220 1015 15:55 anaconda-ks.cfg
-rw-r--r--. 1 root root  1375 1015 15:57 initial-setup-ks.cfg
-rw-r--r--  1 root root 94239 1125 11:05 test
[root@master ~]# ll
总用量 104
drwxr-xr-x. 2 root root     6 1015 15:58 公共
drwxr-xr-x. 2 root root     6 1015 15:58 模板
drwxr-xr-x. 2 root root     6 1015 15:58 视频
drwxr-xr-x. 2 root root     6 1015 15:58 图片
drwxr-xr-x. 2 root root     6 1015 15:58 文档
drwxr-xr-x. 2 root root     6 1015 15:58 下载
drwxr-xr-x. 2 root root     6 1015 15:58 音乐
drwxr-xr-x. 2 root root     6 1015 15:58 桌面
-rw-------. 1 root root  1220 1015 15:55 anaconda-ks.cfg
-rw-r--r--. 1 root root  1375 1015 15:57 initial-setup-ks.cfg
-rw-r--r--  1 root root 94239 1125 11:05 test
[root@master ~]# 

  • 权限说明
    文件列表信息分为:文件类型、权限、链接数、所属用户、所属用户组、文件大小、 最后修改时间、文件名
  • 共有7种文件类型: -:普通文件 d:目录文件 l: 软链接(类似windows下的快捷方式) b:块设备文件(例如磁盘设备) p:管道文件
    c:字符设备文件(例如串口设备) s:套接字文件(socket文件)

权限说明

  • 权限两种表示法:
    字符表示法 rwx 数字表示法 421
  • 表示法对照关系:
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第42张图片
    权限说明
  • 权限说明:字符表示法 和 数字表示法 最终表示的文件权限含义

drwxr-xr-x 6 7161 31415 156 May 29 23:22 mysql-utilities-commercial-1.6.5-py2.7
Linux基础用法(超全面,超详细,收藏这一篇就够了)_第43张图片
权限说明

  • 字符表示法:
    • [ugoa] [±=] [rwx] u:文件所属者
    • g:文件所属者所在的组 o:其他用户 a:所有用户
    • +:添加权限
    • -:删除权限 =:等于权限 r:读取权限 w:写入权限 x:执行权限

权限说明

  • 数字表示法:
    • [421]
    • 4:读取
    • 2:写入
    • 1:执行

修改权限

  • chmod 设置权限
  • 命令格式:
    • chmod [options] [arguments]
  • 功能介绍: chmod指令用来改变指定文件的权限,在chmod中权限支持字符表示和数字表示两种
    • -R 递归
  • 命令示例:
    • chmod a+x /root/bin/install.sh 给所有用户赋予/root/bin目录下install.sh脚本的可执行权限
    • chmod -R 711 /root/bin/ 文件所有者rwx权限,文件所有者组x权限,其他x权限
    • chmod 600 /root/.ssh/authorized_keys 修改authorized_keys权限为600
    • chmod a-r authorized_keys && chmod a-w authorized_keys && chmod a-x authorized_keys && chmod u+r authorized_keys && chmod u+w authorized_keys 修改authorized_keys权限为600
      修改属主
  • chown 修改文件属主
  • 命令格式:
    • chown [options] [arguments]
  • 功能说明:修改文件属主或者属组
    • -R 递归
  • 命令示例:
    • chown root /root/install.sh 修改/root/install.sh文件属主为root用户
    • chown root:beyonds /root/install.sh 修改/root/install.sh文件属主为root属组为beyonds用户
    • chown -R mysql:mysql /usr/local/mysql 修改/usr/local/mysql 目录下的所有文件属主属组为mysql

修改属组

  • chgrp 修改文件属组
  • 命令格式:
    • chgrp [options] [arguments]
  • 功能说明:修改文件属组
    • -R 递归
  • 命令示例:
    • chgrp root /root/install.sh 修改/root/install.sh文件属组为root组
    • chgrp beyonds /root/install.sh 修改/root/install.sh文件属组为beyonds组
    • chgrp -R mysql /usr/local/mysql 修改/usr/local/mysql目录下的所有文件属组为mysql组

默认权限

  • 设置文件创建默认权限
  • 配置范围
    • 系统级 /etc/bashrc 用户级 /home/xxx/.bashrc
  • 默认管理员umask 0022 普通用户0002
    Linux基础用法(超全面,超详细,收藏这一篇就够了)_第44张图片
    默认权限
  • umask 设置文件默认创建权限
  • 命令格式:
    • umask [arguments]
  • 功能说明:设置文件默认创建权限 • 命令示例:
    • umask 查询当前umask值
    • umask 0027 修改umask值为0027
    • umask 0027 && mkdir umask_d1 && touch umask_f1 修改umask查看默认创建文件权限
    • su - beyonds && umask 0027 && mkdir umask_d1 && touch umask_f1 查看默认文件创建权限

ACL介绍

  • ACL Access Control List 访问控制列表
  • 默认情况下,文件权限通过属主属组及其他用户三个方面进行控制,除此之外,更细粒度的控制可以使用
  • ACL进行细粒度权限分配且不影响属主属组权限变更。
  • 两种ACL:当前ACL 默认ACL
  • 当前ACL可以设置到文件或者目录
  • 默认ACL只能设置到目录从而去做继承
  • ACL可以设置为每用户、每组、用户不在属主和属组中的情况

查询ACL

  • getfacl 查询ACL
  • 命令格式:
    • getfacl [options] [arguments]
  • 功能说明:
    • 查询acl
    • -a 列出acl -d 显示默认acl
    • -R 递归
  • 命令示例:
    • getfacl -a /etc/hosts 查询/etc/hosts的acl
    • getfacl -a /mnt/acl_dir 查询/mnt/acl_dir目录的acl
    • getfacl -R /mnt/acl_dir 递归查询/mnt/acl_dir目的的acl

配置ACL

  • setfacl 配置ACL
  • 命令格式:
    • setfacl [options] [arguments]
  • 功能说明:
    配置acl
    • -m 修改acl -x 删除acl -k 删除默认acl -b 删除所有acl
    • -R 递归
  • 命令示例:
    • setfacl -m u:beyonds:rwx /etc/hosts 设置/etc/hosts的acl为beyonds用户权限rwx
    • setfacl -k /mnt/acl_dir 删除/mnt/acl_dir目录的默认acl
    • setfacl -x u:beyonds /mnt/acl_dir 删除/mnt/acl_dir目录的beyonds的acl
    • setfacl -b /mnt/acl_dir 删除/mnt/acl_dir目的的acl

9. 配置本地存储

分区表

  • MBR
    MBR(Master Boot Record) 应用于绝大多数使用BIOS引导的PC设备;很多Server服务器即支持
    BIOS也支持EFI的引导方式。
    • 优点:
      MBR支持32bit和64bit系统
    • 缺点:
      MBR支持的分区数量有限制
      MBR只支持不超过2TB的硬盘,超过2TB的硬盘只能使用2TB的空间(但是有第三方解决方法),因为MBR的寻址空间只有32bit长

分区表

  • GPT(GUID Parition Table) 新一代分区表类型支持超过2TB的磁盘
    GPT有64bit寻址空间,而MBR对硬盘空间地址寻址最多只支持32bit,2的32次方,硬盘空间是以地址方式来被识别的,所以MBR只支持容量为2TB以内的磁盘
    向后兼容MBR,但是底层硬件必须支持UEFI(Intel提出的取代BIOS的新一代的引导系统)才能使用,也就是底层硬件必须使用UEFI
    必须使用64位操作系统,Mac、Linux 、Windows 64位系统都能支持GPT分区格式

磁盘设备

  • 磁盘设备,数据持久化的载体
  • 磁盘设备命名

IDE类型 hda SATA类型 sda 虚拟化 xvda 云平台 vda

  • 磁盘设备在/dev目录下
  • 磁盘设备通常需要进行分区才能使用(RAW除外)
  • 磁盘设备从字母a开始命名
  • 磁盘分区从数字1开始命名

查询磁盘

  • lsblk 查询磁盘
  • 命令格式:
    lsblk [options] [arguments]
  • 功能说明:查询磁盘设备
    -l 列出磁盘 -f 列出文件系统 -a 列出所有设备
  • 命令示例:
    • lsblk -l 列出磁盘设备
    • lsblk -f 列出文件系统
    • lsblk -a 列出所有磁盘设备

查询磁盘

  • df 查询挂载磁盘
  • 命令格式:
    df [options] [arguments]
    • 功能说明:查询挂载磁盘设备
    -h 人类可读方式显示 -i 显示inodes值
  • 命令示例:
    • df -h 查询挂载磁盘设备
    • df -i 查询挂载磁盘设备inodes

挂载磁盘

  • mount 挂载磁盘
  • 命令格式:
    mount [options] [arguments]
  • 功能说明:挂载磁盘设备
    -a 挂载所有磁盘 -t 读写模式挂载
  • 命令示例:
    • mount -a 挂载所有磁盘设备
    • mount /dev/sdb1 /media 挂载/dev/sdb1到/meida目录
      磁盘分区
  • fdisk 磁盘分区
  • 命令格式:
    fdisk [options] [arguments]
  • 功能说明:磁盘设备分区
    -l 列出磁盘分区
  • 命令示例:
    • fdisk -l 列出磁盘分区
    • fdisk /dev/sdb 对磁盘/dev/sdb进行分区操作
      磁盘分区
  • fdisk 磁盘分区
  • 交互式参数:
    p 查看分区 n 新建主分区 d 删除分区 w 写入 q 退出 o 创建新的dos分区表 g 创建新的GPT分区表 l 列出分区类型

你可能感兴趣的:(Linux,linux,unix,服务器)