初学Linux之常见指令(下)
文章目录
- 初学Linux之常见指令(下)
- 1. echo 指令
- 2. cat 指令
- 3. more 指令
- 4. less 指令
- 5. head 和 tail 指令
- 6. date 指令
- 7. cal 指令
- 8. which 指令
- 9. alias 指令
- 10. find 指令
- 11. grep 指令
- 12. zip 和 unzip 指令
- 13. tar 指令
- 14. bc 指令
- 15. uname
1. echo 指令
echo 指令是将字符串打印到显示器文件或输出重定向到目标文件
语法:echo [选项] [目标文件]
(如果不指定文件时,则默认打印到显示器文件)
Linux中一切皆文件,包含显示器和键盘
echo "hello world"
输出字符串内容到显示器文件hello worldecho "hello world" > tmp.txt
输出字符串内容到tmp.txt- 如果不存在tmp.txt,则先创建再将hello world> 输出重定向到tmp.txt
- 如果存在tmp.txt,则> 输出重定向到tmp.txt
- 每次写入都会清空文件中的内容,然后再写入
> tmp.txt
- 如果文件不存在,相当于touch指令,创建文件
- 如果文件存在,则会清空文件中的内容
echo "hello world" >> tmp.txt
>> 追加重点向 将字符串内容追加到文件- 不会删除文件中的内容,而是追加到文件中,本质上也是一种写入
- echo指令默认在字符串结尾自带换行符 \n,如果不想换行,可以在echo指令的选项加上-n,来取消换行,
echo -n "hello world"
2. cat 指令
cat 指令是用来查看文件中的内容
语法:cat [选项] [目标文件]
cat tmp.txt
将tmp.txt中的内容打印到显示器cat < tmp.txt
默认是从键盘文件输入,< 输入重点向,改成了从文本文件中读取数据cat -n tmp.txt
为所有的输出带上行号cat -b tmp.txt
为所有的非空行输出带上行号cat -s tmp.txt
不会输出连续的空行cat -bs tmp.txt
为所有的非空行输出带上行号,且不会输出连续的空行
TIPS:
cat 指令用来查看文件内容较小的好,太多的内容不好查看
3. more 指令
more 也是查看文件中的内容
语法:more [选项] [目标文件]
more log.txt
将log.txt中的内容打印到显示器,按Enter向下一行,按q退出
4. less 指令
less 还是查看文件中的内容
语法:less [选项][目标文件]
less log.txt
将log.txt中的内容打印到显示器,按 ↑ 来向上翻阅,相反,按↓向下翻阅,按q退出
在使用 less,可以输入 / 向下搜索,或者 ? 向上搜索,配合n下一个搜索结果,N上一个搜索结果,nN的效果取决于 / ?
例如:
从log.txt中1~10000搜索含500的所有值
less log.txt
按n即可查看下一个搜索结果
5. head 和 tail 指令
head 指令查看文件的头部/尾部内容,默认为10行
语法:head/tail [选项] [目标文件]
-
head -50 log.txt
查看log.txt的前50行,tail 指令用法和head 一样 -
head -5020 log.txt | tail -21
查看log.txt5000行~5020行之间的内容,| 为管道,管道也是文件,相当于流水线作业,将上一条指令处理后的内容交给下条指令处理
6. date 指令
date 指令显示当前时间
语法:date [选项][格式]
常见格式:
- %H : 小时(00…23)
- %M : 分钟(00…59)
- %S : 秒(00~60)
- %X : 相当于 %H:%M:%S
- %d : 日 (01~31)
- %m : 月份 (01~12)
- %Y : 完整年份 (0000~9999)
- %F : 相当于 %Y-%m-%d
date
默认显示方式
Fri Jul 19 16:50:54 CST 2024
date +%Y-%m-%d\ %H:%M:%S
指定格式显示
2024-07-19 16:50:52
date +%s
显示当前时间的时间戳,时间->时间戳
时间戳是指在格林威治时间1970年01月01日(午夜)到现在的总秒数
date -d@0
显示某一秒时间戳对应的时间,由于我们位于东八区,所有我们的时间戳是从1970年01月01日8点开始算的,时间戳->时间
7. cal 指令
cal 指令为日历,默认显示当前月
语法:cal [选项] [月份] [年份]
cal 2024 | cal -y 2024
两种写法一样,都是显示2024一年的日历cal 7 2024
显示2024年7月的日历cal -3
显示当前月份,上下两个月的日历cal -j
显示当前月份每天对应一年中的第几天
8. which 指令
which 指令查看指令是否存在,存在则返回指令的存储路径
语法:which [指令名]
Linux下一切皆文件,指令也是文件
which ls
查看 ls的存储路径
9. alias 指令
alias 指令是为指令起临时别名用的,仅在一次登录时起效,下次登录则需重新使用命令
语法:alias [别名] [指令名]
alias zhansan='ls -a -l'
为 ls -a -l 取别名,为 zhansan
为什么 ll指令和 ls -l效果一样
[root@VM-8-15-centos test_7_17]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
用 which 查看ll的路径时看到
alias ll='ls -l --color=auto'
是对‘ls -l --color=auto’起别名为ll
这就是为什么ll指令和 ls -l效果一样
[root@VM-8-15-centos test_7_17]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
‘ls --color=auto’
--color=auto 为命令行选项,使用颜色来区分不同类型的文件,默认的ls是不使用颜色区分的
10. find 指令
find 指令是在指定目录下搜索指定文件
语法:find [指定路径] -name [文件名]
在所有文件中搜索test.c文件
find / -name test.c
在所有文件中搜索所有.c文件
find / -name *.c
* 为通配符, *.c相当于自动匹配所有的.c文件
11. grep 指令
grep 指令是在指定文件中搜索字符串并打印
语法:grep [选项] [搜索内容] [文件名]
grep 111 log.txt
搜索 log.txt中搜索所有包含111的字符串并打印grep -i -n abc log.txt
搜索 log.txt,忽略大小写搜索所有包含abc的字符串并打印,且带上行号,-i 为忽略大小写,-n 为输出行号(输出的行号为在文件中的行号)grep -v -i abc log.txt
搜索 log.txt,忽略大小写搜索所有不包含abc的字符串并打印
12. zip 和 unzip 指令
zip 指令是在打包/解包文件,也就是压缩和解压
语法:zip/unzip [选项] [压缩包名] [文件/目录]
zip -r tmp.zip test
打包/压缩test文件夹的所有内容 -r 为递归打包,打包单个文件时可以不带unzip tmp.zip -d ../
将 tmp.zip 的内容解压到上级目录, -d 为指定目录
13. tar 指令
tar 指令是在打包和压缩文件(取决于选项)
语法:tar [选项] [压缩包名] [文件/目录]
-
tar -czvf tmp.tgz test
打包test中的所有内容- -c为创建一个压缩文件
- -z为是否同时具有 gzip 的属性
- -v为在打包过程中可以看到进度
- -f为指定文件名(-f后不可再接选项,需加上文件名)
-
tar -xzvf tmp.tgz -C ../
解包test中的所有内容到上级目录- -x为解开一个压缩文件
- -C为指定目录
14. bc 指令
bc 指令为Linux中的简易计算器
- bc 直接使用的话,输入一个表达式,bc 得出结果,Ctrl + c 终止
echo "1+2+3+4+5" | bc
通过管道将表达式传给bc ,并得出结果
15. uname
uname 指令为显示关于当前运行的操作系统的信息
uname -a
为详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类
型,硬件平台类型,操作系统名称
基本用法
uname -a
或uname --all
:显示所有可用的系统信息。uname -s
或uname --kernel-name
:显示内核名称。uname -n
或uname --nodename
:显示主机名。uname -r
或uname --kernel-release
:显示内核版本号。uname -m
或uname --machine
:显示硬件名称。uname -p
或uname --processor
:显示处理器类型。uname -i
:显示硬件平台。uname -o
或uname --operating-system
:显示操作系统名称