0
点赞
收藏
分享

微信扫一扫

【Linux】Linux 下基本指令 -- 详解

哈哈镜6567 2024-01-02 阅读 13

无论是什么命令,用于什么用途,在 Linux 中,命令有其通用的格式:

  • command:命令本身。
  • -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节。
  • parameter[可选,非必填]命令的参数,多数用于命令的指向目标等。

语法中的[ ],表示可选的意思。


一、ls(List Files)指令

1、语法


2、功能


3、常用选项

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。(表示 all 的意思)
  • -d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息。(以列表(竖向排列)的形式展示内容,并展示更多内容)(语法中的选项是可以组合使用的,比如上图中的 -a 和 -l 可以组合应用。写法1:ls -l -a 写法2:ls -la 写法3:ls -al 三种写法都一样)
  • -n 用数字的 UID,GID 代替名称,UID:用户ID,GID:组ID。(给用户看到的是名字,实际上计算机处理的是这个数字。)
  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
  • -R 列出所有子目录下的文件。(递归)
  • -1 一行只输出一个文件。

二、pwd(Print Work Directory)命令

1、语法

没有选项,没有参数,直接使用即可。


2、功能


3、常用选项


三、cd(Change Directory)指令

1、语法

  • cd 命令无需选项,只有参数,表示要切换到那个目录下。
  • cd 命令直接执行,不写参数,表示回到用户的家目录。

2、功能

3、使用举例

cd /home/ll/lesson2/file1 #绝对路径:不管在哪里,该路径对应的文件一直可以找到(一般在系统或者软件的配置文件中使用)

cd lesson2/file1          #相对路径:简单,不过只限于当前路径(一般在命令行上使用的多)

表示当前目录:cd .(比如:cd ./code 表示切换到当前目录下的 code 目录内,和 cd code 效果一致)

返回上级目录:cd ..(cd ../.. 表示切换到上二级的目录)

绝对路径:cd /home/litao/linux/

相对路径:cd ../day02/

进入用户家目录:cd ~(默认登录成功时,所处的路径)(cd ~/code 表示切换到家目录内的 code 目录)

返回最近访问目录:cd -


四、touch(Change File Timestamps)指令

1、语法


2、功能


3、常用选项


 【补充】Linux下如何查看文件类型


五、mkdir(Make Directory)令(重要)

Home - IBM Developer

1、语法

选项(-p)可选,参数必填(表示要创建的目录的路径,相对、绝对、特殊路径符都可以使用)。


2、功能


3、常用选项


4、使用举例

递归创建多个目录:


六、rmdir(Remove Directory)指令 && rm(Remove)指令(重要)


1、rmdir(Remove Directory指令

(1)语法


(2)适用对象


(3)功能


(4)常用选项


2、rm(Remove)命


(1)语法

可以一次性删除很多个参数内容,用空格隔开即可。


(2)适用对象


(3)功能


(4)常用选项


七、manManual)指令(重要)

Linux  的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问  Linux  手册页的命令是 man。


1、语法


2、常用选项

该手册如下有8个章节,一般常用的也就是前3个:


3、使用方法

man ls  #查看ls命名手册
man 3 printf  #


八、cp(Copy指令(重要)

1、语法

选项可选,参数 1 表示被复制的文件 / 文件夹(Linux 路径),参数 2 表示要复制去的地方(Linux 路径)。


2、功能


3、说明


4、常用选项


九、mv(Move)指令(重要)

注意:cp 是拷贝,而 mv 是剪切。


1、语法

选项可选,参数 1 表示被移动的文件 / 文件夹(Linux 路径),参数 2 表示要移动去的地方(Linux 路径),如果目标不存在,则进行改名,确保目标存在。


2、功能


3、常用选项


4、举例

(1)对文件或目录重命名


 (2)移动文件或目录(相当于剪切复制)


十、cat(Concatenate)指

1、语法


2、功能


3、补充(tac)

语法:tac [选项][文件]


4、常用选项

注意:cat 不适合查看大文件的内容(比如有一个 10000 行的文本,此时要看第 1 行的内容,就要不断往上翻阅)。 


5、举例


⚪tree 指令

1、语法


2、功能


3、安装


4、使用举例


十一、more 指令

1、语法


2、功能


3、常用选项


cat 和 more 的区别是什么?


⚪扩展

1、管道

使用举例

dmesg 命令配合 more 命令使用。

dmesg | more -5  #把dmesg命令的输出经过管道传递给more

用 more 来阅读 dmesg 打印的信息的前 3 行:


(1)语法

(2)功能

(3)常用选项

(4)使用举例
  1. 从 ls 显示内容中查找指定字符串的行。

  2. 从文件内容中查找指定字符串的行。

  3. 从 dmesg 命令打印的日志信息中查找含有 error 字符串的行,并用 more 命令阅读前 3 行。

    dmesg | grep -i 'error' | more -3


2、日志


3、重定向

(1)echo

 echo:输出字符串

[ll@VM-0-12-centos lesson3]$ echo "hello Linux"
hello Linux

(2) 输出重定向

本来应该显示到显示器上,现在直接写入到了文件中。输出重定向,会清空原始文件,然后再进行写入,每次都是最新的。

echo "hello Linux" > hello.txt

(3)追加重定向
echo "1234" >> hello.txt  #新增写入的内容


(4)输入重定向 


5、如何快速清空一个文件

>hello.txt  #清空hello.txt文件中的内容

本质上是因为输出重定向会清空文件内容。 


十二、less 指令(重要)


1、语法


2、功能


3、选项


十三、head 指令


1、语法


2、功能


3、选项


十四、tail 指令


1、语法


2、功能


3、选项


4、思考

(1)log.txt 文档有一万行,如果需要提取中间的 10 行(4990-5000),该怎么做呢?

a. 方法一:需要临时文件,先取前 5000 行数据到 temp 文件里。

再取 temp 文件的最后十行。

b. 方法二:不需要临时文件,这里利用了管道的功能,先取前 5000 行到管道作为 tail 10 的要取的对象,在此基础上利用了 tac 命令进行逆置即可。

(2)如果需要提取中间的 10 行(4990-5000),并将其逆置,又该怎么做呢?


十五、时间相关的指令

date 显示


1、在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下

[ll@VM-0-12-centos lesson3]$ date
Sun Dec  3 19:19:01 CST 2023
[ll@VM-0-12-centos lesson3]$ date +%Y-%m-%d-%H:%M:%S
2023-12-03-19:19:01


2、在设定时间方面


3、时间戳

时间戳是指格林威治时间自 1970 年 1 月 1 日(00:00:00 GMT)至当前时间所经过的总秒数,它也被称为 Unix 时间戳(Unix Timestamp)。

为什么下面显示的是 1970 年 1 月 1 日 08:00:00 呢?难道不应该是 1970 年1 月 1 日 00:00:00 吗?

[ll@VM-0-12-centos ~]$ date +%Y-%m-%d-%H:%M:%S -d @0
1970-01-01-08:00:00  #格林威治与北京的时差是8小时
为什么要有时间戳?
时间戳用无符号整型变量来存储的,那么随着时间递增,时间戳有没有可能溢出呢?
时间戳溢出这个问题有解决方案吗?


十六、cal(Calendar)指令


1、命令格式


2、功能


3、常用选项


4、举例

Cal –y 2018


十七、find 指令(重要)


1、语法


2、功能


3、常用选项


4、扩展(其它查找指令)

(1)whilch(用来查找命令所在路径的命令)
#示例1:
[ll@VM-0-12-centos lesson3]$ which ls
alias ls='ls --color=auto'  #alias取别名
	/usr/bin/ls

#示例2:
[ll@VM-0-12-centos lesson3]$ which ll
alias ll='ls -l --color=auto'  #alias取别名
	/usr/bin/ls

#示例3:
[ll@VM-0-12-centos lesson3]$ which pwd
/usr/bin/pwd

【思考】

ls 和 ll 这两个命令,它们有什么区别呢?
alias ls='ls --color=auto'
alias ll='ls -l --color=auto'
可以自己取别名吗?
#给ls -l -a -i命令取别名为lll
[ll@VM-0-12-centos lesson3]$ alias lll='ls -l -a -i --color=auto'

#使用lll命令
[ll@VM-0-12-centos lesson3]$ lll
total 124
655469 drwxrwxr-x  3 ll ll   4096 Jan  2 21:39 .
655457 drwx------ 16 ll ll   4096 Jan  2 22:01 ..
790011 drwxrwxr-x  2 ll ll   4096 Jan  2 19:37 dir
655410 -rw-rw-r--  1 ll ll     33 Jan  2 18:35 test.c

(2)whereis(在系统中特定路径下,对文档、命令等相关文件的查找,只要包含了这个关键字,都会找出来)​​​​​​​
#示例1:
[ll@VM-0-12-centos lesson3]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

#示例2:
[ll@VM-0-12-centos lesson3]$ whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/mann/pwd.n.gz /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz

十七、grep(Globally Search A Regular Expression And Print​​​​​​​指令

可参考:linux grep命令详解 - ggjucheng - 博客园 (cnblogs.com)

1、语法


2、功能


3、常用选项


十八、zip / unzip 指令

1、语法


2、功能


3、常用选项


4、举例

#将lesson3一级目录下的所有文件压缩
zip lesson3.zip lesson3/*
#将lesson3目录下及其子目录的所有文件压缩
zip -r lesson3.zip lesson3/*
#将lesson3解压到tmp目录下
unzip lesson3.zip -d /tmp  #-d解压到指定目录tmp

十九、tar(Tape archive​​​​​​​)指令(重要)


1、语法


​​​​​​​2、常用选项


3、案例

(1)打包
tar -czf lesson3.tgz lesson3
tar -cvzf lesson3.tgz lesson3  #-v显示压缩的过程,压缩的哪些文件,这样防止遗漏文件

(2)解包
tar -xzf lesson3.tgz  #解压到当前目录
tar -xzf lesson3.tgz -C /tmp  #-C解压到指定目录tmp
tar -xvzf lesson3.tgz lesson3  #-v显示解压的过程,解压的哪些文件,这样防止遗漏文件

为什么要有压缩包?


二十、bcBinary Calculator​​​​​​​指令

  • 通过管道符
[ll@VM-0-12-centos lesson3]$ echo "(1+2*3+4+5)/3" | bc
5
  • scale=2 设小数位,2 代表保留两位
[ll@VM-0-12-centos lesson3]$ echo "scale=2;1+2+3+4+5/3" | bc
11.66


二十一、uname(Unix name​​​​​​​)指令

1、语法


2、功能


3、常用选项


二十二、重要的几个热键​​​​​​​


1、常用热键


2、举例

(1)Ctrl + R

之前写了一个批量化脚本,这个命令很长,但又忘记了,那么可以利用 Ctrl + r 去找。


(2)Tab

假如我们忘记了某个命令后面是怎么拼的,我们可以按两下 Tab 就可以查看系统下所有以你输入字母开头的命令。如果命令只有一条,那么会直接对命令进行补齐。

如果要显示的命令太多,它会询问我们是否要显示。


(3)Ctrl + C

假如命令行被死循环或者错误程序刷屏了,想结束它就可以使用 Ctrl + C 命令就可以中止。


(4)exit | Ctrl + D

假如使用自己的帐号登录上了 Linux,后续又从自己的帐号登录上其它帐号,这时想退出就可以使用 exit 命令。Ctrl + D,通常代表键盘输入结束(End Of File 或 End Oflnput)的意思,它可以代替 exit 命令。


二十三、关机

1、语法


2、常用选项

注意:开机没有命令,因为它用的是电源。 


【扩展命令】

举报

相关推荐

0 条评论