【Linux】——基本指令(二)

💗个人主页💗

⭐个人专栏------数据结构学习

💫点击关注🤩一起学习C语言💯💫

目录

  • 导读:
  • [1. vim 指令](#1. vim 指令)
  • [2. head指令](#2. head指令)
  • [3. tail指令](#3. tail指令)
  • [4. tree指令](#4. tree指令)
  • [5. 输出重定向](#5. 输出重定向)
  • [6. echo指令](#6. echo指令)
  • [7. wc指令](#7. wc指令)
  • [8. | 字符](#8. | 字符)
  • [9. date指令](#9. date指令)
  • [10. Cal指令](#10. Cal指令)
  • [11. find指令](#11. find指令)
  • [12. grep指令](#12. grep指令)
  • [13. zip/unzip指令](#13. zip/unzip指令)
  • [14. tar指令](#14. tar指令)
  • [15. bc指令](#15. bc指令)
  • [16. uname --r指令](#16. uname –r指令)
  • [17. 热键](#17. 热键)
  • [18. shutdown](#18. shutdown)

导读:

前面我们在Linux基本指令(一)学习了ls,pwd,cd,touch,mkdir,rmdir,rm,man,cp,mv,cat,more,less指令。

今天我们学习的指令有vim,head,tail,tree,echo,wc,|,date,cal,find,grep,zip&&unzip,tar,bc,uname -r,shutdown。

1. vim 指令

vim是一款功能强大的文本编辑器,它在Linux系统中被广泛使用。

打开一个文件:

vim filename

切换到插入模式以编辑文件:

按下i键或者a键进入插入模式,然后开始编辑文件。

保存文件并退出:

Ecs键+Shift键+: ,输入wq,然后按下回车键。

不保存文件并退出:

Ecs键+Shift键+: ,输入q!,然后按下回车键。

以上只是vim编辑器的一些基本操作,vim还有很多高级功能和编辑技巧。您可以通过查阅vim的帮助文档或者在线教程来学习更多关于vim的用法。

bash 复制代码
[zhy@Centos ~]$ vim file.txt

2. head指令

head指令用于显示文件的开头几行,默认显示文件的前10行。
语法:

head [选项][文件]

常用选项:

-n NUM:显示文件的前NUM行,默认为10行。

-c NUM:显示文件的前NUM个字节。

-q:不显示文件名。

-v:总是显示文件名。

bash 复制代码
[zhy@Centos ~]$ head -c 100 file.txt
hello world!
source keystonerc_admin

openstack project create cloud

openstack project list

openst
#显示多个文件的前10行,并显示文件名:
[zhy@Centos ~]$ head -v file.txt newfile.txt
==> file.txt <==
hello world!
source keystonerc_admin

openstack project create cloud

openstack project list

openstack user create xiongyu --password 1 --project cloud

openstack user list

==> newfile.txt <==
hello world!
wolf

3. tail指令

相对于head指令显示文件的前10行,tail指令用于显示文件的末尾几行,默认显示文件的末尾10行。
语法:

tail [选项][文件]

常用选项:

-n NUM:显示文件的后NUM行,默认为10行。

-c NUM:显示文件的后NUM个字节。

-f:实时跟踪文件的变化,会不断更新显示文件的末尾内容。

bash 复制代码
#显示文件的后10行:
[zhy@Centos ~]$ tail file.txt

openstack image create --container-format bare --disk-format qcow2 --min-disk 2 --min-ram 1024 --file /iso/cirros-0.4.0-x86_64-disk.img Cirros

openstack image list

openstack image set Cirros --public

openstack network create GW --share --provider-network-type flat --provider-physical-network extent --project cloud --external

openstack network list
#显示文件的后5行:
[zhy@Centos ~]$ tail -n 5 file.txt
openstack image set Cirros --public

openstack network create GW --share --provider-network-type flat --provider-physical-network extent --project cloud --external

openstack network list
#显示文件的后100个字节:
[zhy@Centos ~]$ tail -c 100 file.txt
ork-type flat --provider-physical-network extent --project cloud --external

openstack network list
#实时跟踪文件的末尾内容:
[zhy@Centos ~]$ tail -f file.txt

openstack image create --container-format bare --disk-format qcow2 --min-disk 2 --min-ram 1024 --file /iso/cirros-0.4.0-x86_64-disk.img Cirros

openstack image list

openstack image set Cirros --public

openstack network create GW --share --provider-network-type flat --provider-physical-network extent --project cloud --external

openstack network list
^C

4. tree指令

tree指令用于以树状图形式显示目录结构。
语法:

tree [选项] [目录]

常用选项:

-a:显示所有文件和目录,包括隐藏文件。

-L n:限制显示的层级数为n。

-d:只显示目录。

-f:不显示目录,只显示文件。

-P pattern:只显示符合指定模式的文件和目录。

bash 复制代码
#显示当前目录的树状结构:
[zhy@Centos ~]$ tree
.
├── 111
│   ├── book
│   └── tmp1
├── file.txt
├── newfile.txt
├── test.txt
├── tmp1
│   ├── book
│   └── file2.txt
└── tmp2
    ├── book
    └── tmp1

5 directories, 7 files

5. 输出重定向

输出重定向是一种在命令行环境中将输出结果从标准输出(通常是显示器)转向到文件或其它设备的方法。在Linux系统中,使用特殊的符号>或>>来实现输出重定向。

  1. >:将命令的标准输出重定向到一个文件中,并覆盖原有内容。如果文件不存在,则创建新文件。
  2. >>:将命令的标准输出追加到一个文件中,不覆盖原有内容。如果文件不存在,则创建新文件。

下面我们用echo指令来演示一下。

6. echo指令

在Linux中,echo是一条非常常用的指令。它用于将文本或字符串输出到终端或文件。
语法:

echo [选项] [字符串]

bash 复制代码
#输出文字到终端:
[zhy@Centos ~]$ echo Hello, World!
Hello, World!
#使用转义字符:
[zhy@Centos ~]$ echo -e "Hello\nWorld!"
Hello
World!
#将echo命令的输出结果覆盖到名为file.txt的文件中。
[zhy@Centos ~]$ echo "Hello World!" > file.txt
[zhy@Centos ~]$ cat file.txt
Hello World!
#将输出追加到文件:
[zhy@Centos ~]$ echo "Hello World!" >> file.txt
[zhy@Centos ~]$ cat file.txt
Hello World!
Hello World!

7. wc指令

在Linux中,wc是一个用于统计文件中字节数、字数、行数的命令。
语法:

wc [选项][文件]

常用选项:

-c:统计文件中的字节数。

-w:统计文件中的字数(以空白字符分隔的单词)。

-l:统计文件中的行数。

bash 复制代码
[zhy@Centos ~]$ cat file.txt
Hello World!
Hello World!
#统计文件中的字节数、字数和行数:
[zhy@Centos ~]$ wc file.txt
 2  4 26 file.txt
 #只统计文件中的字节数:
[zhy@Centos ~]$ wc -c file.txt
26 file.txt
#只统计文件中的字数:
[zhy@Centos ~]$ wc -w file.txt
4 file.txt
#只统计文件中的行数:
[zhy@Centos ~]$ wc -l file.txt
2 file.txt

8. | 字符

在Linux中,竖线符号(|)代表管道操作符(Pipe),用于将一个命令的输出作为另一个命令的输入。

通过使用管道操作符可以将多个命令串联起来,实现更复杂的数据处理任务。
语法:

command1 | command2

上述命令将command1的输出作为command2的输入。command1和command2可以是任意命令,它们可以是系统自带的命令,也可以是用户自定义的脚本或程序。

管道的优点是可以将多个简单的命令组合在一起,实现更复杂的操作。可以通过管道来过滤、排序、统计、转换数据,或者将多个命令的功能组合起来使用。

比如:

bash 复制代码
#使用cat命令读取文件内容,并通过管道将结果传递给wc命令统计文件的行数:
[zhy@Centos ~]$ cat file.txt | wc -l
2

9. date指令

Linux中,date用于显示和设置系统的日期和时间。
语法:

date [选项][格式]

常用选项:

-d, --date=STRING:指定要显示或设置的日期和时间字符串。

-u, --utc:显示或设置协调世界时(UTC)。

-s, --set=STRING:设置系统的日期和时间。

-R, --rfc-2822:以RFC 2822格式输出日期和时间。

--rfc-3339=TIMESPEC:以RFC 3339格式输出日期和时间。

bash 复制代码
#显示当前日期和时间:
[zhy@Centos ~]$ date
Thu Jan  4 07:53:19 PM CST 2024
#以特定格式显示当前日期和时间:
[zhy@Centos ~]$ date "+%Y-%m-%d %H:%M:%S"
2024-01-04 19:53:36
#显示指定日期和时间的格式化结果:
[zhy@Centos ~]$ date -d "2022-01-01 12:00:00" "+%A, %B %d, %Y"
Saturday, January 01, 2022

10. Cal指令

cal命令可以用来显示公历(阳历)日历。
语法:

cal [参数][月份][年份]

bash 复制代码
#显示当前月份的日历:
[zhy@Centos ~]$ cal
    January 2024
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

#显示指定年份的日历:
[zhy@Centos ~]$ cal 2024
                               2024

       January               February                 March
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3                   1  2
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    3  4  5  6  7  8  9
14 15 16 17 18 19 20   11 12 13 14 15 16 17   10 11 12 13 14 15 16
21 22 23 24 25 26 27   18 19 20 21 22 23 24   17 18 19 20 21 22 23
28 29 30 31            25 26 27 28 29         24 25 26 27 28 29 30
                                              31
        April                   May                   June
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6             1  2  3  4                      1
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30
        July                  August                September
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30

       October               November               December
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
27 28 29 30 31         24 25 26 27 28 29 30   29 30 31

#显示指定月份和年份的日历:
[zhy@Centos ~]$ cal 1 2024
    January 2024
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

# 显示当月与前后月份的日历:
[zhy@Centos ~]$ cal -3
    December 2023         January 2024          February 2024
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
                1  2      1  2  3  4  5  6               1  2  3
 3  4  5  6  7  8  9   7  8  9 10 11 12 13   4  5  6  7  8  9 10
10 11 12 13 14 15 16  14 15 16 17 18 19 20  11 12 13 14 15 16 17
17 18 19 20 21 22 23  21 22 23 24 25 26 27  18 19 20 21 22 23 24
24 25 26 27 28 29 30  28 29 30 31           25 26 27 28 29
31

11. find指令

Find是一个强大的Linux命令行工具,用于在文件系统中查找文件和目录。它可以按照多种条件进行搜索,并可以执行各种操作。
语法:

find pathname -options

bash 复制代码
[zhy@Centos ~]$ find /home/zhy/tmp1/file2.txt
/home/zhy/tmp1/file2.txt

12. grep指令

grep是一个在Linux和Unix系统中用于查找文件中匹配文本模式的强大命令行工具。它可以从一个或多个文件中搜索匹配的行,并将结果输出到标准输出。
语法:

grep [pattern] [files]

常用选项:

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

bash 复制代码
#基本搜索
[zhy@Centos ~]$ grep 'l' file.txt
Hello World!
Hello World!
#忽略大小写搜索:
[zhy@Centos ~]$ grep 'h' file.txt
[zhy@Centos ~]$ grep -i 'h' file.txt
Hello World!
Hello World!

13. zip/unzip指令

在Linux中,可以使用zip和unzip命令来压缩和解压缩文件。
语法:

zip <压缩文件名>.zip <文件或目录>

bash 复制代码
[zhy@Centos ~]$ tree
.
├── 111
│   ├── book
│   └── tmp1
├── file.txt
├── newfile.txt
├── test.txt
├── tmp1
│   ├── book
│   └── file2.txt
└── tmp2
    ├── book
    └── tmp1

5 directories, 7 files

#压缩文件
[zhy@Centos ~]$ zip tmp3.zip newfile.txt
  adding: newfile.txt (stored 0%)
[zhy@Centos ~]$ tree
.
├── 111
│   ├── book
│   └── tmp1
├── file.txt
├── newfile.txt
├── test.txt
├── tmp1
│   ├── book
│   └── file2.txt
├── tmp2
│   ├── book
│   └── tmp1
└── tmp3.zip

5 directories, 8 files

# 解压文件
[zhy@Centos ~]$ unzip tmp3.zip
Archive:  tmp3.zip
replace newfile.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
 extracting: newfile.txt
[zhy@Centos ~]$ tree
.
├── 111
│   ├── book
│   └── tmp1
├── file.txt
├── newfile.txt
├── test.txt
├── tmp1
│   ├── book
│   └── file2.txt
├── tmp2
│   ├── book
│   └── tmp1
└── tmp3.zip

5 directories, 8 files

14. tar指令

在Linux中,tar是一个常用的命令行工具,用于创建和提取归档文件,也称为"tarball"。
语法:

打包:

tar -cvf <归档文件名>.tar <文件或目录>

解包:

tar -xvf <归档文件名>.tar

常用选项:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2

的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f之后要立即接档名!不要再加参数!

-C : 解压到指定目录

bash 复制代码
#打包
[zhy@Centos ~]$ tar -cvf tmp4.tar /home/zhy/tmp2
tar: Removing leading `/' from member names
/home/zhy/tmp2/
/home/zhy/tmp2/tmp1/
/home/zhy/tmp2/book
[zhy@Centos ~]$ ll
total 40
drwxrwxr-x 3 zhy zhy  4096 Jan  2 20:25 111
-rw-rw-r-- 1 zhy zhy    26 Jan  4 19:12 file.txt
-rw-rw-r-- 1 zhy zhy    18 Jan  3 19:27 newfile.txt
-rw-rw-r-- 1 zhy zhy     5 Jan  3 19:23 test.txt
drwxrwxr-x 2 zhy zhy  4096 Jan  3 19:12 tmp1
drwxrwxr-x 3 zhy zhy  4096 Jan  3 18:46 tmp2
-rw-rw-r-- 1 zhy zhy   190 Jan  4 20:15 tmp3.zip
-rw-rw-r-- 1 zhy zhy 10240 Jan  4 20:20 tmp4.tar

# 解包
[zhy@Centos ~]$ tar -xvf tmp4.tar
home/zhy/tmp2/
home/zhy/tmp2/tmp1/
home/zhy/tmp2/book

15. bc指令

在Linux中,bc是一个命令行计算器工具。

它用于执行数学运算,包括基本的算术运算、逻辑运算和一些高级功能,如函数、循环和条件语句。使用bc可以在终端中进行数值计算,也可以在脚本中嵌入进行数学计算操作。要使用bc指令,只需在终端中输入bc并按下回车键即可启动bc计算器。

bash 复制代码
[zhy@Centos ~]$ bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2 + 2
4
10 / 2
5

16. uname --r指令

uname -r指令在Linux中用于显示操作系统的内核版本。

执行uname -r指令将输出当前系统内核的版本号。

bash 复制代码
[zhy@Centos ~]$ uname -r
5.10.134-15.al8.x86_64

17. 热键

几个重要的热键:

  1. Tab\]按键---具有『命令补全』和『档案补齐』的功能

  2. Ctrl\]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可 以用来取代exit

语法

shutdown [选项]

** 常见选项:**

-h: 将系统的服务停掉后,立即关机。

-r: 在将系统的服务停掉之后就重新启动

-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思

相关推荐
小政同学3 小时前
【NFS故障】共享的文件无法执行
linux·运维·服务器
AI木马人3 小时前
3.【Prompt工程实战】如何设计一个可复用的Prompt系统?(避免每次手写提示词)
linux·服务器·人工智能·深度学习·prompt
ch3nyuyu3 小时前
Ubuntu(乌班图)基础指令
linux·运维·网络
minglie14 小时前
gcc编译器汇总
linux
挽安学长4 小时前
保姆级教程,通过GACCode使用Claude Code Desktop!
运维·服务器
firstacui4 小时前
MGRE实验
运维·服务器·网络
白菜欣5 小时前
Linux —《开发三件套:gcc/g++、gdb、make/Makefile 全解析》
linux·运维
何中应5 小时前
Grafana如何给列表设置别名
运维·grafana·监控
senijusene6 小时前
基于 imx6ull平台按键驱动开发:input子系统+中断子系统+platform总线
linux·驱动开发
MXsoft6186 小时前
运维的尽头,是把“救火”变成“算命”
运维