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 ~]# \rm -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

​ -------------------

linux常用命令和系统基本目录的更多相关文章

  1. Linux常用命令之文件和目录处理命令

    目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...

  2. Linux系列教程(四)——Linux常用命令之文件和目录处理命令

    这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...

  3. Linux 常用命令:系统状态篇

    前言 Linux常用命令中,有些命令可以用于查看系统的状态,通过了解系统当前的状态,能够帮助我们更好地维护系统或定位问题.本文就简单介绍一下这些命令. 1. 查看系统运行时间--uptime 有时候我 ...

  4. linux常用命令及系统常见符号

    常用命令 1.start x 进入界面 2.shutdown -h now 立刻关机 shutdown -r now 立刻重新启动 reboot 立刻重新启动 3.su root 切换成超级管理员 4 ...

  5. linux常用命令-1系统相关命令

    hostname #计算机名 passwd #修改密码 reboot #重启 shutdown –r now #立刻重启(root用户使用) shutdown –r 10 #过10分钟自动重启(roo ...

  6. Linux常用命令:文件与目录

    目录与路径 cd:切换目录 例如:cd ~willhua,则回到用户willhua的主文件夹  cd ~或者cd,则表示回到自己的的主文件夹  cd -,则表示回到上个目录 pwd:显示目前所在目录 ...

  7. Linux常用命令之文件和目录操作命令

    以下是linux操作系统常用的文件和目录操作命令: cd /home 进入 '/ home' 目录'  cd .. 返回上一级目录  cd ../.. 返回上两级目录  cd 进入个人的主目录  cd ...

  8. Linux 常用命令——查看系统

    有的时候别人给你一个登录方式,但是不知道是啥系统,看图就知道了 1.uname -a    查看电脑以及操作系统 2.cat /proc/version 正在运行的内核版本 3.cat /etc/is ...

  9. linux常用命令-3文件与目录相关命令

    cd .. #返回上一级目录 cd ../.. #返回上两级目录 cd - #返回上次所在目录 cp file1 file2 #将file1复制为file2 cp -a dir1 dir2 #复制一个 ...

随机推荐

  1. 活字格外联数据库SQLServer和Mysql的经验(大多数经验也适合其它使用外联数据库的平台)

    来自学习和实操后的总结,有说得不对的,或者遗漏的,大家留言补充.希望这个贴子,能成为活字格老铁们使用外联库的一个指南.PS即使你不打算使用外联库,里面的一些方法,也值得看一看! 一.库表规划1.系统表 ...

  2. 介绍了ASP。净样板

    下载sample application (or see on Github) 内容 问题介绍什么是ASP.NET样板文件NET Boilerplate不是开始创建空的web应用程序从模板域层 关于名 ...

  3. 5-kunernetes资源调度

    1.创建一个pod的工作流程 master节点组件 1.apiserver --> etcd 2.scheduler 3.controller-manager node节点有那些组件 1.kub ...

  4. shell-的bash内部命令变量介绍与shift等

    一:shell的bash内部命令变量介绍与shift等 1. bash内部变量     有些内部命令在目录列表时是看不见的,他们有shell本身提供,常用的内部命令有:echo,eval,exec,e ...

  5. React Ref 其实是这样的

    大家好,我是Mokou,好久没有冒泡了,最近一直在看研究算法和数据结构方面的东西,但是似乎很多前端不喜欢看这种东西,而且目前本人算法方面也很挫,就不献丑了. 当然了,最近也开始研究React了,这篇文 ...

  6. 【C/C++编程入门学习】C语言结构体硬核玩法分享,一切皆是数据!

    前言 对于结构体的应用太多了,今天这篇文章我主要为大家总结平时关于结构体的一些独特硬核小技巧,对于结构体更多优秀的编程表现,如果你对结构体的基础知识还不具备的话得回头看一下专栏教程或者自己找本书籍学习 ...

  7. 通过SQL自动添加流水号

    通过SQL自动添加流水号 项目中往往有一些单据流水号或者流程流水号是希望通过新增一条记录后自动产生一个编号的,比如新增一条流程就自动根据当前日期自动添加该流程的流程流水号,下面介绍两种不同类型流水号通 ...

  8. sql分页 一条语句搞定

    select top 每页条数 * from ( SELECT ROW_NUMBER() OVER (ORDER BY id desc) AS RowNumber,* FROM Article  条件 ...

  9. git折腾日志

    git for windows https://git-for-windows.github.io/ 基本配置 进入git bash后执行 $ git config --global user.nam ...

  10. 小白也能看懂的JVM内存区域

    前言 最近在准备面试题刷到了JVM这块,作为一个小白,巩固知识点最好的方式就是亲手写出来并分享:相信我的理解,同样是小白的你,一定有很大的帮助.不信,请你往下看! JVM内存区域简介 如果有人问Jav ...