【操作系统】linux常用指令

目录

[1. 常用按键操作](#1. 常用按键操作)

[2. ls指令](#2. ls指令)

[3. pwd指令](#3. pwd指令)

[4. cd指令:更改用户所在目录](#4. cd指令:更改用户所在目录)

[5. touch指令](#5. touch指令)

[6. mkdir指令](#6. mkdir指令)

[7. 删除相关指令](#7. 删除相关指令)

[8. man指令](#8. man指令)

[9. cp指令:拷贝](#9. cp指令:拷贝)

[10. 文件和打印相关](#10. 文件和打印相关)

[10.1 基本概念](#10.1 基本概念)

[10.2 重定向操作](#10.2 重定向操作)

[10.3 多终端实验](#10.3 多终端实验)

[10.4 文件类型](#10.4 文件类型)

[11. mv指令](#11. mv指令)

[12. cat和tac](#12. cat和tac)

[13. more和less](#13. more和less)

[14. head和tail](#14. head和tail)

[15. date和cal](#15. date和cal)

[16. find指令](#16. find指令)

[17. grep指令](#17. grep指令)

[18. bc指令](#18. bc指令)

[19. uname指令](#19. uname指令)

[20. 打包压缩和文件传输](#20. 打包压缩和文件传输)

[20.1 zip和unzip](#20.1 zip和unzip)

[20.2 Linux和Windows互传文件](#20.2 Linux和Windows互传文件)

[20.3 tar压缩](#20.3 tar压缩)

[21. Shell简介](#21. Shell简介)


1. 常用按键操作

  • 上下键:切换之前输入的指令

  • Ctrl+C:结束当前命令

  • 按2次Tab键:搜索/补全指令

  • Ctrl+R:搜索历史命令

  • Ctrl+D:退出当前用户

2. ls指令

首先,建立空文件一样会在磁盘上占空间。文件=内容+属性,操作文件要么对内容操作,要么对属性操作。

常用选项

  • ls:默认显示当前目录内容

  • ls -l:显示文件名与详细信息(默认当前目录,也可以指定)

  • ls -a:显示所有文件(包括隐藏文件)

  • ls -alls -la:显示所有文件的详细信息

注意

  • 在Linux中,绝大多数指令与参数顺序无关,是否连着也无关

  • 进入一个路径时,用ls -a会显示...两个隐藏文件

    • .代表当前目录

    • ..代表上级目录

  • ls -l:查看目录本身信息

3. pwd指令

显示用户所在的当前目录。

注意 :Windows的路径由\隔开,而Linux由/隔开。

4. cd指令:更改用户所在目录

Linux文件结构为一棵从根目录开始的多叉树:

  • 叶子节点为文件、空目录

  • 非叶子节点为非空目录

路径类型

  • 绝对路径:从根目录到目标文件(在配置文件中使用)

  • 相对路径:以非根目录为参照

常用用法

  • cd ~:转到用户的家目录

    • 任何Linux用户都用特定用户名在家目录下登录

    • 普通用户:/home/......

    • Root用户:/root

  • cd -:回到上一次的目录

Windows桌面本质:家目录下的桌面文件夹。哪个用户登录就将那个用户对应的文件夹放到屏幕上。

5. touch指令

创建文件(不可创建目录)。

相关指令

  • stat:查看文件时间信息

  • 当再次touch已存在的文件时,文件时间会更新

6. mkdir指令

创建目录。

选项

  • mkdir -p:创建一串路径(包括中间不存在的目录)

查看方式

  • tree:输出"图形化"目录结构

  • tree a*:输出a开头的目录结构

相关指令

  • which:查看指令在系统中的安装位置(指令的本质为可执行文件)

  • alias:给指令取别名(暂时别名,关机失效)

    • 例如:alias a='ls -la'(记得加引号)

    • ll即是ls -l的别名

  • nano:简易文本编辑器

    • 安装:yum install nano

    • 可以用它写代码

    • 如果出现异常,可以用Ctrl+C结束

7. 删除相关指令

  • rmdir:默认删除空目录

  • rm:删除文件

  • rm -r:删除目录及其内容

  • rm -f:强制删除,不提示

  • *:通配符,表示当前目录下所有文件

  • rm -rf *:删除当前目录下所有文件(谨慎使用!)

8. man指令

查看指令的帮助文档。

  • man man:查看man指令本身的用法

9. cp指令:拷贝

基本用法

  • cp test.cpp a:将test.cpp拷贝到a目录里

  • cp test.cpp a/test2.cpp:将test.cpp拷贝到a目录里,并改名为test2.cpp

目录拷贝

  • cp -r:拷贝目录

  • cp -r a nn:将a目录拷贝并命名为nn

  • 如果目标目录nn已存在,会将a拷贝到nn目录中

10. 文件和打印相关

10.1 基本概念

在Linux中,一切皆文件,包括键盘、显示器等。使用时文件必须被打开,printf、cin等本质为对文件操作,这些必备的文件通常系统默认打开(有stdin、stdout、stderr)。

10.2 重定向操作

  • echo "内容" > 文件:将文字输入到文件中

    • >特点:后续文件不存在会新建,先清空再写入

    • 因此,> 文件:直接清空文件

  • echo "hello" >> test.txt:追加重定向,不会清空原内容

  • cat:查看文件内容

输入重定向

  • cat < 文件:将文件内容输入到屏幕

  • cat直接回车:命令行阻塞,从键盘直接读取内容到屏幕显示(Ctrl+C结束)

10.3 多终端实验

用多终端实验验证Linux屏幕本质上是文件:

bash 复制代码
ls /dev/pts  # 查看当前终端数量
echo "hello world" > /dev/pts/0  # 向自己的终端输出
echo "hello world" > /dev/pts/1  # 向另一个终端输出

结论:Linux的显示器等本质上是文件,且系统可以说是由文件构成的。

10.4 文件类型

Linux文件类型不看后缀,要看ll命令第一列:

  • -:普通文件

  • d:目录文件

  • c:字符设备文件

  • b:块设备文件

  • l:链接文件

  • p:管道文件

虽然-文件统称为普通文件,但细分为代码、文本等。如果直接编译txt文件是编不过去的。

11. mv指令

剪切或文件重命名:

  • 剪切还是重命名取决于后面的是目录还是文件

12. cat和tac

  • cat:将文件内容顺序打印出来

  • tac:倒序打印文件内容

应用:查看系统日志。系统的日志可能会有几万甚至几十万行,如果我们要查看最开始的日志,可以用tac倒序打印。

13. more和less

  • more:仅打印满屏幕,按回车继续打印

  • less:可以上下翻动查看内容

14. head和tail

打印指定头/尾行数。

案例 :要打印文件的第100到110行:

方法一:使用临时文件

bash 复制代码
head -110 file > tmp1
tail -10 tmp1 > tmp2
cat tmp2

方法二:使用管道

bash 复制代码
cat /var/log/messages | head -110 | tail -10 | tac

步骤解析:

  1. cat /var/log/messages:读取路径的文件到管道

  2. | head -110:读取管道前110行

  3. | tail -10:读取后10行(即第100-110行)

  4. | tac:反向输出

15. date和cal

  • date:显示当前时间

  • date +%s:显示时间戳

时间戳用处

  1. 转换时间为标准时间

  2. 用户->日志->时间戳

转换标准时间

bash 复制代码
date -d @1766151715

cal指令

  • cal 2022:打印2022年日历

16. find指令

在树形目录里查找文件。

与which区别:which只在指定目录查找。

常用用法

  • find -name 文件名:查找对应名称的文件

  • find ~ -name *.cpp:在~目录(家目录)找.cpp结尾的文件

17. grep指令

过滤信息,用于查找日志、进程等。

bash 复制代码
cat /var/log/messages | grep "Reached"  # 查找日志里包含Reached的行

选项

  • -i:忽略大小写

  • -v:打印不匹配的行

复杂示例

bash 复制代码
cat /var/log/messages | grep "Reached" -vi | tail -10
# 打印日志里没有Reached的记录的后10条

18. bc指令

简易计算器。

bash 复制代码
echo "1+3*4" | bc  # 计算字符串的结果

19. uname指令

查询系统相关信息。

选项

  • -a:打印全部信息

  • -r:内核版本+芯片架构

20. 打包压缩和文件传输

20.1 zip和unzip

压缩

bash 复制代码
zip -r 压缩完文件名 要压缩的文件
# 示例:zip -r 25-12-21.zip 25-12-21

解压

bash 复制代码
unzip 25-12-21.zip -d /root  # 解压到指定目录

20.2 Linux和Windows互传文件

  1. 先下载相关工具:

    复制代码
    yum install -y lrzsz
  2. Linux传到Windows:

    复制代码
    sz 25-12-21.zip
  3. Windows传到Linux:

    复制代码
    rz -e  # 或直接拖拽文件到终端

20.3 tar压缩

压缩

复制代码
tar czf 1.tar 25-12-21  # 将25-12-21压缩成1.tar

解压

复制代码
tar xzf 1.tar -C /root  # 将1.tar解压到/root(注意C要大写)

21. Shell简介

Linux包括系统内核和外壳程序(命令行)。

Shell可以简单理解为命令行解释器。

外壳程序作用

  1. 方便用户使用系统

  2. 保护内核(拦截错误指令)

  3. 创建子进程运行命令

相关推荐
咕噜签名-铁蛋2 小时前
双雄争霸:Windows与Linux操作系统的技术博弈与生态进化
服务器
看-清2 小时前
Docker离线安装部署xxl-job流程
运维·docker·容器
建群新人小猿3 小时前
陀螺匠企业助手-我的日程
android·大数据·运维·开发语言·容器
徐安安ye3 小时前
Flutter 车载系统开发:打造符合 Automotive Grade Linux 标准的 HMI 应用
linux·flutter·车载系统
webbodys3 小时前
Python文件操作与异常处理:构建健壮的应用程序
java·服务器·python
lifewange3 小时前
Linux 服务管理故障排查小手册
linux·运维·服务器
十六年开源服务商3 小时前
WordPress网站信誉评价与运维服务怎样提升
运维
LUCIFER3 小时前
[驱动之路(九)——UART(串口)子系统]学习总结,万字长篇,一文彻底搞懂UART(串口)子系统(含串口数据收发流程解析)
linux·驱动开发
无代码专家4 小时前
生产ERP解决方案:重构制造企业数字化运营体系
运维·低代码·重构·制造