zoukankan      html  css  js  c++  java
  • linux常用命令和系统基本目录

    Linux 基础命令及基本目录

    一、网卡

    1.网卡配置文件路径

    ​ /etc/sysconfig/network-scripts/ifcfg-eth0

    配置文件:

    TYPE=Ethernet # 以太网 快速以太网
    BOOTPROTO=none # 获取IP地址的方式 1 none 2 static 3.dhcp(路由器 三层交换机 192.168.1.2-192.168.1.254)
    NAME=eth0 # 网卡的名称 在系统中显示的名称
    UUID=2ccba174-21d0-4cb4-810f-93b5e16d1768 # 设备的唯一标识 系统会为每个硬件设备 分配一个UUID作为设备的唯一标识
    DEVICE=eth0 # 网卡的硬件名称
    ONBOOT=yes # 自动启动
    IPADDR=10.0.0.200 # IP地址 类似家的地址 唯一的 公网IP(任意有网络的地方连接) 私网IP(局域网内连接) 扩展 公网IP 私网IP
    PREFIX=24 # 子网掩码 决定了当前网络中可用的主机数量 24--> 10.0.0.1-10.0.0.254 255.255.255.0
    GATEWAY=10.0.0.254 # 网关
    DNS1=223.5.5.5 # 域名解析协议 负责把域名解析成IP地址

    可做简易配置:

    TYPE=Ethernet
    BOOTPROTO=none
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=10.0.0.200
    PREFIX=24
    GATEWAY=10.0.0.254
    DNS1=223.5.5.5

    2.重启网卡命令

    systemctl restart network

    systemctl stop network

    systemctl start network

    ifdown eth0 && ifup eth0

    3.关闭selinux防火墙

    getenforce #查看状态

    setenforce 0 #关闭selinux

    4.关闭NetworkManager服务

    systemctl stop NetworkManager # 关闭NetworkManager服务

    systemctl disable NetworkManager #禁止开机自启

    5.关闭防火墙firewalld.service

    使用命令:

    ​ systemctl status firewalld.service

    执行后可以看到绿色字样标注的“active(running)”,说明防火墙是开启状态

    ​ 使用命令:

    ​ systemctl stop firewalld.service

    关闭后,使用命令

    ​ systemctl status firewalld.service

    前面的方法,一旦重启操作系统,防火墙就自动开启了,该怎么设置才能永久关闭防火墙呢?

    ​ systemctl status firewalld.service 关闭开机自启

    二、基础命令

    1.echo 输出

    • 输出打印到屏幕

    [root@oldboy-lnb ~]# echo awerqwerqwer
    awerqwerqwer

    • 先清后写内容

      [root@oldboy-lnb ~]# echo oldboytest..... > hosts

      [root@oldboy-lnb ~]# cat hosts
      oldboytest.....

    • 追加内容

    ​ [root@oldboy-lnb ~]# echo test............... >> hosts
    ​ [root@oldboy-lnb ~]# cat hosts
    ​ oldboytest.....
    ​ test...............

    2. { } 生成序列

    所有的命令都支持{} 序列 通配符

    例如:

       [root@oldboy-lnb ~]# echo {1..10}
    	1 2 3 4 5 6 7 8 9 10
    	
    	[root@oldboy-lnb ~]# echo {a..z}
    	a b c d e f g h i j k l m n o p q r s t u v w x y z
    	[root@oldboy-lnb ~]# echo {a..f}
    	a b c d e f
    
    	[root@oldboy-lnb ~]# echo {01..10}
    	01 02 03 04 05 06 07 08 09 10
    
    	[root@oldboy-lnb ~]# echo {01..10..2}
    	01 03 05 07 09
    
    	[root@oldboy-lnb ~]# # 批量创建5个文件1.txt 2.txt 3.txt 4.txt 5.txt
    	[root@oldboy-lnb ~]# echo  .txt
    	.txt
    	[root@oldboy-lnb ~]# echo  {1..5}.txt
    	1.txt 2.txt 3.txt 4.txt 5.txt
    	[root@oldboy-lnb ~]# touch  {1..5}.txt
    	[root@oldboy-lnb ~]# ll
    	total 20
    	-rw-r--r--.  1 root root    0 Nov  2 10:31 1.txt
    	-rw-r--r--.  1 root root    0 Nov  2 10:31 2.txt
    	-rw-r--r--.  1 root root    0 Nov  2 10:31 3.txt
    	-rw-r--r--.  1 root root    0 Nov  2 10:31 4.txt
    	-rw-r--r--.  1 root root    0 Nov  2 10:31 5.txt
    
    
    	[root@oldboy-lnb ~]# rm -f {1..5}.txt
    

    ​ [root@oldboy-lnb ~]# mkdir oldboy{1..2}
    ​ [root@oldboy-lnb ~]# ll
    ​ drwxr-xr-x. 2 root root 6 Nov 2 10:32 oldboy1
    ​ drwxr-xr-x. 2 root root 6 Nov 2 10:32 oldboy2

    3.tree 树形结构目录

    树形结构目录需要安装相应得yum文件: yum -y install tree

    创建多级目录并使用树形结构显示:

        [root@oldboy-lnb ~]# mkdir oldboy/oldboy{1..3}/{www,blog,bbs} -p
    	[root@oldboy-lnb ~]# tree oldboy
    	oldboy
    	├── oldboy1
    	│   ├── bbs
    	│   ├── blog
    	│   └── www
    	├── oldboy2
    	│   ├── bbs
    	│   ├── blog
    	│   └── www
    	└── oldboy3
    		├── bbs
    		├── blog
    		└── www
    
    	12 directories, 0 files
    


    ​ 参数: -L -d
    ​ -L 深度等级
    ​ -d 只显示目录

    ​ [root@oldboy-lnb ~]# yum -y install tree


    ​ [root@oldboy-lnb ~]# tree /tmp/oldboy/
    ​ /tmp/oldboy/
    ​ └── alex
    ​ └── lidao
    ​ └── test

    ​ 3 directories, 0 files
    ​ [root@oldboy-lnb ~]# tree /oldboy/
    ​ /oldboy/
    ​ └── alex
    ​ └── lidao
    ​ └── test

    ​ 3 directories, 0 files


    ​ [root@oldboy-lnb ~]# tree -L 1 /
    ​ /
    ​ ├── bin -> usr/bin
    ​ ├── boot
    ​ ├── dev
    ​ ├── etc
    ​ ├── home


    ​ [root@oldboy-lnb ~]# tree
    ​ .
    ​ ├── oldboy
    ​ │   └── alex
    ​ │   └── lidao
    ​ │   └── test
    ​ └── test.bak

    ​ 4 directories, 1 file
    ​ [root@oldboy-lnb ~]# tree -d
    ​ .
    ​ └── oldboy
    ​ └── alex
    ​ └── lidao
    ​ └── test

    ​ 4 directories

    4.挂载光驱 mount

    mkdir /mnt/cdrom # 创建临时挂载点

    mount /dev/cdrom /mnt/cdrom # 挂载光驱到挂载点

    umount /dev/cdrom # 卸载光驱

    5.查看磁盘使用情况

    ​ df -h

    	[root@oldboy-lnb Packages]# pwd                                #查看当前路径位置
    		/data/Packages
    	[root@oldboy-lnb ~]# mount /dev/cdrom  /data                   #挂载光驱
    	mount: /dev/sr0 is write-protected, mounting read-only
    	[root@oldboy-lnb ~]# df -h                                     #查看磁盘使用情况
    	Filesystem      Size  Used Avail Use% Mounted on
    	  文件系统       总空间  已使用  剩余   占比   挂载点       
    	/dev/sda3        19G  1.6G   18G   9% /
    	devtmpfs        476M     0  476M   0% /dev
    	tmpfs           487M     0  487M   0% /dev/shm
    	tmpfs           487M  7.6M  479M   2% /run
    	tmpfs           487M     0  487M   0% /sys/fs/cgroup
    	/dev/sda1       197M  105M   93M  54% /boot
    	tmpfs            98M     0   98M   0% /run/user/0
    	/dev/sr0        4.4G  4.4G     0 100% /data
    

    6.关机和重启

    shutdown # 在1分钟后关闭操作系统

    halt # 直接关闭操作系统

    shutdown -h now # 直接关闭操作系统

    shutdown -h 5 # 系统在5分钟后关机 -h halt 关机

    shutdown -c # 取消关机计划

    shutdown -r # 在1分钟重启操作系统系统

    shutdown -r now # 直接重启

    poweroff # 直接关闭操作系统

    init 0 # 直接关闭操作系统

    reboot # 重启操作系统

    init 6 # 重启操作系统

    7.man命令帮助手册

    help 查看bash的内置命令
    内置命令 bash自带 #系统组成: Linux内核 GNU/bash 第三方软件
    外置命令 自己安装相关的命令依赖包

    8.pwd 查看当前所在路径

    ​ pwd 查看当前所在路径

    例如:

    ​ cd /etc/mnt

    ​ pwd

    ​ /etc/mnt

    9. cat 查看文件中的内容 或 文件合并

    ​ cat # 查看文件中的内容 /文件合并 / 显示菜单
    ​ 语法格式:
    ​ cat 参数选项 文件/相对路径/绝对路径
    ​ 选项仓库
    ​ -n 显示行数
    ​ -A 在结尾的位置加上$ 查看以什么结尾

          文件合并?
    			   cat可以同时查看多个文件
    			    [root@oldboy-lnb ~]# cat oldboy.txt test.txt 
    				aaaaaaa
    				bbbbbbbbbb
    				[root@oldboy-lnb ~]# cat oldboy.txt test.txt  > all.txt           # 合并文件
    				[root@oldboy-lnb ~]# cat all.txt
    				aaaaaaa
    				bbbbbbbbbb
    				[root@oldboy-lnb ~]# cat oldboy.txt 
                    aaaaaaa
    				[root@oldboy-lnb ~]# cat test.txt 
    				bbbbbbbbbb
    

    !cat 执行此命令会直接执行cat上次的查看命令

    10.ll 查看当前所有文件的详细信息

    ll 等于 ls -l

    11. touch 创建普通文件

    ​ touch # 创建普通文件 如果文件存在则会修改文件的时间戳 内容不变

    12. mkdir 创建目录

        mkdir   # 创建目录 make directory
         语法格式: mkdir [参数选项]  目录名称/带路径的
         
                         参数 -p 
    					         递归创建目录 如果目录不存在则创建  存在则不提示存在
        删除目录的命令:
                rmdir    目录名称
                rm    -r   目录名称
    

    13.mv 移动文件

    mv 移动 move remove 移除
    语法格式:
    mv 源文件 目标文件/路径
    mv 从哪里来 到哪里去
    mv 源文件 修改名称后的文件 # . 代表了当前的路径
    .. 代表了上级目录
    ~ 代表家目录

    mv 可以用于修改文件名称

    	[root@oldboy-lnb ~]# # 移动/tmp目录下的test.txt 到当前的路径改名为test.bak
    	[root@oldboy-lnb ~]# mv /tmp/test.txt   test.bak
      
    	同时移动多个文件	# 最后一个必须为目录  且不能对所有的文件同时改名
    	[root@oldboy-lnb ~]# mv 1.txt 2.txt 3.txt 4.txt 5.txt /tmp/
    	[root@oldboy-lnb ~]# ll /tmp/
    	total 4
    	-rw-r--r--. 1 root root   0 Nov  2 09:30 1.txt
    	-rw-r--r--. 1 root root   0 Nov  2 09:30 2.txt
    	-rw-r--r--. 1 root root   0 Nov  2 09:30 3.txt
    	-rw-r--r--. 1 root root   0 Nov  2 09:30 4.txt
    	-rw-r--r--. 1 root root   0 Nov  2 09:30 5.txt
    

    14.cp 复制文件

    语法格式:
    cp 源文件 目标文件/路劲/改名
    cp 目录 目标文件/路径
    参数
    -r 复制目录及目录下的所有的内容

    15.ls 显示当前的所有文件和目录

    语法格式: ls 回车 显示当前的所有的文件和目录
    ls 目录/文件 查看目录下的所有的文件 或者只查看文件是否存在

    		参数:
    			 -l   列出目录下或者文件的详细信息
    			 -d   查看目录详细信息
    			 -a   查看隐藏文件
    			 -r   逆序排序 按照文件的首字母 默认正序排序 a b c d
    			 -t   按照时间进行排序
    			 -rt  按照时间逆序排序
    

    16. alias 查看别名

    alias 查看别名 # 扩展

    	例子: 
    	[root@oldboy-lnb ~]# alias vieth0="vi /etc/sysconfig/network-scripts/ifcfg-eth0"            # 创建别名
    
    	[root@oldboy-lnb ~]# vieth0     #使用别名
    	TYPE=Ethernet
    	PROXY_METHOD=none
    	BROWSER_ONLY=no
    	BOOTPROTO=none
    	DEFROUTE=yes
    	
    	执行 alias 命令   可以查看系统中的所有别名
    

    17.rm 删除文件或目录

    rm remove 移除 删除 尽量使用mv替代rm命令
    语法格式:
    rm 文件/目录
    参数:
    -r 删除目录及目录下的所有内容
    -f 强制删除不提示
    -i 交互

    	[root@oldboy-lnb ~]# # 删除当前目录的test.bak
    	[root@oldboy-lnb ~]# rm test.bak 
    	rm: remove regular empty file ‘test.bak’? y
    	[root@oldboy-lnb ~]# rm hosts
    	rm: remove regular file ‘hosts’? n
    
    	无法直接删除目录
    	[root@oldboy-lnb ~]# rm etc
    	rm: cannot remove ‘etc’: Is a directory
    
    	1.使用临时取消别名方式删除目录
    	[root@oldboy-lnb ~]# 
    m -r etc
    	[root@oldboy-lnb ~]# cp -r /etc .
    	[root@oldboy-lnb ~]# ll
    	total 20
    	drwxr-xr-x. 79 root root 8192 Nov  2 10:49 etc
    	-rw-r--r--.  1 root root  337 Nov  2 10:26 hosts
    	drwxr-xr-x.  5 root root   51 Nov  2 10:37 oldboy
    	drwxr-xr-x.  2 root root    6 Nov  2 10:32 oldboy1
    	drwxr-xr-x.  2 root root    6 Nov  2 10:32 oldboy2
    	drwxr-xr-x.  3 root root   20 Nov  2 10:05 opt
    	drwxr-xr-t. 12 root root 4096 Nov  2 10:05 tmp
    	使用-f  强制删除
    	[root@oldboy-lnb ~]# rm -rf etc
    
    	[root@oldboy-lnb ~]# rm -rf oldboy{1..2}
    	[root@oldboy-lnb ~]# ll
    	total 8
    	-rw-r--r--.  1 root root  337 Nov  2 10:26 hosts
    	drwxr-xr-x.  3 root root   20 Nov  2 10:05 opt
    	drwxr-xr-t. 12 root root 4096 Nov  2 10:05 tmp
    

    	[root@oldboy-lnb ~]# alias cd="rm -rf"
    	[root@oldboy-lnb ~]# ll
    	total 8
    	-rw-r--r--.  1 root root  337 Nov  2 10:26 hosts
    	drwxr-xr-x.  3 root root   20 Nov  2 10:05 opt
    	drwxr-xr-t. 12 root root 4096 Nov  2 10:05 tmp
    	[root@oldboy-lnb ~]# cd opt
    	[root@oldboy-lnb ~]# ll
    	total 8
    	-rw-r--r--.  1 root root  337 Nov  2 10:26 hosts
    	drwxr-xr-t. 12 root root 4096 Nov  2 10:05 tmp
    	[root@oldboy-lnb ~]# cd tmp
    	[root@oldboy-lnb ~]# ll
    	total 4
    	-rw-r--r--. 1 root root 337 Nov  2 10:26 hosts
    

    18.查看当前系统版本信息

    cat /etc/redhat-release
    car /proc/version
    uname -a

    19.less 翻页查看

    less 一页一页的查看文件内容 类似more 了解
    特点: 查看较大的文件 如果一个文件超过600M vim或者cat查看的时候速度非常慢 为什么?
    空格/f 往下翻页
    b 往上翻页
    100G 跳转到100行
    1g 到首行
    G 文件末尾
    /搜索内容 回车
    n 查找下一个
    N 查找上一个

    三 、目录结构: FHS

    目录结构: FHS

    ​ /bin 存放普通二进制命令
    ​ /boot 系统引导文件
    ​ /dev 设备文件 磁盘 光驱
    ​ /etc 服务的配置文件
    ​ /mnt 系统设备临时挂载点 (想查看光驱的内容 就把光驱挂载到系统中某个目录下)
    ​ /opt 第三方软件默认安装的位置(jenkins)
    ​ /sbin 管理员的可运行的二进制命令
    ​ /tmp 临时存储数据的目录 类似windows的回收站
    ​ /usr 二级目录层次标准
    ​ /var 经常变化的数据文件存储的目录 日志..

    Linux的目录结构:

        1. 树形结构显示目录
        
        2. 一切皆文件
    
    	3. 硬件设备必须先挂载才可以使用 
    

    四、/etc/下的重要目录

    1./etc/重要目录

    ​ /etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置文件
    ​ /etc/hostname 主机名
    ​ /etc/resolv.conf dns配置文件
    ​ /etc/hosts 存放着域名和IP地址的对应关系
    ​ /etc/issue 用户登录提示信息
    ​ /etc/motd 用户连接登录提示信息
    ​ /etc/inittab 系统运行等级
    ​ /etc/fstab 开机自动挂载设备
    ​ /etc/rc.local 开机自动运行命令或者自动运行某个服务

    2./etc/hostname 主机名文件

    ​ 作用: 可以使用主机名称进行通信
    ​ 访问一台服务器 两种方式

    1. 通过IP地址访问

      ​ 查看主机名:
      ​ hostname
      ​ hostnamectl
      ​ cat /etc/hostname
      修改主机名:

                    1. 临时修改,重启失效
                       hostname  新名称
                                       2.永久修改, 重启生效
                       vi /etc/hostname
                        保存退出 重启系统
                       或者通过命令的形式进行修改
                       hostnamectl  set-hostname   新名称
      

    3./etc/resolv.conf 配置DNS解析服务器IP地址

    ​ 作用: 配置DNS IP 地址 解析域名为ip地址
    ​ resolv.conf和网卡配置的区别:

    • 系统在选择dns时,resolv.conf的配置优先于网卡配置
      solv.conf中的配置
      • 如果网卡中不配置dns 不影响resolv.conf配置文件

    4./etc/hosts 存放域名和IP地址的对应关系

    文件作用: 本地域名解析 访问域名的时候 会先查看hosts下有没有对应得域名解析

    5./etc/issue 登陆后系统显示得内容

    /etc/issue.net 存放着登录系统后得系统版本号和内核版本
    使用命令: > /etc/issue
    > /etc/issue.net 清空其中得内容

    6./etc/motd 登录系统后显示得内容 使用xshell链接后显示得内容

    7./etc/inittab 系统运行级别

    当前默认的运行级别3
    0 # 关机 配置文件不能设置为0
    1 # 单用户模式 救援模式 密码忘记了 # 如何进入单用户模式修改密码 作业!
    2 # 多用户模式 没有NFS 网络文件系统
    3 # 完全多用户模式 当前默认的级别 运行3级别
    4 # 保留 未开发
    5 # 桌面模式 desktop centos不安装桌面 浪费资源
    6 # 重启

    init 0 关机
    init 6 重启
    查看当前系统默认的运行级别
    [root@oldboyedu ~]# runlevel
    N 3
    设置默认的运行级别
    systemctl set-default runlevel3.target

    8./etc/fstab

    文件作用: 开机自动挂载设备
    UUID=cd3ad562-0789-4384-b0fa-272c7de138fe /                       xfs       defaults        0               0
    设备的唯一标识(也可以写设备名)		    目录挂载点			     文件系统  挂载的参数     是否磁盘备份   开机自检
    
    0为关闭
    1位开启
    开启磁盘备份 占用大量的磁盘空间 浪费IO 负载变高
    开机自检     检查磁盘是否有坏道 fsck命令
    
    
    
    
    
    
    
    
    
    
    如何让cdrom开机自动挂载
    第一步: 
    获取cdrom的uuid或者设备名称
    uuid: blkid 
    设备名: /dev/cdrom  /dev/sr0
    第二步:
    写入/etc/fstab 开机自动挂载
    /dev/cdrom                                /mnt                    iso9660 defaults        0 0
    
    第三步: 
    检查是否开机自动挂载
    df -h
    

    9./etc/rc.local

    ​ 文件作用: 开机自动运行命令或者自动运行某个服务
    ​ rc.local 必须给执行权限
    ​ 分为三种权限: 读 写 执行
    ​ r w x

    案例:
    第一个步骤: 停止ssh服务 并设置为开机禁止启动
    systemctl disable sshd 
    reboot 
    第二步骤:
    测试xshell是否能够连接  无法连接
    第三步: 测试 /etc/rc.local
    vi /etc/rc.local
    systemctl start sshd    # 开机后执行这条命令
    
    进行测试 发现无法连接
    
    第四步: 给/etc/rc.d/rc.local 执行权限
    chmod +x  /etc/rc.d/rc.local 
    
    第五步: 重启 测试 正常连接
    

    测试完后把sshd重新加入开机自动运行
    [root@oldboyedu ~]# systemctl enable sshd
    
    查看服务的状态
    
    [root@oldboyedu ~]# systemctl status sshd
    ● sshd.service - OpenSSH server daemon					
    

    Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled(开机是否自动运行 enabled 自动运行 disable 禁止开机启动); vendor preset: enabled)
    Active: active (running) since Tue 2020-11-03 11:37:49 CST; 1min 11s ago
    状态 运行

    开机自动挂载是否可以使用rc.local
    vi /etc/rc.local
    mount /dev/cdrom /mnt
    

    10./var

                文件作用: 存放服务的日志文件	
    
    [root@oldboyedu ~]# ll /var/log/messages # 系统相关的一些日志 记录到messages
    -rw-------. 1 root root 1888520 Nov  3 11:43 /var/log/messages
    [root@oldboyedu ~]# ll /var/log/secure 
    -rw-------. 1 root root 25736 Nov  3 11:43 /var/log/secure	# 登录系统相关的日志 记录到secure日志
    

    tail    # 默认显示文件后10行
         -n  显示n行 n为数字  简写 tail -4 
    	 -f  时时显示文件内容的变化 查看最新的日志 简写 tailf
    head    # 默认显示文件前10行
    
    [root@oldboyedu ~]# # 使用head和tail命令 取出文件中的第7行
    [root@oldboyedu ~]# head -n7 /var/log/messages |tail -n1
    Oct 30 08:28:52 oldboy-lnb kernel: Disabled fast string operations
    

    [root@oldboyedu ~]# [ `grep Failed /var/log/secure|wc -l` -gt 2 ] && echo "send email.... 管理员" 
    send email.... 管理员
    

    11./proc

    /proc 重要的目录 内存的映射 一切皆文件
    /proc/meminfo # 查看内容信息

    CPU ---> 内存 ----> 磁盘
    IO  I input O output
    
    内存中存储了什么数据? 运行起来的所有进程都在内存中运行
    
    什么是buffer  写缓冲  数据先写入到内存中 存储这部分数据的内存  称为缓冲区
    什么是cache   读缓存  数据线调用到内存中  存储这部分数据的内存 称为缓存区
    
    free -h 查看当前系统的内存信息
    
    /proc/cpuinfo # 查看cpu信息
    lscpu 		  # 查看CPU信息
    

    12./proc/loadavg

    查看负载情况
    [root@oldboyedu ~]# cat /proc/loadavg
    0.01 0.03 0.05 1/106 7627
    1分钟 5分钟 15分钟 负载情况
    什么是负载?
    负载衡量我们操作系统繁忙程度 负载值越高 说明系统越繁忙 压力越大 处理数据越慢
    什么硬件导致负载过高: CPU 磁盘 读写 IO
    达到什么值才能说明系统负载已经过高?
    负载的值达到接近于我们的总的核心数量 说明负载过高 非常繁忙
    4核心====负载值最高4 说明繁忙

    使用命令查看
    [root@oldboyedu ~]# uptime
    08:48:49 up 18 min, 1 user, load average: 0.02, 0.03, 0.05
    当前时间 运行了多久 当前登录用户数 平均负载 1分钟 5分钟 15分钟

    [root@oldboyedu ~]# w
    08:52:32 up 22 min, 1 user, load average: 0.00, 0.01, 0.05
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root pts/0 10.0.0.1 08:32 0.00s 0.06s 0.00s w

    13./usr

    /usr/local
    文件作用: 存放第三方安装程序的位置 类似我们直接使用软件商城进行安装
    软件安装的三种方式:
    1.yum
    语法格式:
    yum -y install package.name
    -y yes # 遇到提示自动输入yes
    案例: 安装ifconfig命令 route 命令
    大部分命令属于其他的安装包
    第一步: 如何知道命令属于哪个软件包
    1) 百度
    2) [root@oldboyedu ~]# yum provides wget
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    base: mirrors.aliyun.com
    extras: mirrors.aliyun.com
    updates: mirrors.aliyun.com
    wget-1.14-18.el7_6.1.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
    Repo : base

    		  第二步: ifconfig 属于net-tools包
    		        安装net-tools包
    				
    		   案例: 安装 rz 上传 sz下载  命令
    		   yum provides sz 
    		   属于lrzsz包
    		   yum -y install lrzsz 
    		   
    		yum特点: 自动解决依赖问题
    


    ​ 删除软件:
    ​ yum remove package.name # 自动解决依赖问题
    ​ [root@oldboyedu ~]# yum -y remove lrzsz
    ​ yum reinstall package.name # 重新安装
    ​ yum list # 列出仓库内所有软件
    ​ yum repolist # 查看当前系统所有仓库
    ​ yum clean all# 清空缓存
    ​ 2.rpm
    ​ 语法格式:
    ​ rpm -ivh package.rpm(包必须存在 提前把包下载到某个目录) 缺少什么包手动安装什么包

    ​ 特点: 不支持自动解决依赖

    ​ -i install 安装
    ​ -v verbose 显示安装过程
    ​ -h 显示安装进度

    ​ 查看软件是否安装

    [root@oldboyedu ~]# rpm -q lrzsz # 查看lrzsz是否安装
    lrzsz-0.12.20-36.el7.x86_64
    [root@oldboyedu ~]# rpm -q lrzsz wget curl # 查看多个命令是否安装
    lrzsz-0.12.20-36.el7.x86_64
    wget-1.14-18.el7_6.1.x86_64
    curl-7.29.0-51.el7.x86_64

    		rpm -qa  		# 查看当前系统所有安装过的软件包
    		rpm -ql         # 查看安装包的所有的内容
    		rpm -e          # 删除软件包
    		[root@oldboyedu ~]# rpm -qa lrzsz
    		lrzsz-0.12.20-36.el7.x86_64
    		[root@oldboyedu ~]# rpm -e lrzsz
    		[root@oldboyedu ~]# rpm -qa lrzsz
    

    ​ 3.编译安装
    ​ /usr/local目录

    ​ 需要:
    ​ 下载源码
    ​ cd 源码包
    ​ .configure
    ​ make && make install

    /usr

    14./etc/profile

    文件作用: 配置全局环境变量的文件
    连接xshell或者开机后会自动运行profile中的变量
    什么是变量
    x=1 y=x+1 方程式

    name=oldboy # 变量赋值
    用一个固定的值 表示一个不固定的内容
    全局变量 环境变量 # 针对所有的shell生效
    局部变量 普通变量 # 针对当前的shell生效

    系统为我们能够正常的使用 才设置了环境变量
    自己配置变量: 需求 可重复调用

    举例:
    定义字符串或者数字使用单引号或者双引号(解析变量)
    变量赋值 dir 变量的名称(下划线字母开头 不允许数字开头)
    等号右边的 为变量的值 (值可以是数字 字母 命令)
    等号两端不允许有空格
    [root@oldboyedu ~]# dir="/etc/sysconfig/network-scripts/"

    查看调用变量使用$
    [root@oldboyedu ~]# echo $dir
    /etc/sysconfig/network-scripts/
    
    定义命令变量使用反引号``
    [root@oldboyedu ~]# time=`date +%F-%H-%M-%S`
    [root@oldboyedu ~]# echo $time
    2020-11-04-09-54-00
    
    单引号和双引号的区别 
    
    [root@oldboyedu ~]# time=`date +%F-%H-%M-%S`
    [root@oldboyedu ~]# echo $time
    2020-11-04-09-54-00
    [root@oldboyedu ~]# test='oldboy name $dir'
    [root@oldboyedu ~]# echo $test
    oldboy name $dir
    [root@oldboyedu ~]# test="oldboy name $dir"
    [root@oldboyedu ~]# echo $test
    oldboy name /etc/sysconfig/network-scripts/
    
    系统环境变量都是大写
    linux中所有在文件中的命令 都属于子shell	
    source 和 .  执行文件 相当于把子shell中的命令在父shell中执行		
    		
    [root@oldboyedu ~]# source /etc/profile
    [root@oldboyedu ~]# echo $name
    oldboy
    


    ​ PATH 我们执行命令需要使用到PATH变量
    ​ [root@oldboyedu ~]# echo $PATH
    ​ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    ​ shell执行命令的过程
    ​ 第一步:
    ​ 命令在什么位置? 为什么直接可以在任意的位置执行所有命令?
    ​ 每个命令都有自己的位置 都有自己的路径 都是以二进制的方式存在
    ​ [root@oldboyedu ~]# which cat
    ​ /usr/bin/cat

    ​ 第二步:
    ​ 当我们执行cat命令 会先去查找PATH变量中的所有的目录
    ​ 如果找到 则执行命令 如果找不到则返回命令找不到 command not found


    第三步:
    ​ 测试把cat命令移动到/tmp目录
    ​ 在执行cat命令 无法执行
    ​ 如果想要执行必须使用命令的全路径
    ​ /tmp/cat hosts 执行

    ​ 第四步:
    ​ 解决方法
    ​ 1.移动到/usr/bin目录
    ​ 2.把新的位置增加到PATH变量中
    ​ 临时生效 退出失效
    ​ [root@oldboyedu ~]# PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp"
    ​ 永久生效 写入/etc/profile 即可
    ​ [root@oldboyedu ~]# tail -1 /etc/profile
    ​ PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp"


    ​ -------------------
    ​ [root@oldboyedu ~]# echo $PATH
    ​ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    ​ [root@oldboyedu ~]# PATH="$PATH:/tmp"
    ​ [root@oldboyedu ~]# echo $PATH
    ​ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
    ​ -------------------

  • 相关阅读:
    ios9没事,ios7tableviewcell报约束冲突问题
    在导航控制器的rootviewcontroller中push一个控制器 出现view重叠现象
    用mansard对cell的子控件设置约束,并且自动计算cell高度的问题,ios7警告
    textview第一次出现不可滚动文本,但是点击出现键盘,键盘落下,就可以滚动问题
    animateWithDuration 这样的方法,在第二次应用到某个view上动画时间无效问题
    UItoolBar 设置背景颜色
    implicitly declaring library function 'objc_msgSend'with type '(id,SEL,...)' 警告
    侧滑手势移除控制器,pop
    textfield光标消失和故意隐藏需求
    【Debug】IAR右键无法跳转到定义的解决方法
  • 原文地址:https://www.cnblogs.com/yangte/p/13961159.html
Copyright © 2011-2022 走看看