linux命令的基本操作

版权声明:观极著作 https://blog.csdn.net/weixin_41619143/article/details/88580303

1,linux下文件颜色的含义

蓝色————>文件夹

绿色————>可执行程序

青色————>快捷方式

黄色————>表示设备

红色————>压缩包

2,linux的系统版本

RHEL7.0           ext4

RHEL6.0          FAT32、XFS

3,vim编辑模式:

三种模式:           命令模式             插入模式           末行模式

4,linux目录介绍

------------------------------------------------------------------------------------------------------

/boot    【存放内核】启动文件的目录 
/etc    用来存放所有的系统管理所需要的【配置文件和子目录】
/dev    存放与【设备相关的数据】
/home    存放所有普通用户的【家目录】
/lib    系统调通用的【函数库】保存位置
/root    管理员的家目录
/tmp    存放【临时】文件

    变量名·由【字母、数字、下划线】组成

-----------------------------------------------------------------------------------------------------------------------------

/bin/bash        -默认解释器
cat /proc/meminfo  查看内存

/etc/hostname    -配置【永久的主机名】
/etc/fstab    -    -开机【自动挂载】的配置文件, 内核引导时要从这里加载
/etc/passwd -    -文件中每一行都记录着一个用户帐号基本信息
/etc/resolv.conf    -配置永久的【DNS服务器地址】
etc/group        -组基本信息存放

/root/.bashrc    -设置永久【别名】
uname -r    -    -列出内核版本
 lscpu        -查看CPU
 route -n        -查看网关命

-------------------------------------------------------------------------------------------------------------------

ls 常用命令选项
    -l    以长格式显示,显示详细属性
    -h    提供易读的容量单位
    -d    显示目录本是(而不是内容)的属性
    -A    包括名称以 . 开头的隐藏属性

-----------------------------------------------------------------------------------------------------------------------

通配符       · 针对不确定
     * : 任意多个任意字符useradd 命令
      ?: 单个字符
    [ ] : 只能匹配0~9
    { }: 多组不同的字符串,全匹配

-------------------------------------------------------------------------------------------------------------------------

创建用户
     useradd [选项]... 用户名
 修改用户属性
    usermod [选项]... 用户名
删除用户
    userdel [-r] 用户名       # -r:连同用户家目录一并删除

命令选项
– -u 用户id、-d 家目录路径、-s 登录解释器、-G 附加组
  用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
    /sbin/nologin :禁止用户登陆系统

 
使用 passwd 命令
–     passwd [用户名]

    [root@A ~]# passwd nsd01
    更改用户 nsd01 的密码 。

非交互式设置用户密码

–     echo '密码' | passwd --stdin 用户名

用户密码信息存放在 /etc/shadow 文件
     用户名:密码加密字符串:上一次修改密码的时间
      自1970-1-1到上一次修改密码时间经过的天数

----------------------------------------------------------------------------------------------------------------

别名的定义:简化复杂命令

    查看已设置的别名
          alias  [别名名称]
    定义新的别名
          alias  别名名称= '实际执行的命令行'
    取消已设置的别名
          unalias  [别名名称]

——————————————————————————————————————————————————————

远程管理的命令:ssh   登陆对方的用户名@对方的IP地址
    ssh -X:在远程管理时,本地运行对方的图形程序

————————————————————————————————————————————

安装软件包的命令
使用rpm命令管理软件,默认不允许用户做任何选择

• RPM Package Manager,RPM包管理器
     rpm -q 软件名...                    #查询当前系统软件是否安装
     rpm -ivh 软件名-版本信息.rpm...   #安装软件包
     rpm -e 软件名...                     #卸载

[root@server0 opt]# rpm -ql vsftpd  #列出安装清单
常见的错误信息:依赖关系错误
错误:依赖检测失败:
    bind = 32:9.9.4-14.el7 被 bind-chroot-32:9.9.4-14.el7.x86_64 需要

-------------------------------------------------------------------------------------------------------------------------

Yum软件包仓库,自动解决依赖关系

 服务:为客户端自动解决依赖关系,安装软件包

  服务端:虚拟机classroom.example.com

    1.众多的软件包  2.仓库清单文件(repodata)
    3.构建Web服务或FTP服务传递数据

  客户端:虚拟机server0.example.com

  客户端配置文件:/etc/yum.repos.d/*.repo
--------错误的配置文件会影响正确的配置文件------------
    rm -rf  /etc/yum.repos.d/*
    vim  /etc/yum.repos.d/abc.repo
   [rhel7]          #仓库标识 
   name=rhel7.0     #仓库描述信息
   baseurl=         #指定服务端位置
   enabled=1        #是否启用该文件
   gpgcheck=0       #是否检测红帽签名

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Yum使用
    # yum  repolist           #列出仓库信息
    # yum -y  install httpd   #安装软件包
    # yum -y  install sssd
    # yum -y  install gcc
    # yum -y  install system-config-kickstart
    # yum  remove   软件名          #卸载
    # yum clean all            #清缓存

---------------------------------------------------------------------------------------------------------------

配置永久的IP地址、子网掩码、网关地址

    网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0

    通过命令nmcli connection  #可以修改网卡配置文件

1>查看命令识别网卡的名称
      —— nmcli connection show

2>进行配置永久的IP地址、子网掩码、网关地址
 nmcli connection modify 'System eth0'     ipv4.method manual
                修改   '识别的网卡名'         ipv4.方法   手工配置
 ipv4.addresses '172.25.0.110/24 172.25.0.254' 
                 'IP地址/子网掩码   网关地址' 
 connection.autoconnect yes
      每次开机自动激活配置

3>激活配置 
    nmcli connection up 'System eth0'

vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
方式2:
    nmtui  修改IP地址为172.25.0.120/24

      1. Edit a connection(回车)#编辑连接
      2. System eth0(回车)          #选择网卡
      3. Require IPv4 addressing for this connection
                 #利用IPv4进行激活 

      4. Automatically connect
                 #每次开机自动激活配置  

查看网关命令:
    route  -n    #以数字的方式显示
         Gateway         
             172.25.0.254  

----------------------------------------------------------------------------------------------------------

管理组账号

组基本信息存放在 /etc/group 文件
[root@A ~]# grep stugrp  /etc/group
  stugrp:x:2002:

    组名:密码占位符:组的GID:组的成员列表

创建组
     groupadd [-g 组ID] 组名
将用户加入组
     gpasswd -a 用户名  组名    
     gpasswd -d 用户名  组名    #删除
     grep 组  /etc/passwd    #查看
删除组
     groupdel 组名

创建一个用户Linux有那些文件会改变?

    grep 组名 /etc/passwd
    ls /home/
    grep 组名 /etc/shadow
    grep 组名 /etc/group

------------------------------------------------------------------------------------------------------------------------

 /etc/passwd:用户基本信息存放在 /etc/passwd 文件

[root@server0 /]# head -1 /etc/passwd
  root:x:0:0:root:/root:/bin/bash
  用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器

----------------------------------------------------------------------------------------------------------------------------

重定向输出:将前面命令的输出结果,写入文本文件
       >:覆盖重定向
       >>:追加重定向
    管道  |  :将前面命令的输出结果,交由面后命令处理

-------------------------------------------------------------------------------------------------------------------------------

tar备份与恢复
      归档及压缩:1.零散的文件归成一个  2.占用硬盘空间变小
常见的压缩格式及命令工具:
        .gz ---> gzip
          .bz2 ---> bzip2
          .xz ---> xz

制作归档及压缩(打包----->tar包)
    格式:tar 选项    /路径/tar包名字     /路径/源文件   /路径/源文件
 
解包
    格式:tar 选项    /路径/tar包名字     /路径/释放的位置

    -c:创建归档             -C(大写):指定释放位置
     -x:释放归档            -f:指定归档文件名称
    -t:显示归档中的文件清单    
    -z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理
打包:
    tar -zcf  /路径/tar包名字        /路径/源文件
    tar -jcf  /路径/tar包名字        /路径/源文件
    tar -Jcf  /路径/tar包名字        /路径/源文件
     选项顺序要求:-f必须在最后
解包:
    tar  -xf  /路径/tar包名字   -C /路径/指定释放位置

----------------------------------------------------------------------------------------------------------------

NTP时间同步

NTP网络时间协议
• Network Time Protocol
– NTP服务器为客户机提供标准时间
– NTP客户机需要与NTP服务器保持沟通

  服务端:虚拟机classroom
  客户端:虚拟机Server

  1.安装chrony软件包(客户端软件:专用于访问服务的软件)
 [root@A ~]# yum -y install chrony
 [root@A ~]# rpm -q chrony

  2.修改程序主配置文件,指定服务端位置
    在Linux大多数配置文件中,以#开头的行为注释行 
 [root@A ~]# vim /etc/chrony.conf 
  #server 0.rhel.pool.ntp.org iburst
  #server 1.rhel.pool.ntp.org iburst
  #server 2.rhel.pool.ntp.org iburst
  server classroom.example.com iburst

  3.重起程序
 [root@A ~]# systemctl restart chronyd #重起chronyd
 [root@A ~]# systemctl enable chronyd  #设置为开机自起
   daemon:超级守护进程

  4.验证:
 [root@A ~]# date -s  "2008-10-1  12:00"
  2008年 10月 01日 星期三 12:00:00 CST
 [root@A ~]# date
 [root@A ~]# systemctl restart chronyd
 [root@A ~]# date
 [root@A ~]# date

---------------------------------------------------------------------------------------------------

cron计划任务

周期性任务
• 软件包:cronie、crontabs
• 系统服务:crond
• 日志文件:/var/log/crond   排除故障

• 配置任务格式
– 分   时   日   月   周    任务命令行(绝对路径)
 23  14  *  *  *   /bin/echo hiya

    *:匹配范围内任意时间
    ,:分隔多个不连续的时间点
    -:指定连续时间范围
    /n:指定时间频率,每n

   每分钟记录当前系统的时间,写入到/opt/time.txt
[root@A ~]# date >> /opt/time.txt
[root@A ~]# cat /opt/time.txt

[root@A ~]# crontab -e -u root   #以root书写计划任务
[root@A ~]# crontab -l -u root
*  *  *  *  *   date  >>  /opt/time.txt

[root@A ~]# ls /var/spool/cron/   #任务文件存放路径
[root@A ~]# cat /var/spool/cron/root  #查看任务文件内容 

[root@A ~]# cat /opt/time.txt   #查看结果
 

================================================================================================

/etc/fstab    配置开机自动挂载
    /dev/null    黑洞设备    专用于收集无用的信息

    gt >      ge >=    eq =     
    lt <      le <=    ne !=     
    字符串对比:
    == 两个字符串相等为真    != 两个字符串不相等为真    


    >     只收集前面命令正确的输出信息写入文本文件中
    2>    只收集错误的输出信息    
    &>    收集正确与错误信息
    >&2    变成错误输出

    $0    当前所在的进程或脚本名
    $$    当前运行进程的PID号
    $#    已加载的位置变量的个数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
    $*    所有位置变量值
    $?    程序退出后的状态 , 0 表示正常其他值异常
    $( ) 或 ` ` 反撇号
    将命令的输出,作为另一个命令的参数,参与下一个命令的运行

    识别硬盘  lsblk        分区规划  fdisk
    物理卷 PV           卷组 VG            逻辑卷LV
    create 创建        display 显示        blkid    文件系统类型
    remove 删除        extend 扩展
    df  -h   #显示已经挂载的设备使用情况
    partprobe  #刷新  新的分区表

------------------------------------------------------------------------------------------------------------

查找文本内容
    grep [选项] '匹配模式' 文本文件...

• 常用命令选项
     -v,取反匹配        -i,忽略大小写
• 常用的匹配模式
     word  包含字符串word
    ^word 以字符串word开头     
    word$ 以字符串word结尾    
显示/etc/login.defs配置文件有效信息(去除空行  去除注释行)
 grep -v ^# /etc/login.defs  |  grep  -v  ^$ 

---------------------------------------------------------------------------------------------------------------------

查找文件                    /proc/:所占用的空间不是硬盘,而是内存
• 根据预设的条件递归查找对应的文件
     find [目录] [条件1] [-a|-o] [条件2] ...

– 常用条件表示:
      -type 类型  
        (f--文本文件      d--目录    l--快捷方式)
      -name "文档名称"         -iname 忽略大小写

      -size +|-文件大小(k、M、G)

      -user 用户名

统计命令
[root@server0 ~]# wc -l /etc/passwd  #统计行数

 限制目录查找的深度(最大层数)
         -maxdepth
    # find  /etc/  -maxdepth  1    -name "*.conf"

使用find命令的 -exec 操作
–     find .. .. -exec 处理命令 {} \;
–     优势:以 {} 代替每一个结果,逐个处理,遇 \; 结束
      # find /etc/ -name "*tab"  -exec cp {}  /mnt/  \;

!!  var:存放经常变化的数据

------------------------------------------------------------------------------------------------------------------

Set UID
• 附加在属主的 x 位上
– 属主的权限标识会变为 s
– 适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限

[root@server0 ~]# cp /usr/bin/touch /usr/bin/xixich

[root@server0 ~]# chmod u+s /usr/bin/xixich
[root@server0 ~]# su - student

[student@server0 ~]$ /usr/bin/touch  1.txt
[student@server0 ~]$ /usr/bin/xixich  2.txt
[student@server0 ~]$ ls -l 
[student@server0 ~]$ exit

---------------------------------------------------------------------------------------------------------------------------

Sticky Bit                     
• 附加在其他人的 x 位上
– 其他人的权限标识会变为 t
– 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入
权限(禁止操作别人的文档)

[root@server0 ~]# mkdir /home/public
[root@server0 ~]# chmod ugo=rwx /home/public
[root@server0 ~]# ls -ld /home/public

[root@server0 ~]# chmod o+t /home/public
[root@server0 ~]# ls -ld /home/public

-----------------------------------------------------------------------------------------------------------------------

扇区的大小为512字节

分区规划及使用

一、识别硬盘
    lsblk
二、分区规划
    fdisk /dev/vd_

        partprobe  #刷新  新的分区表
三、格式化,赋予空间 文件系统(规则)

     # mkfs.ext4 /dev/vdb1   #格式化ext4文件系统
    # blkid /dev/vdb1       #查看文件系统类型
     # mkfs.xfs /dev/vdb2    #格式化xfs文件系统
     # blkid /dev/vdb2       #查看文件系统类型
四、挂载使用分区
    mount    设备路径    挂载点
    
五、开机自动挂载
      配置/etc/fstab
  设备路径        挂载点        类型     参数      备份标记    检测顺序

    /etc/fstab完成开机自动挂载

----------------------------------------------------------------------------------------------------------

LVM逻辑卷的管理

    作用:1.可以整合分散的空间  2.容量大小可以扩大
    – 零散空闲存储 ---->整合的虚拟磁盘 ---->虚拟的分区
        物理卷 PV       卷组 VG        逻辑卷LV

  将众多的物理卷( PV),组成卷组(VG),再从卷组中划分出逻辑卷(LV)
一、创建逻辑卷

     格式:vgcreate  卷组的名    设备路径1  设备路径2 .......
     # vgcreate  systemvg  /dev/vdc1  /dev/vdc2
     # vgs    #查看卷组信息
     # pvs    #查看物理卷信息

2.通过    卷组划分逻辑卷
    ———————
    格式:lvcreate -n 逻辑卷名  -L 逻辑卷大小   卷组名
     # lvcreate       -n  mylv   -L 16G     systemvg
     # lvs     #查看逻辑卷信息                 
     # vgs           
     # ls -l /dev/systemvg/mylv
    
    格式化      mkfs.ext4  mkfs.xfs---->blkid查看文件系统
      /etc/fstab完成开机自动挂载
    # mount -a  #检测是否书写正确
     # df  -h    #查看挂载情况

--------------------------------------------------------------------------------------------------------------------------------

逻辑卷的扩展

一、卷组有足够的剩余空间
1.扩展空间的大小
        vgs    #查看卷组

        通过卷组划分逻辑卷
        lvextend -L 18G /dev/systemvg/mylv
         
        lvs    #查看逻辑卷

2.扩展文件系统的大小
   resize2fs:扩展ext4文件系统    ext4文件系统支持缩减
   xfs_growfs:扩展xfs文件系统    xfs文件系统不支持缩减
[root@server0 ~]# df  -h        #查看挂载情况
[root@server0 ~]# resize2fs /dev/systemvg/mylv 
[root@server0 ~]# df  -h

二、卷组没有足够的剩余空间

1.扩展卷组
    创建卷组    
    vgcreate  卷组的名    设备路径1  设备路径2 ...
2.扩展空间的大小
    通过卷组划分逻辑卷
    lvcreate -n 逻辑卷名  -L 逻辑卷大小   卷组名
3.扩展文件系统的大小
   resize2fs:扩展ext4文件系统
[root@server0 ~]# df  -h
[root@server0 ~]# resize2fs /dev/systemvg/mylv 
[root@server0 ~]# df  -h
------------------------------------------------------------------------------------------------------------

卷组划分空间的单位:PE   默认4M
1.查看卷组PE大小
      vgdisplay systemvg     

2.修改方式
      卷组已经存在,修改PE的大小
    # vgchange -s PE大小   卷组名

      创建卷组的时候设置PE大小
    # vgcreate  -s PE大小   卷组名   设备路径

      创建逻辑卷使用PE的个数创建

    # lvcreate -l PE的个数  -n 逻辑卷   卷组名

---------------------------------------------------------------------------------------------------------

• Samba 软件项目
–     用途: 为客户机提供共享使用的文件夹
–     协议: SMB(TCP 139 用户验证)、CIFS(TCP 445 传输数据)

• 所需软件包:samba
• 系统服务:smb

• Samba用户 —— 专用来访问共享文件夹的用户
– 采用独立设置的密码
– 但需要提前建立同名的系统用户(可以不设密码)

• 使用 pdbedit 管理工具
    -a 添加用户:    pdbedit -a 用户名
    -L 查询用户:    pdbedit -L [用户名]
     -x 删除用户:    pdbedit -x 用户名

• 修改 /etc/samba/smb.conf
  [自定共享名]
 path = 文件夹绝对路径
 ; public = no|yes //默认no
 ; browseable = yes|no //默认yes
 ; read only = yes|no //默认yes
 ; write list = 用户1 .. .. //默认无
 ; valid users = 用户1 .. .. //默认任何用户
 ; hosts allow = 客户机地址 .. ..
 ; hosts deny = 客户机地址 .. .

###############################################

搭建Samba共享

----------------------------服务端虚拟机Server:

1.安装软件包samba

2.创建samba共享帐号
    useradd -s /sbin/nologin    用户名        #添加帐号
    pdbedit -a    用户名            #将用户添加为samba共享帐号

3.创建共享目录    mkdir /共享目录    

4.修改配置文件/etc/samba/smb.conf
    此服务器必须是  STAFF 工作组的一个成员
            workgroup = STAFF
    
    [common]            #共享名
   path = /common   #共享实际路径

5.重起smb服务

6.SELinux布尔值(服务功能的开关   on 或 off)
– 需要加 -P 选项才能实现永久设置
[root@server0 ~]# getsebool -a | grep samba
[root@server0 ~]# setsebool samba_export_all_ro on
[root@server0 ~]# getsebool -a | grep samba

-------------------------------------------------------------------------------------

-------------------------------客户端:虚拟机Desktop0
利用mount挂载,更加科学方式进行访问

1.安装软件cifs-utils(让本机支持cifs文件系统)

2.挂载访问
 # mkdir  /mnt/nsd
 # mount -o user=harry,pass=123 //172.25.0.11/common  /mnt/nsd/
    # -o 选项
 # df -h    #显示已经挂载的设备使用情况
 # ls /mnt/nsd

3.开机自动挂载
   _netdev :声明网络设备
                      配置完所有的网络参数后,再进行挂载该设备

[root@desktop0 ~]# vim /etc/fstab
   //172.25.0.11/common  /mnt/nsd  cifs   
   defaults,user=harry,pass=123,_netdev  0 0

[root@desktop0 ~]# umount /mnt/nsd
[root@desktop0 ~]# df -h
[root@desktop0 ~]# mount -a   
[root@desktop0 ~]# df -h

-------------------------------------------------------------------------------------------

配置NFS共享(Linux与Linux平台之间)

搭建基本的NFS共享

1.检测软件包是否安装
rpm -q nfs-utilsnfs-utils-1.3.0-0.el7.x86_64

2.修改主配置文件 /etc/exports
  – 文件夹路径    客户机地址(权限)
[root@server0 ~]# mkdir /abc        #创建共享目录
[root@server0 ~]# echo 123 > /abc/a.txt
[root@server0 ~]# ls /abc/
[root@server0 ~]# vim /etc/exports
   /abc    *(ro)

3.重起服务nfs-server

---------------------------------------------客户端:虚拟机Desktop
[root@desktop0 ~]# vim /etc/fstab 
172.25.0.11:/abc /mnt/nsd01 nfs  defaults,_netdev 0 0

[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h
#################################################
配置用户环境
alias别名设置

• 影响【指定用户】的 bash 解释环境
    /root/.bashrc 
    /home/student/.bashrc
– ~/.bashrc,每次开启 bash 终端时生效

• 影响【所有用户】的 bash 解释环境
– /etc/bashrc,每次开启 bash 终端时生效

---------------------------------------------------------------------------------------------------
环境变量: 变量名一般大写,由系统定义完成 

         PATH:存储命令程序的路径

[root@server0 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@server0 ~]# vim /opt/abc.sh
    #!/bin/bash
    echo  hello world

[root@server0 ~]# chmod +x   /opt/abc.sh
[root@server0 ~]# /opt/abc.sh

[root@server0 ~]# abc.sh  #执行失败
[root@server0 ~]# cp /opt/abc.sh   /usr/bin

[root@server0 ~]# abc.sh  #执行成功

---------------------------------------------------------------------------------------------------
================================================================================================

猜你喜欢

转载自blog.csdn.net/weixin_41619143/article/details/88580303