Linux 基本操作

一、基本命令

所有命令都可以使用--help选项来查看命令帮助

  1. mkdir [路径] // 创建一个目录,不能递归创建
    mkdir -p [路径] // 递归创建,意思就是可以创建一个不存在的目录
  2. cd [路径] // 进入目录
  3. ls -a [路径] // 列出路径的所有文件,包括以.开头的隐藏文件
    ls -l [路径] // 列出路径所有文件,及其权限和所属组,可以简写为“ll”
  4. touch [路径+文件名] // 创建一个文件
  5. cp 源文件路径 目标路径 // 将文件复制到目标路径
  6. mv 源文件路径 目标路径 // 将文件剪切到目标路径,用mv可以实现对文件的重命名,做法:保持源文件路径和目标文件路径相同,仅文件名不同
  7. find [目录] --name [文件名|支持正则表达式]
  8. chown [用户] [文件] // 将文件所有者设置为某个用户
    chown [用户:用户组] [文件] // 将文件所有者设置为某用户,且所属组设置为某用户组
    chown -R [用户:用户组] [路径] // 将某个目录下所有文件设定为指定的的所有者和所属组
  9. chgrp [组名] [文件] // 将文件的所属组设置为指定组
  10. chmod [u/g/o/a] [+/-/=] [r/w/x] 文件名 // 给文件增加权限
    例:chmod o+w file.txt 为其他用户增加写入权限
    chmod [3个八进制数] [文件] // 用八进制形式表示权限

八进制表示形式
4代表r读权限 ,2代表w写权限,1代表x执行权限
一个文件若赋予读和写的权限,则权限值为4+2=6
三个八进制数每个表示的含义:
第一个,表示文件所有者所拥有的权限
第二个,表示文件所属组所拥有的权限
第三个,表示其他用户对该文件的权限
例如:chmod 764 file.txt // 所有者:读/写/执行权限;所属组:读/写权限;其他:读权限。

二、输出重定向

通俗的讲,重定向输出就是把要输出的文件信息写入到一个文件中去,而不是将要输出的文件信息输出到显示屏

  1. 输出覆盖形式:ls /etc > /list.txt
    ls /etc命令的结果写到/list.txt文件中(先清空list.txt文件的内容再写入新的内容)
  2. 输出追加形式:ls /etc >> /list.txt
    ls /etc命令的结果写到/list.txt文件中(将新内容追加到list.txt文件中,不会清除list.txt文件的原有内容)

三、管道

管道是将前一个命令的输出作为后一个命令的输入
命令1 | 命令2 | 命令3 | ......

例如:ls /etc | grep host*
ls /etc命令会列出所有/etc目录下所有文件,这个结果会被grep接收到,grep根据规则host*来筛选以host*开头的文件显示在屏幕上

四、vim编辑器操作

  1. 编辑模式:按i键进入编辑模式,左下角会显示---INSERT或---插入字样,此时键盘输入的所有内容都会被写入到文件中

  2. 命令模式:按ESC键可以退出编辑模式,左下角的---INSERT或---插入会消失,在此模式可以直接输入一个冒号:,然后输入wq可以保存并退出编辑器。

q:退出
w:保存
!:强制
例如:wq保存退出,wq!强制保存退出,q!不保存强制退出

五、RPM和YUM安装软件包

5.1 RPM方式

安装:rpm -ivh [软件包名]
卸载:rpm -e [软件包名]

5.2 YUM源本地配置

  1. 先挂载光盘:mount /dev/sr0 /cdrom
    挂载前需要使虚拟机连接光驱,并把/cdrom目录创建出来。
  2. 编辑并新建一个repo文件
    vim /etc/yum.repos.d/local.repo
    然后加入以下内容
[local]
name=local
baseurl=file:///cdrom
enabled=1
gpgcheck=0
  1. 执行以下命令
    yum clean all 清除缓存
    yum list 建立新的缓存

六、用户和组管理

  1. useradd <用户> // 创建用户
  2. groupadd <群组> // 创建用户组
  3. passwd <用户> // 设置用户密码
  4. usermod -g <群组> <用户> // 修改用户所属的群组。
    usermod -G <群组> <用户> // 将用户从原有群组移入到指定组里,并且用户会从原群组消失
  5. gpasswd -a <用户> <群组> // 把用户添加到群组里,并不会影响用户原所属组,
  6. groups <用户> // 查看用户所在组

七、磁盘管理

使用fdisk命令进行分区管理。

7.1 创建普通分区

使用fdisk /dev/sda命令进入磁盘管理。



上图可以看出,/sda仍有3916-3060=856扇区的空间没有使用,且分区号1和2已经被使用,下面以此磁盘为例,进行剩余扇区进行分区。

fdisk命令选项
  1. 输入命令fdisk /dev/sda进入磁盘管理,输入n添加一个分区。
    添加分区 1
  2. 输入p建立主分区,并设置分区号和分区大小
    添加分区 2
  3. 查看新建立的分区


    查看分区
  4. 保存分区退出fdisk命令
    保存分区
  5. 使用partx -a /dev/sda更新分区表
    更新分区表
  6. 使用mkfs.ext4 /dev/sda3格式化新分区
    格式化分区
  7. 编辑配置文件vim /etc/fstab,把新分区加入到配置文件,开机自动挂载
    自动挂载

7.2 创建交换分区

  1. 输入命令fdisk /dev/sda进入磁盘管理,输入n添加一个分区。

    添加分区 1

  2. MBR分区类型最大支持4个主分区,这一步系统会自动分配分区号为4

    image.png

  3. 查看分区


    image.png
  4. 修改分区类型号


    修改分区类型号 1

    修改分区类型号 2
  5. 保存分区并退出fdisk命令

    保存分区并退出fdisk命令

  6. 刷新分区表


    刷新分区表
  7. 使用swapon -s查看正在使用的交换分区

    查看交换分区

  8. 使用mkswap /dev/sda4格式化新建立的swap分区

    格式化swap分区

  9. 使用swap /dev/sda4挂载swap新分区

    挂载swap新分区

  10. 编辑配置文件vim /etc/fstab,把新的swap分区加入到配置文件,开机自动挂载

    自动挂载

八、rpm和yum安装软件包

8.1 rpm安装方式

命令格式:rpm -ivh <软件包名>
rpm属于手动安装软件包,不会自动安装包的依赖。
下面以安装dhcpd软件包为例:

  1. 将光盘连接到虚拟机


    image.png
  2. 创建一个挂载目录/cdrom

    image.png

  3. 挂载光盘


    image.png
  4. 执行命令:rpm -ivh /cdrom/Packages/dhcp-4.1.1-19.P1.el6.i686.rpm

    image.png

  5. 卸载软件包命令:rpm -e dhcp

    image.png

8.2 yum安装软件包

依旧以安装dhcp为例子

  1. 将光盘连接到虚拟机


    image.png
  2. 创建一个挂载目录/cdrom
    image.png
  3. 挂载光盘


    image.png
  4. 新建一个repo文件
    执行命令:vim /etc/yum.repos.d/local.repo
    加入以下内容:
    image.png
  5. 保存退出后执行两条命令:yum clean allyum list
    yum clean all

    建立缓存:
    yum list
  6. 执行yum安装命令:yum install dhcp
    安装完成

九、配置DHCP服务

  1. 使用yum安装dhcp服务


    安装dhpc
  2. 设置Linux的IP地址:ifconfig eth1 192.168.202.5 netmask 255.255.255.0
    eth1是网卡名字,通过ifconfig命令可以查看网卡名字
    查看网卡名字

注意:IP地址和DHCP配置的网络段相同才能正确启动DHCP服务

  1. 配置dhcp配置文件
    执行命令:vim /etc/dhcp/dhcpd.conf
    配置文件
  2. 启动DHCP服务:service dhcpd start
    启动DHCP服务
  3. 在VMware中设置VMnet8网卡


    虚拟网络编辑器

    更改设置

    取消使用本地DHCP
设置VMnet8自动获取IP
  1. 查看物理机VMnet8获取IP情况


    获取IP地址

十、NFS服务配置

服务端配置

  1. 创建一个共享目录mkdir -p /var/nfs/oshu
    在此目录中新建一个test.txt文件touch /var/nfs/oshu/test.txt
    在NFS配置中将此目录作为共享目录提供给客户端连接使用
  2. 编辑配置文件vim /etc/exports
    添加以下内容:
    image.png

/var/nfs/oshu设置共享目录
192.168.202.0/24本机IP的网络段及掩码
(rw,sync) rw表示客户端有读写权限,sync表示将共享文件存入磁盘,和内存,以提高读写性能

  1. 关闭SELinux和防火墙
    setenforce 0 关闭SELinux
    service iptables stop 关闭防火墙
  2. 重启NFS服务service nfs restart
    重启NFS服务

客户端配置

  1. 测试服务器NFS连通状态showmount -e 192.168.202.129
    测试连通性
  2. 创建一个挂载点mkdir -p /special/oshu
    挂载点就是将服务端的共享目录映射到这个目录下,方便客户端下载共享文件
  3. 修改自动挂载配置vim /etc/auto.master
    加入以下内容:
    设置自动挂载

    这是自动挂载服务的配置文件,会自动将服务以指定配置进行挂载
    /special自动挂载到此目录
    /etc/auto.server 自定义的配置文件,自动挂载服务将会按照此配置文件进行挂载
  4. 编写自定义配置文件/etc/auto.server
    加入以下内容:
    自定义配置文件

    oshu共享目录名字
    -rw 表示具有读写权限
    192.168.202.129:/var/nfs/oshu表示ip地址为192.168.202.129的服务器的共享目录是/var/nfs/oshu
  5. 重启autofs自动挂载服务service autofs restart
    重启autofs服务
  6. 查看挂载到/special的共享目录oshu
    查看共享文件

十一、设置服务开机自动启动

命令格式:
chkconfig [--list][系统服务] 查看服务启动情况
chkconfig [--level <等级代号>][系统服务][on/off]设置服务在某个等级上开机启动或不启动

<等级代号>:0~6,对应着Linux的七个启动等级
最常用就两个3和5:
3:完全多用户模式(纯文本的黑底白字模式)
5:桌面多用户模式(图形界面)

例子:

  • 查看DHCP服务的启动情况chkconfig --list dhcpd

    DHCP启动情况

  • 设置DHCP在3和5启动等级上开机启动
    chkconfig --level 3 dhcpd on
    chkconfig --level 5 dhcpd on
    执行命令后,通过chkconfig --list dhcpd可以看到DHCP启动情况

    设置启动

  • 设置NFS在3和5启动等级上开机启动
    chkconfig --level 3 nfs on
    chkconfig --level 5 nfs on
    查看nfs服务启动情况chkconfig --list nfs

    NFS设置开机启动

注意:启动等级可以一次设置多个,例如:chkconfig --level 35 nfs on
可以同时将NFS服务在3和5等级设置开机启动