第三章 Linux基础
·
1. grep 文本过滤命令
grep 命令用于在文本中搜索匹配指定字符串的行,并将匹配的行输出到屏幕。
[root@c a]# env | grep PATH
DEBUGINFOD_IMA_CERT_PATH=/etc/keys/ima
PATH=/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
2. 常用文件与路径命令
2.1 查看文件内容
cat:查看文件内容。
2.2 查看命令路径
which或whereis:查看二进制文件(命令)的绝对路径。
[root@c ~]# whereis bash
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
[root@c ~]# which bash
/usr/bin/bash
2.3 查找文件
find:查找普通文件或文件夹。
find / -name hello
/:查找的起始路径。-name:根据文件名精确查找。hello:要查找的具体文件名。
3. Shell 变量基础
3.1 PATH 环境变量
PATH 是一个环境变量,定义了系统查找可执行命令的目录路径。路径之间用冒号 : 分隔。
[root@c ~]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
3.2 自定义变量
Shell 编程本质上是 Linux 命令的编程。定义变量:
root@c:~/hunantv# shuaige="qiqiqi"
引用变量值需要加 $,echo 相当于 printf:
root@c:~/hunantv# echo $shuaige
qiqiqi
3.3 预定义变量
操作系统中已经定义好的变量。
$?:代表上一条命令的返回值。0:执行成功。- 非
0:执行失败(范围 1~255)。
4. PATH 变量的重要性
破坏 PATH 变量会导致命令查找失败。
[root@c ~]# PATH=qqq
[root@c ~]# echo $PATH
qqq
[root@c ~]# which bash
/usr/bin/which: no bash in (qqq)
[root@c ~]# whereis bash
-bash: whereis: command not found
恢复 PATH:
[root@c ~]# PATH=/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@c ~]# whereis bash
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
5. 语言类型与 PATH 实战
5.1 编译型与解释型语言
- 编译型语言:C、Go(类比“预制菜”)。
- 解释型语言:Java、Python、Shell(类比“现作现炒”)。
5.2 实战:让 Linux 找到自定义程序
目标:编写一个新软件,让 Linux 系统能找到它(模拟安装软件)。
步骤 1:编写 C 语言程序
[root@c shell]# mkdir /myapp
[root@c shell]# cd /myapp/
[root@c myapp]# vim hello.c
编写 hello.c 程序:
#include <stdio.h>
int main() {
printf("hello,world\n");
printf("I am qqq\n");
return 0;
}
步骤 2:编译程序
需要安装 gcc 编译器,将 hello.c 编译成二进制程序。
[root@c myapp]# gcc -o hello hello.c
编译后生成 hello 二进制文件。
步骤 3:让系统找到程序(两种方法)
方法一:适应世界(复制到 PATH 目录)
PATH 变量里的目录存放着系统命令。将编译好的 hello 程序复制到 PATH 中的任意一个目录,例如 /usr/bin。
[root@c myapp]# echo $PATH
/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@c myapp]# pwd
/myapp
[root@c myapp]# ls
hello hello.c
[root@c myapp]# hello
-bash: hello: 未找到命令
[root@c myapp]# cp hello /usr/bin/
[root@c myapp]# hello
hello,world
I am qqq
[root@c myapp]# which hello
/usr/bin/hello
方法二:改变世界(修改 PATH 变量)
将程序所在目录 /myapp 添加到 PATH 变量中。
[root@c myapp]# PATH=/myapp/:$PATH # 临时修改
[root@c myapp]# echo $PATH
/myapp/:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@c myapp]# which hello
/myapp/hello
[root@c myapp]# hello
hello,world
I am qqq
步骤 4:永久修改 PATH 变量
编辑用户配置文件 ~/.bashrc(只影响当前用户)或 /etc/bashrc(影响所有用户)。
[root@c shell]# vim /root/.bashrc
在文件末尾添加:
PATH=/myapp:$PATH
export PATH
保存后执行 source ~/.bashrc 使配置生效。
6. 其他常用命令与概念
6.1 用户管理
userdel -r changsha # 删除用户 changsha(同时删除 home 和 var 目录)
6.2 命令别名
alias 别名="原命令 [参数]" # 创建别名
alias # 查看所有已定义的别名
alias 别名 # 查看单个别名的定义
unalias 别名 # 取消别名(临时生效,终端关闭后失效)
6.3 环境变量与变量作用域
env:查看 Linux 系统中的环境变量(全局变量)。set:查看所有变量,包括环境变量和自定义变量。
变量作用域:
- 全局变量:所有程序都可使用。
- 局部变量:仅在当前 Shell 中有效。
[root@c ~]# city=changsha # 定义变量
[root@c ~]# echo $city # 输出变量值
changsha
[root@c ~]# mkdir $city # 使用变量创建文件夹
[root@c ~]# ls
anaconda-ks.cfg changsha hello hello.c test
6.4 链接文件
ln 用来创建链接文件。
[root@c ~]# ln -s hunan changsha # 创建软链接 changsha 指向 hunan
[root@c ~]# ll
lrwxrwxrwx. 1 root root 5 1月10日 10:26 xiang -> hunan # xiang 指向 hunan(类似快捷方式)
文件类型:
-:普通文件。d:目录(directory)。l:链接文件(link file)。
权限:
r:读权限(read)。w:写权限(write)。x:执行权限(execute)。
7. 操作系统组成
- 内核(Kernel):操作系统内部最核心的软件,管理硬件(CPU、内存、磁盘、网卡、显卡等)。
- 系统调用:接口,外部应用程序可调用内部功能。
- Shell:解释器,命令行界面(bash 是最常用的 Shell 解释器)。
- 函数库:第三方公共函数。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)