初学Linux之常见指令(下)

初学Linux之常见指令(下)

文章目录

  • 初学Linux之常见指令(下)
    • [1. echo 指令](#1. echo 指令)
    • [2. cat 指令](#2. cat 指令)
    • [3. more 指令](#3. more 指令)
    • [4. less 指令](#4. less 指令)
    • [5. head 和 tail 指令](#5. head 和 tail 指令)
    • [6. date 指令](#6. date 指令)
    • [7. cal 指令](#7. cal 指令)
    • [8. which 指令](#8. which 指令)
    • [9. alias 指令](#9. alias 指令)
    • [10. find 指令](#10. find 指令)
    • [11. grep 指令](#11. grep 指令)
    • [12. zip 和 unzip 指令](#12. zip 和 unzip 指令)
    • [13. tar 指令](#13. tar 指令)
    • [14. bc 指令](#14. bc 指令)
    • [15. uname](#15. uname)

1. echo 指令

echo指令是将字符串打印到显示器文件或输出重定向到目标文件

语法: echo [选项] [目标文件](如果不指定文件时,则默认打印到显示器文件)

Linux中一切皆文件,包含显示器和键盘

  • echo "hello world" 输出字符串内容到显示器文件hello world
  • echo "hello world" > tmp.txt 输出字符串内容到tmp.txt
    1. 如果不存在tmp.txt,则先创建再将hello world> 输出重定向到tmp.txt
    2. 如果存在tmp.txt,则> 输出重定向到tmp.txt
    3. 每次写入都会清空文件中的内容,然后再写入
  • > tmp.txt
    1. 如果文件不存在,相当于touch指令,创建文件
    2. 如果文件存在,则会清空文件中的内容
  • echo "hello world" >> tmp.txt >> 追加重点向 将字符串内容追加到文件
    1. 不会删除文件中的内容,而是追加到文件中,本质上也是一种写入
    2. echo指令默认在字符串结尾自带换行符 \n,如果不想换行,可以在echo指令的选项加上-n,来取消换行, echo -n "hello world"

2. cat 指令

cat指令是用来查看文件中的内容

语法: cat [选项] [目标文件]

  • cat tmp.txttmp.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.txtlog.txt中的内容打印到显示器,按Enter向下一行,按q退出

4. less 指令

less还是查看文件中的内容

语法: less [选项][目标文件]

  • less log.txtlog.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 默认显示方式

bash 复制代码
Fri Jul 19 16:50:54 CST 2024

date +%Y-%m-%d\ %H:%M:%S 指定格式显示

bash 复制代码
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效果一样

bash 复制代码
[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效果一样

bash 复制代码
[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中的所有内容

    1. -c为创建一个压缩文件
    2. -z为是否同时具有 gzip 的属性
    3. -v为在打包过程中可以看到进度
    4. -f为指定文件名(-f后不可再接选项,需加上文件名)
  • tar -xzvf tmp.tgz -C ../ 解包test中的所有内容到上级目录

    1. -x为解开一个压缩文件
    2. -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 -suname --kernel-name:显示内核名称。
  • uname -nuname --nodename:显示主机名。
  • uname -runame --kernel-release:显示内核版本号。
  • uname -m uname --machine:显示硬件名称。
  • uname -p uname --processor:显示处理器类型。
  • uname -i:显示硬件平台。
  • uname -o uname --operating-system:显示操作系统名称
相关推荐
朱容君8 分钟前
Linux系统编程多线程之读写锁讲解
linux·开发语言
大风吹PP凉14 分钟前
38配置管理工具(如Ansible、Puppet、Chef)
linux·运维·服务器·ansible·puppet
康熙38bdc32 分钟前
Linux 进程间通信——共享内存
linux·运维·服务器
jwybobo200735 分钟前
redis7.x源码分析:(3) dict字典
linux·redis
scoone43 分钟前
ssh登陆服务器后支持Tab键命令补全
linux·shell
运维佬2 小时前
CentOS 9 配置网卡
linux·centos
轩轩曲觞阁2 小时前
Linux网络——网络初识
linux·网络
2401_840192272 小时前
python基础大杂烩
linux·开发语言·python
weixin_438197383 小时前
K8S创建云主机配置docker仓库
linux·云原生·容器·eureka·kubernetes
舞动CPU9 小时前
linux c/c++最高效的计时方法
linux·运维·服务器