linux-1

# 1、Linux系统简介与服务器的硬件组成
    
## Linux系统
    Linux 是一种自由的开源的类Unix系统。有许多版本,但都使用了同一个内核。Linux可以安装在各种计算机硬件设备中,
    从手机、平板电脑、路由器和游戏控制台到台式计算机、大型计算机和超级计算机等。
## Linux系统的分支
    redhat 有技术支持  
    centos 与redhat差不多,centos免费,redhat收费的,
    fedora 快速 稳定 强大,redhat的桌面版
    ubuntu 开发 linux入门 桌面级操作系统
    kai linux 做渗透测试的
## Linux系统的特点
    window 系统 简单,合适大部分人群,适合办公
    unix 银行用的比较多
    linux 服务器比较多
    特点:
        模块化,
        源码公开,
        广泛的硬件支持,各种平台,几乎可以运行在各种主流处理器
        安全性和可靠性
        优秀的开发工具
        网络支持文件支持
        可以与unix完全兼容
## Linux服务器的硬件组成
        服务器的组成:
            中央处理器cpu 有台式机cpu和服务器的cpu
            服务器cpu常年连续工作,一个服务器可以有多个cpu,台式机cpu是72小时工作,不能支持多个cpu
            内存 
            芯片组 北桥芯片和南桥芯片 北桥芯片 是对cpu类型,主频内存 pcie和显卡的管理,南桥芯片是
            是对键盘控制器、rtc实时时钟控制器等的管理。
            I/O总线
            I/O设备
            电源
            机箱
            相关软件
## Linux的安装和部署
        Linux中分区,没有cde盘,都是文件
        简单的命令
        uname -r 看内核
        uname -a 看所有信息
        3.10.0-693.11.1.el7.x86_64 #1 SMP 
        主次  修         企业          对称多处理器

# 2、Linux控制台的使用和shell命令的执行

## Linux控制台的使用
    桌面控制台
        x-window
    字符控制台
        默认有6个字符控制,独立运行,互不影响,多用户,多任务
        二者的相互切换 ctrl+alt+f1进入字符界面 字符切换到图形界面是alt+f1
        tty终端默认开启6个,可以有更多。
        pty终端 叫虚拟终端
        pts终端 ptmx终端 是pty的实现的方式
        ctrl+shift+T 开启多个终端,这个叫伪终端 通过alt+数字键切换
        who am i 命令可以查看哪个用户在什么时候登录了哪个终端
        dev 目录下存放的是硬件的设备,硬盘 软盘 光驱 cpu u盘 等设备文件
        
## Linux shell命令的执行
    什么是shell
    shell 不只是命令语言,也是程序设计语言,可以交互式的解析用户输入的命令
    [root@localhost ~]# root 是用户名 localhost 是来源地址 主机名称,
    查看主机名称可以直接打hostname ~ 代表root目录    #代表root管理员 $是普通管理员
    执行方式有两种:
    交互式:解释执行用户的命令,用户输入一条,shell执行一条
    批处理:用户事先写一个shell脚本,有很多条命令,让shell一次执行完毕。
    shell是脚本语言,需要解释器,常用的解释器有 bash sh ash csh ksh
    
    常用的shell解释器 cat /etc/shells
    /bin/sh    
    /bin/bash
    /sbin/nologin 禁止登录
    /usr/bin/sh
    /usr/bin/bash
    /usr/sbin/nologin
    /bin/tcsh
    /bin/csh
    shell命令的格式
    命令字                  【选项】               【参数】
    具体执行的命令            匹配的条件             命令处理的对象
    
    pwd 查看当前的位置
    cd 切换目录 
    ls 显示信息 -l 显示详细信息 -a显示隐藏文件 以 .为开头 -d 查看目录
    cat 查看文件

# 3、Linux系统维护管理命令

## date和clear 命令    
    只用root用户才能显示和设置时间    ,普通用户只能显示时间
    date 直接使用 可以查看时间 忘了 可以 用date --help
    date "+now time is:%Y-%m-%d:%H:%M:%S"     
    date -s 2017-12-02
    clear 清屏
## who命令
    who -【选项】用户
        -r 所处运行级别
        -buT 用户名 所连接的终端
## w命令
    显示登录系统的用户信息
## man命令
    man ls 显示帮助信息
## uname命令
    uname -a 当前系统信息 -n 主机名 -r 操作系统内核
## uptime命令
    用户输出系统任务队列的信息
## last命令
    列出过去登录过系统的所有用户信息
## dmsg命令
    显示开机信息
## free命令    
    显示内存信息
    swap 虚拟分区,当系统内存不够的时候 swap会拿出一部分空间,防止系统崩溃

# 4、Linux的文本编辑器
    vi编辑器, 是unix和类unix下的通用全屏幕纯文本编辑器
    Linux下的vi编辑器叫做vim 是vi的增强版
    有两种模式,一种是编辑模式 一种是命令模式 编辑模式可以完成对文本的编辑,命令模式可以完成对文件的操作命令
    默认情况打开vi是进入的命令模式,从编辑到命令模式的切换可以使用esc 从命令到编辑可以使用
    
    命令模式:输入快捷的命令,删除 复制 粘贴等
    编辑模式:a i o 等等进去编辑模式
    命令行模式:":"进入命令行模式对文件排序 操作 或者读取另外一些文件
    ~~~
    vim /etc/text.txt 
    命令行模式 w保存 wq 保存并退出
    
    快捷键和基本的操作
    进入编辑模式 a A i I o 
    a 在光标之后插入 A 在行尾插入
    i 在光标之前插入 I 在行首插入
    o 下一行插入     O 在上一行进行插入
    x 删除          X向前删除
    u 撤销
    
    行操作:
    home或^进入行首
    end或$  进入行尾
    删除行 dd  删除当前行 
          2dd 删除当前行和下一行 数字为需要删除的行数 
          d+G 删除后边所有文件
    复制行 yy 复制当前行  p 是粘贴
          2yy 复制当前行和下一行 数字为需要复制的行数
     

    v模式 命令模式下ctrl+v 进入  批量对每行进行操作
          按上下选择行,按I进入编辑模式,在首行添加后,每行都会添加
          同上,删除时候,选中 按d进行删除
    命令行模式
    :w保存
    :q不修改退出
    :q!修改了,不保存强退
    :wq 保存退出
    :wq!强制保存退出
    :!ifconfig 调用系统命令
    :!+命令
    替换
    % 代表所有内容 s 代表替换 旧的内容 新的内容
    默认是每一行第一个符合要求的单词 全部替换是 /g
    定位
    gg定位到行首 G最后行的行首
    快速定位 3G 5G 3gg
    
# 5、Linux的远程连接
    SecureCRT 上传文件rz 下载文件 sz
# 6、Linux的硬件资源管理和外设的使用
## Linux硬件的资源管理和信息
    PCI设备 显卡 网卡 声卡 
    网卡命令相当重要 
    
    lspci命令 显示所有pci设备信息
    dmesg |grep vga 管道过滤命令 前边的输出是后边的输入 只显示vga相关的
    lspci | grep -i eth 查看网卡命令
    

    cpu的信息
    用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。
    ls /proc/
    cat /proc/cpuinfo查看cpu信息
    cat /proc/cpuinfo |grep "physical id"
    

    内存
    cat /proc/meminfo
    free -m
    磁盘分区信息
    fdisk
    fdisk -l
    df -h 查看
    dev 目录下放的是设备文件
    /dev/sda1   *        2048      616447      307200   83  Linux
    /dev/sda2          616448     4812799     2098176   82  Linux swap / Solaris
    /dev/sda3         4812800   104857599    50022400   83  Linux
    sd 是硬盘 a是第一块硬盘 1是第一块主分区
    
## Linux外设设备的使用
    在Linux系统中,硬件设备都以文件形式存在 不同的硬件设备具有不同的文件类型
    设备文件在 /dev下 主设备号+次设备号的形式存在
    外设设备,软盘 u盘 光驱,都需要挂载才能使用

    设备与文件对应表    
    设备名称             文件类型                文件
    u盘                    scsi                sdax x代表第几个分区
    光驱                 ide                 hdx
    光驱                    scsi                srx
    磁带                 scsi                stx
    
    常见的文件系统
    文件系统类型            备注
    msdos                dos 文件系统类型 windows
    vfat                长文件名dos系统  u盘
    iso9660                光盘格式系统文件类型
    etx2/etx3/etx4        Linux 主流系统文件类型
    xfs                    Linux 高性能日志文件系统类型

##    文件挂载
    单一文件不应该重复挂载到不同的挂载点
    一个挂载点不应该挂载多个设备
    挂载点目录理论上应该是一个空目录
    
    挂载命令是 mount命令挂载硬件设备
    挂载步骤,将设备连接到服务器,用命令挂载,用df验证
    mount /dev/sr0 /mnt
    挂载需要一个目录
    卸载
    umount /mnt  umount /sr0
    
# 7、Linux的运行机制


##    系统的运行级别 以及级别的切换方式
    查看运行级别 ls /etc/rc*
    一共有6个运行级别 0是关机 1是但用户 2是无网络多用户 3是有网络多用户 4保留,未使用 
    5是有网络支持 有x-window支持的多用户模式 6重启
    切换运行级别 init  查看运行级别 runlevel
    ulti-user.target: analogous to runlevel 3
    graphical.target: analogous to runlevel 5
    systemctl get-default 查看默认运行级别
    systemctl set-default TARGET.target 设置默认运行级别
    systemctl isolate runleve3 切换运行级别
    
    关机命令
    shutdown 可以安全关闭系统
    
# 7、Linux的用户管理

## 用户账号分类
    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
    用户账号一方面可以帮助管理员对使用系统的用户进行跟踪,并控制他们对于资源系统的访问;另一方面也可以帮助用户组织文件,并提供安全保护。
    每个账号都有各自唯一的用户名和口令。
    输入正确的用户名和口令后就可以进入自己的系统和自己的主目录。
    
    超级用户 root     
    本地用户    由管理员创建,权限受到一定限制,在自己的宿主目录权限是完整的
    系统用户 一般是不会登录系统的,用于维护系统的运行
    
    每个用户都有一个相对应的密码文件 账号和密码放在不同的文件中 账号放在 etc/passwd  密码放在 etc/shadow
    
    用户的添加
    useradd study 用户名
    -d 目录 用户创建时候的主目录
    -M 选项 不创建用户的宿主目录 伪用户
    -g 用户组 指定用户所属的用户组 创建完一个用户后 会有一个和用户名一样的基本组
    -G 用户组 用户组指定用户所属的附加组
    -s shell文件 指定用户登录的shell
    -u 用户号 指定用户登录的用户号
    
    字段说明
    study:x:1001:1001::/home/study:/bin/bash
    用户名:占位符:uid:gid:用户描述:用户主目录(登录后默认所处的目录):登录后使用的shell
    uid系统的标识号 每个用户都有uid 通常是0-65535 0是超级用户 1-99系统保留 
    gid是组id
    添加一个用户 主目录是opt/sam  shell是bin下的sh
    useradd -d /opt/sam -s /bin/sh sam
    查看是否添加成功
    tail -1 /etc/passwd
    伪用户 nobody
    是虚拟用户 不能登录系统,他们的存在主要是方便系统管理。
    id 用户名 可以看用户 uid
    id sam 
    uid=1002(sam) gid=1002(sam) groups=1002(sam)
    添加一个用户 uid 2010 初始组root 附加组ftp
    useradd -u 2010 -g root -G ftp test
    useradd -g root -M -d /var/www/html -s /sbin/nologin caiwu
    echo 1234 |  passwd --stdin caiwu  创建一个财务,属于root组,不创建宿主目录,指定目录未/www/html 不能登录系统
    用户的删除
    userdel 常用选项-r 把宿主目录一起删除,不加的话只删除账号
    删除文件 rm -fr 文件名
    修改用户信息
    usermod 常用选项与useradd中一样的    
    usermod -u 2020 -s sbin/nologin study 修改uid shell
    usermod -d /opt/sam study 修改宿主目录
##  用户密码的管理
    passwd 给用户设置密码 passwd study 就是给study用户设置密码
    改变一个目录的属主和属组 chown study:study sam/ 前边是属主后边是属组 最后是目录
    将用户模板拷贝到这个目录

    用户模板 在etc/skel下 隐藏
    拷贝文件 cp /etc/skel/.bash* ./
    拷贝目录 cp -rf /etc/skel/.mozilla* ./    
    无交互方式设置密码
    echo 123456 | passwd --stdin  echo是输出一个数据

##  用户批量添加
    不用脚本的方式
    根据etc下的passwd 复制一行,然后创建一个文件addusers.txt

    haoyp:x:1000:1000:haoyp:/home/haoyp:/bin/bash
    按照格式写入多个用户 每个用户uid不能一样,宿主目录不能一样
    然后执行 newusers <addusers.txt

    设置密码
    先取消shadow  passwd功能 pwunconv
    写一个密码文件 如用户一样passwd.txt
    chpasswd<passwd.txt
    pwconv
    

原文地址:https://www.cnblogs.com/haoyp/p/9145269.html