【linux:基本指令操作】常见指令操作及总结

linux常见命令行操作及总结

正文开始@Assassin

一些有趣的命令:

① 小火车 sl

[Assassin@Ninghai ~]$ sl

在这里插入图片描述
sl 安装:

[Assassin@Ninghai ~]$ sudo yum install -y sl

安装失败的(找不到安装包)可以下载epel第三方源安装,安装完成后再执行sl安装就ok

[Assassin@Ninghai ~]$ sudo yum install -y epel-release

② cowsay动画:

[Assassin@Ninghai ~]$ cowsay Lebron James nb!

在这里插入图片描述
cowsay 安装:

[Assassin@Ninghai ~]$ sudo yum install -y cowsay

按理来说,安装了cowsay之后,animalsay 也能用了,animalsay每次的小动物是随机的~~
在这里插入图片描述
③ boxes指定动画:

[Assassin@Ninghai ~]$ echo "Stephen Curry is an elementary school student" | boxes -d dog

在这里插入图片描述

boxes 安装:

[Assassin@Ninghai ~]$ sudo yum install -y boxes

④ 黑屏显示天气:

[Assassin@Ninghai ~]$ curl http://wttr.in

在这里插入图片描述
⑤ elinks终端访问网页:

[Assassin@Ninghai ~]$ elinks www.baidu.com

在这里插入图片描述
挺丑的,按 q 退出网页
在这里插入图片描述
elinks 安装:

[Assassin@Ninghai ~]$ sudo yum install -y elinks

⑥ lrzsz拖拽式传输文件:
支持小文件之间从windows传输到linux,虽然在xftp前显得很鸡肋,不过很方便:
在这里插入图片描述
lrzsz安装:

[Assassin@Ninghai ~]$ sudo yum install -y lrzsz

1. ls指令:

语法: ls [选项] [目录或文件]
功能: 对于目录,该命令列出该目录下的所有子目录与文件;对于文件,该命令会列出文件名及其他有关信息

[Assassin@Ninghai ~]$ ls

在这里插入图片描述
ls常用选项:

-a显示所有文件及目录 (包括以"."开头的隐藏文件)
-l使用长格式列出文件及目录信息
-r将文件以相反次序显示(默认依英文字母次序)
-t根据最后的修改时间排序
-S根据文件大小排序
-R递归列出所有子目录

① ls -l:列出文件的详细信息,包括文件的类型,所有者,所属组及相关的权限,文件的大小,文件的创建日期等

[Assassin@Ninghai ~]$ ls -l

在这里插入图片描述
小贴士:这里的 ls -l 可以简写为 ll ,因为:
在这里插入图片描述
alias是取别名的意思,这里os把 ls -l 取了一个别名 ll,自然也能用 ll 代替 ls -l

alias ll='ls -l --color=auto'
	/usr/bin/ls

② ls -a:列出目录下的所有文件,包括以 . 开头的隐含文件,在linux中,以.开头的文件或目录被认为是默认不可见的

[Assassin@Ninghai ~]$ ls -a

在这里插入图片描述
可以看到列举出来的文件或文件夹都是以.开头,这些文件不能被直接可见,可以理解为一些重要文件不想被他人直接看到。在Linux当中,每个目录下默认存在两个隐含文件 . 和 . . ( . 代表当前目录 . . 代表上级目录)

③ ls -d:将目录像文件一样显示,而不是显示文件夹的文件

[Assassin@Ninghai ~]$ ls -d /home/Assassin/shell_code/

在这里插入图片描述
④ ls -i:输出文件的i节点的索引信息,也就是我们所说的inode信息。linux中不以文件的后缀作为区分文件类型的标准,文件后缀只是为了对比windows方便记忆和识别,而真正区分linux文件的是inode信息

[Assassin@Ninghai ~]$ ls -i

在这里插入图片描述
文件名前面的数字就是inode,作为linux文件的唯一标识

⑤ ls -h:以人类能看懂的方式输出信息,-h也就是-human的意思,一般来说是搭配其他参数使用,如 ls -lh

[Assassin@Ninghai ~]$ ls -lh

在这里插入图片描述
单纯的 ls -l 输出的文件大小信息是以字节为单位,加上-h后就是我们熟悉的K或者M

⑥ ls -R:递归列出所有子目录下的文件,便于观察文件的分布信息

[Assassin@Ninghai ~]$ ls -R

在这里插入图片描述

2. pwd指令:

语法: pwd
功能: pwd即为print working directory,也就是打印工作目录,即显示当前工作目录的绝对路径

在这里插入图片描述
显示的路径为绝对路径

3. whoami指令:

语法: whoami
功能: 显示用户当前的身份,相当于 id -un

在这里插入图片描述
who are you,who is he等命令都有相似的作用

4. cd指令:

在这里插入图片描述

语法: cd [目录名]
功能: 改变工作目录。将当前工作目录改变到指定的目录下。

绝对路径使用绝对路径改变当前工作目录,直接跳转到该路径(绝对路径为从根目录/延伸出来的路径,路径唯一)
相对路径使用相对路径改变当前工作目录,以自身当前所在路径为参照进行路径跳转,路径不唯一
仅使用”-“选项时,当前目录将被切换到环境变量"OLDPWD"对应值的目录 ,也就是跳转到上一次所在目录
~切换至当前用户工作目录
. .切换至当前目录位置的上一级目录

① cd 绝对路径:直接从根目录 / 一级一级往下走,直到目标目录

[Assassin@Ninghai ~]$ cd /etc/java/security/security.d/

在这里插入图片描述
② cd 相对路径:通过当前路径先进入上一级目录,最后再进入py_code

[Assassin@Ninghai ~]$ cd shell_code/
[Assassin@Ninghai shell_code]$ cd ../py_code/
[Assassin@Ninghai py_code]$ pwd
/home/Assassin/py_code

在这里插入图片描述
③ cd -:从py_code回到了上次的shell_code

[Assassin@Ninghai py_code]$ cd -
/home/Assassin/shell_code

在这里插入图片描述
④ cd ~:回到当前用户的工作目录,从shell_code直接回到了工作目录

[Assassin@Ninghai shell_code]$ cd ~
[Assassin@Ninghai ~]$ pwd
/home/Assassin

在这里插入图片描述
⑤ cd . . :回到当前目录的上一级目录,这里是从Assassin工作目录回到上一级的home目录

[Assassin@Ninghai ~]$ cd ..
[Assassin@Ninghai home]$ pwd
/home

在这里插入图片描述

5. clear指令:

语法: clear
功能: 清空当前屏幕

clear执行前:
在这里插入图片描述
clear执行后:
在这里插入图片描述
小贴士:ctrl + L也是清屏功能

6. echo指令:

语法: echo [参数] [字符串]
功能: echo命令用于在终端设备上输出字符串或变量提取后的值

一般使用在变量前加上 符 号 的 方 式 提 取 出 变 量 的 值 , 例 如 : 符号的方式提取出变量的值,例如: PATH,然后再用echo命令予以输出,或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用

[Assassin@Ninghai ~]$ echo $PATH
[Assassin@Ninghai ~]$ echo 'hello linux!'

解析变量的含义或者直接打印出字符串:
在这里插入图片描述

7. touch指令:

语法: touch [参数] [文件名]
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。touch命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。

touch命令会根据当前的系统时间更新指定文件的访问时间和修改时间。如果文件不存在,将会创建新的空文件,除非指定了”-c”或”-h”选项。

注意:在修改文件的时间属性的时候,用户必须是文件的所有者,或拥有写文件的访问权限

常用选项:

-a改变档案的读取时间记录
-m改变档案的修改时间记录
-r使用参考档的时间记录,与 --file 的效果一样
-c不创建新文件
-d设定时间与日期,可以使用各种不同的格式
-t设定档案的时间记录,格式与 date 命令相同
- -no-create不创建新文件
- -help显示帮助信息
- -version列出版本信息

① 不带参数创建一个普通文件:

[Assassin@Ninghai temp]$ touch it's_a_test.txt

在这里插入图片描述
② 批量创建文件:

[Assassin@Ninghai temp]$ touch file{1..5}.txt

在这里插入图片描述
③ 修改文件的access(访问)时间:

[Assassin@Ninghai temp]$ touch -a it_is_a_test.txt

在这里插入图片描述

8. mkdir指令:

语法: mkdir [参数] [文件夹名]
功能: 在当前目录下创建一个空目录。mkdir命令是"make directories"的缩写,用来创建目录。

默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录。

常用选项:

-p递归创建多级目录
-m建立目录的同时设置目录的权限
-z设置安全上下文
-v显示目录的创建过程

① 不带参数创建一个空目录:

[Assassin@Ninghai temp]$ mkdir emptyDir

在这里插入图片描述
② 带有-m参数创建文件夹,设置文件所有者有读、写和执行权限,其他人无权访问:

[Assassin@Ninghai temp]$ mkdir -m 700 test-m-Dir

可以看到test-m-Dir文件夹的所有者有rwx权限,也就是读,写,执行权限,而所属组跟Other没有权限:
在这里插入图片描述
③ 批量创建文件夹:

[Assassin@Ninghai temp]$ mkdir dir{a..f}

在这里插入图片描述
④ -p 参数递归创建目录,可创建多级目录:

[Assassin@Ninghai emptyDir]$ mkdir -p A/B/C

可以看到创建了A,B,C三级目录
在这里插入图片描述

9. rmdir指令:

语法: rmdir [参数] [文件名]
功能: 删除一个空目录,rmdir命令作用是删除空的目录,英文全称:“remove directory”

rmdir命令只能删除空目录。当要删除非空目录时,就要使用带有"-r"选项的rm命令。rmdir命令的"-p"参数可以递归删除指定的多级目录,但是要求每个目录也必须是空目录

-p用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
- - ignore-fail-on-non-empty忽略由于删除非空目录时导致命令出错而产生的错误信息
-v显示命令的详细执行过程

① 删除空目录:可以看到emptyDir被干掉了

[Assassin@Ninghai temp]$ rmdir emptyDir/

在这里插入图片描述
② 递归删除指定的目录树:当子目录被删除后如果父目录也变成空目录的话,就连同父目录一起删除

[Assassin@Ninghai test-m-Dir]$ rmdir -p  A/B/C

可以看到A,B,C三级目录全部被干掉了
在这里插入图片描述
③ 显示指令详细执行过程:

[Assassin@Ninghai temp]$ rmdir -v dir{a..f}

可以看到批量创建的a到f文件夹全部被删除,并且-v显示删除信息
在这里插入图片描述

10. rm指令:

语法: rm [参数] [文件名或文件夹名]
功能: 删除文件或目录,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除

对于链接文件,只是删除了链接,原有文件均保持不变。 rm是相对来说是一个危险的命令,使用的时候要特别当心,尤其对于小白来说,例如 rm -rf /* 可以将整个操作系统摧毁。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

常用选项:

-f忽略不存在的文件,不会出现警告信息(强制,不询问)
-i删除前会询问用户是否操作
-r/R递归删除
-v显示指令的详细执行过程

① -i,删除前逐一询问确认:

[Assassin@Ninghai temp]$ rm -i demo.txt

在这里插入图片描述
② -f,直接删除,不会有任何提示:

[Assassin@Ninghai temp]$ rm -f demo.txt

可以看到没有任何提示信息,强制删除
在这里插入图片描述
③ -r/-R,递归删除目录及目录下所有文件:

[Assassin@Ninghai temp]$ rm -r test-m-Dir/

可以看到temp文件夹的目录结构,test-m-Dir中有一个文件夹dir1和一个文件file.cpp,执行 rm -r test-m-Dir后,temp下只剩下demo.txt和rubbish
在这里插入图片描述
④ 可以搭配通配符使用,比如搭配 * :
先在当前目录下创建100个file.txt文件,演示用通配符 * 来删除之
在这里插入图片描述

[Assassin@Ninghai temp]$ rm file*.txt

所有的带file的文件均被删除:
在这里插入图片描述
注意:

rm -rf /*   ----禁用,此操作会递归删除操作系统中所有文件

11. man指令:

语法: man [参数] 指令
功能: 查看指令的使用规则

man命令是Linux下最核心的命令之一,man命令并不是男人的意思,它是单词manual的缩写,即使用手册的意思。

man命令会列出一份完整的说明。 其内容包括命令语法、各选项的意义及相关命令 。更为强大的是,不仅可以查看Linux中命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等帮助信息。man手册页文件存放在/usr/share/man目录下。

常用选项:

-a在所有的man帮助手册中搜索
-d主要用于检查,如果用户加入了一个新的文件,就可以用这个参数检查是否出错
-f显示给定关键字的简短描述信息
-p指定内容时使用分页程序
-M指定man手册搜索的路径
-k根据关键字搜索联机帮助
num只在第num章节查找
-w显示文件所在位置

man命令内容组成的介绍:共10章

  • 用户命令的使用方法,可以使用的参数等 (可执行程序或shell命令)
  • 系统调用,只有系统才能执行的函数
  • 库调用,大多是libc函数,如qsort(3)
  • 设备和特殊文件
  • 文件格式和约定
  • 游戏
  • 宏命令包和约定
  • 系统管理命令,多数只有root可以执行
  • 内核程序
  • Tcl或Tk指令

比如执行 man ls:
在这里插入图片描述
按enter或者space下翻,按q退出man手册:
在这里插入图片描述

12. cp指令:

语法: cp [参数] [源文件或目录] [目标文件或目录]
功能: 复制文件或目录

cp即为copy的缩写,其功能为复制文件或目录到指定路径

常用选项:

-f若目标文件已存在,则会直接覆盖原文件
-i若目标文件已存在,则会询问是否覆盖
-p保留源文件或目录的所有属性
-r递归复制文件和目录
-d当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l对源文件建立硬连接,而非复制文件
-s对源文件建立符号连接,而非复制文件
-b覆盖已存在的文件目标前将目标文件备份
-v详细显示cp命令执行的操作过程
-a等价于" -dpr "选项

① -f 或 --force 强行复制文件或目录,不论目标文件或目录是否已经存在:

[Assassin@Ninghai temp]$ cp -f test.cpp ..

上级目录中有一个同名的test.cpp文件,cp加上-f参数后,系统不给任何提示,直接强制覆盖操作:
在这里插入图片描述
② -i 或 --interactive 覆盖文件之前先询问用户:

[Assassin@Ninghai temp]$ cp -i test.cpp ..

cp加上-i参数后,在上级目录中存在同名文件test.cpp时,os进行了询问是否覆盖:
在这里插入图片描述
③ -r 或 -R 递归处理,将指定目录下的文件与子目录一并处理,若源文件或目录的属性不属于目录或符号链接,则一律视为普通文件处理:

[Assassin@Ninghai temp]$ cp -r test ./for_test/

将test文件夹连同子文件递归复制到for_test文件夹中:
在这里插入图片描述
同样的,cp指令也能搭配通配符进行批量化操作,这里不再演示~~

13. mv指令:

语法: mv [参数] [源文件或目录] [目标文件或目录]
功能: 移动文件/目录或对其改名

一个有点啥b的提示:
mv与cp的结果不同。mv命令好像文件"搬家",类似windows中的剪切,cp是单纯的复制了,自己也保留了一份。

常用选项:

-i若存在同名文件,则向用户询问是否覆盖
-f覆盖已有文件时,不进行任何提示
-b当文件存在时,覆盖前为其创建一个备份
-u当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

① 将文件file_1重命名为file_2:

[Assassin@Ninghai temp]$ mv file_1 file_2

在这里插入图片描述
② 将文件file_2移动到目录test中 :

[Assassin@Ninghai temp]$ mv file_2 ./test

在这里插入图片描述
-i,-f参数可以类比cp指令,也是起到操作前是否询问的作用,这里不再演示。

14. cat指令:

语法: cat [参数] [文件]
功能: 查看目标文件的内容

常用选项:

n显示行数(空行也编号)
-s显示行数(多个空行算一个编号)
-b显示行数(空行不编号)
-E每行结束处显示$符号
-T将TAB字符显示为 ^I 符号

① 查看文件的内容:
vim procbar.cpp:
在这里插入图片描述

[Assassin@Ninghai temp]$ cat procbar.cpp 

完整显示文件内容:
在这里插入图片描述
② -n 查看文件的内容,并显示行数编号:

[Assassin@Ninghai temp]$ cat -n procbar.cpp

将文件中的内容显示对应行号:
在这里插入图片描述
③ 查看文件的内容,并输出到另外一个文件中(重定向):

[Assassin@Ninghai temp]$ cat procbar.cpp > procbar.cpp.bak
[Assassin@Ninghai temp]$ cat procbar.cpp.bak 

将文件procbar.cpp内容重定向到procbar.cpp.bak副本中:
在这里插入图片描述
④ 清空文件的内容:

/dev/null(或称空设备)在类Unix系统中是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF,简单理解为黑洞,里面啥也没有,你写东西进去也会消失:
在这里插入图片描述
⑤ 持续写入文件内容,碰到EOF符后结束并保存:

[Assassin@Ninghai temp]$ cat >> filename.txt << EOF
> hello
> i feel good
> shall we take the basketball?
> EOF

在这里插入图片描述

15. tac指令:

语法: tac [参数] [文件]
功能: 反向查看目标文件的内容

很明显,cat倒过来就是tac,tac命令就是将文件反向输出,刚好和cat输出相反

常用选项:

-b在行前而非行尾添加分隔标志
-r将分隔标志视作正则表达式来解析
-s使用指定字符串代替换行作为分隔标志
[Assassin@Ninghai temp]$ tac filename.txt 

在这里插入图片描述

16. more指令:

语法: more 文件
功能: 查看目标文件的内容

more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字,而对于内容较少的文本文件内容则推荐使用cat命令查看

常用选项:

-num指定每屏显示的行数
-lmore在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性
-f计算实际的行数,而非自动换行的行数
-p先清除屏幕再显示文本文件的剩余内容
-c与-p相似,不滚屏,先显示内容再清除旧内容
-s多个空行压缩成一行显示
-u禁止下划线
+num从第 num 行开始显示
+ /pattern在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示

命令内部操作:

  • Space键:显示文本的下一屏内容
  • Enter键:向下n行,需要定义,默认为1行
  • 斜线符\:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
  • h键:显示帮助屏
  • b键:显示上一屏内容
  • q键:退出more命令
  • Ctrl+F、空格键:向下滚动一屏
  • Ctrl+B:返回上一屏
  • =: 输出当前的行号
  • :f:输出文件名和当前的行号
  • v:调用vi编辑器
  • !:调用Shell,并执行命令
[Assassin@Ninghai temp]$ more info.txt

文章为红楼梦~~
在这里插入图片描述

17. less指令:

语法: less [参数] [文件]
功能: 既有查看目标文件的内容的功能,又有搜索功能

用less命令显示文件时,PageUp键向上翻页,PageDown键向下翻页,more跟less都是按q退出

less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向后浏览

常用选项:

-b置缓冲区的大小
-e当文件显示结束后,自动离开
-f强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g只标志最后搜索的关键词
-i忽略搜索时的大小写
-m显示类似more命令的百分比
-N显示每行的行号
-o将less 输出的内容在指定文件中保存起来
-Q不使用警告音
-s显示连续空行为一行
-S在单行显示较长的内容,而不换行显示
-x将TAB字符显示为指定个数的空格字符

命令内部操作:

  • b 向后翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
[Assassin@Ninghai temp]$ less info.txt 

文章为红楼梦~~
在这里插入图片描述
less常用于给管道符 | 搭配:

① ps查看进程信息并通过less分页显示:

[Assassin@Ninghai temp]$ ps aux | less

在这里插入图片描述
② 查看命令历史使用记录并通过less分页显示:

[Assassin@Ninghai temp]$ history | less

在这里插入图片描述

18. head指令:

语法: head [参数] [文件]
功能: 用于显示文件的开头至标准输出中,默认head指令打印其相应文件的开头10行

常用选项:

-n后面接数字,代表显示几行的意思
-c指定显示头部内容的字符数
-v总是显示文件名的头信息
-q不显示文件名的头信息

① -n 显示前n行文件内容:

[Assassin@Ninghai temp]$ head -10 procbar.cpp

显示文件的前10行信息:
在这里插入图片描述
② -v 显示文件名信息,并显示文件前n行:

[Assassin@Ninghai temp]$ head -v -n 5 procbar.cpp

打印出文件的文件名信息,取前5行:
在这里插入图片描述
③ -c 显示文件前n个字符:
在这里插入图片描述

19. tail指令:

语法: tail [选项] [文件]
功能: 用于显示文件的末尾至标准输出中,默认tail指令打印其相应文件的末尾10行

常用选项:

-n后面接数字,代表显示几行的意思(从文末打印n行)
-c指定显示尾部内容的字符数
-f循环读取,一直变化的文件总是显示固定行数

① -n 显示文件的最后n行:

[Assassin@Ninghai temp]$ tail -n 10 procbar.cpp

显示文件的后10行:
在这里插入图片描述
② -c 显示文件的最后n个字符:

[Assassin@Ninghai temp]$ tail -c 10 procbar.cpp

显示文件的最后10个字符:
在这里插入图片描述
③ -f 一直变化的文件总是显示后n行:

[Assassin@Ninghai temp]$ tail -f 10 procbar.cpp

在这里插入图片描述
这里简单介绍一哈管道 |:

管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin),简单来讲就是可以实现连续执行命令,将前一次命令的输出结果作为下一次命令的输入
在这里插入图片描述
例如我想只查看info.txt中200行到210行的内容,其他内容都给过滤掉,如下图所示:
在这里插入图片描述可以借助管道 | 来实现:

[Assassin@Ninghai temp]$ head -210 info.txt | tail -11

先将info.txt中前210行内容取出,将其结果通过管道传入到tail中,tail -11取出结果的后11行,也就是200-210共11行数据:
在这里插入图片描述

20. date指令:

语法: date [参数] [格式]
功能: 用于显示时间、设置时间、完成时间与时间戳之间的相互转换

%s表示打印出时间戳,date -d @时间戳 可以得到该时间戳对应的时间,%Y表示年份,%m表示月份,%d表示天数,%H表示小时数,%M表示分钟数,%S表示秒数
在这里插入图片描述
%X 相当于%H:%M:%S :
在这里插入图片描述
%F 相当于%Y-%m-%d:
在这里插入图片描述

21. cal指令:

语法: cal [参数] [月份] [年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。

常用选项:

-1单月份输出日历
-3显示最近三个月的日历
-s将星期天作为月的第一天
-m将星期一作为月的第一天
-j显示在当年中的第几天
-y显示当年的日历

① 显示当前月份的日历:
在这里插入图片描述
② 显示近期三个月的日历(当前月,上一个月和下一个月):
在这里插入图片描述
③ 显示指定年月的日历:
比如2021年1月的日历:
在这里插入图片描述

22. find指令:

语法: find [路径] [选项] [查找和搜索的条件]
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘->效率比较低)

常用选项:

-name按名称查找
-size按大小查找
-user按属性查找
-type按类型查找
-iname忽略大小写

① -name 按照文件名查找文件:

[Assassin@Ninghai ~]$ find /home/Assassin/temp -name *.txt

-name 参数 搭配通配符查看在指定目录下的.txt文件:
在这里插入图片描述
② -size 按照文件大小查找文件:
-size 参数查找符合条件的文件,打印出其路径。

+30M意思是大于30M的文件:

[Assassin@Ninghai ~]$ find /home/Assassin/temp -size +30M

在这里插入图片描述
-30M自然是小于30M的文件,30M是查找刚好是30M的文件:

[Assassin@Ninghai ~]$ find /home/Assassin/temp -size -30M

在这里插入图片描述
③ -type 参数,查找指定类型的文件:

[Assassin@Ninghai ~]$ find /home/Assassin/temp -type f 
[Assassin@Ninghai ~]$ find /home/Assassin/temp -type d

-type f 是查找普通文件类型,- type d 是查找文件夹类型:
在这里插入图片描述

23. which指令:

语法: which [命令]
功能: 用于查找某一指令的程序文件所在路径

which一般在PATH中查找,我们所使用的命令行也是放在PATH路径下,添加进PATH的目录下的可执行文件可以直接执行(类比环境变量),不需要额外带路径:

[Assassin@Ninghai ~]$ which ls

在这里插入图片描述
echo 查看一下PATH中有哪些目录:

[Assassin@Ninghai ~]$ echo $PATH

可以看到我们熟悉的/usr/bin添加进了PATH中,而我们常用的shell命令一般都放在/usr/bin中,这也是我们在执行 ls 不需要带路径的原因
在这里插入图片描述
不妨看看 /usr/bin 中的内容:显然是我们所使用的一些命令,如javac,pwd,alias,python等

[Assassin@Ninghai ~]$ ls /usr/bin

在这里插入图片描述

24. alias指令:

语法: alias 别名=‘原名’
功能: 可以用于给指令取别名

alias命令的作用只局限于此次登录的操作,如果想要每次登录都能够使用这些命令别名,则需要将相应的alias命令存放到bash的初始化文件 /etc/bashrc 中

常用选项:

-p打印已经设置的命令别名

① alias 设置别名:

[Assassin@Ninghai ~]$ alias sb='ls -laih'

在这里插入图片描述
② alias -p 查看已经设置好的别名:

[Assassin@Ninghai ~]$ alias -p

在这里插入图片描述

25. grep指令:

语法: grep [参数] [搜寻字符串] [文件]
功能: 在文件中搜索字符串,将找到的行打印出来

常用选项:

-i忽略大小写进行搜索
-n列出所有的匹配行并显示行号
-v显示不包含匹配文本的所有行,反向搜索

① grep 无参数查找:

[Assassin@Ninghai temp]$ grep "忘不了" info.txt

在这里插入图片描述

② -i 忽略大小写进行查找:

[Assassin@Ninghai temp]$ grep "hello" -i test_for_grep.txt 

hello跟Hello都被查找出来:
在这里插入图片描述
③ -n 输出行号:

[Assassin@Ninghai temp]$ grep "忘不了" -n info.txt 

含有 " 忘不了 " 的行数的行号:
在这里插入图片描述
④ -v 反向选择,显示出没有待搜索字符串的行:

[Assassin@Ninghai temp]$ grep "hello" -v test_for_grep.txt

反向搜索,除了hello,其他全部打印出来:
在这里插入图片描述

26. useradd/userdel/groupadd/groupdel指令:

useradd:

[root@Ninghai ~]# useradd meiyangyang

创建用户美羊羊:
在这里插入图片描述
userdel:

[root@Ninghai ~]# userdel -r meiyangyang

删除用户美羊羊,-r 参数是将 /home 中的meiyangyang目录也一并删除: 在这里插入图片描述
groupadd:

[root@Ninghai ~]# groupadd meiyangyang

在这里插入图片描述

[root@Ninghai ~]# cat /etc/group

在这里插入图片描述
groupdel:

[root@Ninghai ~]# groupdel meiyangyang

在这里插入图片描述

[root@Ninghai ~]# cat /etc/group

meiyangyang组已经被删除
在这里插入图片描述

27. zip指令:

语法: zip [参数] [压缩文件.zip] [待打包目录或文件]
功能: 将目录或文件打包压缩成zip格式

zip命令可将一个或多个压缩文件及其有关文件的信息(名称、路径、日期、上次修改的时间、保护和检查信息以验证文件完整性)一起打包进一个压缩存档.zip

常用选项:

-q不显示指令执行过程
-r递归处理,将指定目录下的所有文件和子目录一并处理
-z替压缩文件加上注释
-v显示指令执行过程或显示版本信息

① -r 递归压缩:

[Assassin@Ninghai temp]$ zip -r temp.zip ./*

在这里插入图片描述
生成一个temp.zip文件
在这里插入图片描述

28. unzip指令:

语法: unzip [压缩文件.zip] [参数] [指定目录]
功能: 将压缩文件解压到指定目录当中

常用选项:

-l显示压缩文件内所包含的文件
-v执行时显示详细的信息
-c将解压缩的结果显示到屏幕上,并对字符做适当的转换
-n解压缩时不要覆盖原有的文件
-d指定解压的路径,不指定默认为当前目录

① -d 解压缩到指定路径:

[Assassin@Ninghai temp]$ unzip temp.zip -d ./test

在这里插入图片描述
查看一下test文件夹:
在这里插入图片描述

29. tar指令:

语法: tar [参数] [文件或目录]
功能: 打包/解包,不解开压缩包,直接查看里面内容

tar命令可以为linux的文件和目录创建压缩档案。利用tar可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件

常用选项:

-A新增文件到以存在的备份文件
-B设置区块大小
-c建立新的备份文件
-C <目录>切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于仅压缩特定目录里的内容或解压缩到特定目录
-d记录文件的差别
-x从归档文件中提取文件
-t列出备份文件的内容
-z通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
-Z通过compress指令处理备份文件
-f<备份文件>指定备份文件
-v显示指令执行过程
-r添加文件到已经压缩的文件
-u添加改变了和现有的文件到已经存在的压缩文件
-j通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2
-v显示操作过程
-l文件系统边界设置
-k保留原有文件不覆盖
-m保留文件不被覆盖
-w确认压缩文件的正确性
-p保留原来的文件权限与属性
-P使用文件名的绝对路径,不移除文件名称前的“/”号

① 打包并压缩:

[Assassin@Ninghai temp]$ tar -zcvf temp.tgz ./*

在这里插入图片描述
② 解压缩:

[Assassin@Ninghai temp]$ tar -zxvf temp.tgz -C test

在这里插入图片描述
ls 查看一下 test 中的内容:
在这里插入图片描述
③ 不解开压缩包,直接查看里面内容:

[Assassin@Ninghai temp]$ tar -tf temp.tgz 

在这里插入图片描述

30. file指令:

语法: file [参数] [文件]
功能: 查看文件的更多属性信息

file命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型

file 一般不使用参数,有一说一,参数没啥用,直接file + 文件名就完事

[Assassin@Ninghai temp]$ file procbar.cpp

在这里插入图片描述

31. bc指令:

语法: bc
功能: 进行算数运算

bc即 Binary Calculator ,是一种支持任意精度的交互执行的计算器语言,bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,整数就更不用说了

常用选项:

-i强制进入交互式模式
-l定义使用的标准数学库
-w定义使用的标准数学库
-q打印正常的GNU bc环境信息

① bc交互:
在这里插入图片描述
② 执行浮点运算和一些高级函数:
在这里插入图片描述

32. uname指令:

语法: uname [参数]
功能: 用于获取计算机和操作系统的相关信息

uname命令的英文全称即 Unix name ,用于显示系统相关信息,比如主机名、内核版本号、硬件架构等,如果未指定任何选项,其效果相当于执行 uname -s 命令,即显示系统内核的名字

常用选项:

-a显示系统所有相关信息
-m显示计算机硬件架构
-n显示主机名称
-r显示内核发行版本号
-s显示内核名称
-v显示内核版本
-p显示主机处理器类型
-o显示操作系统名称
-i显示硬件平台

① -a 显示系统主机名、内核版本号、CPU类型等信息:

[Assassin@Ninghai temp]$ uname -a

在这里插入图片描述
② -r 显示当前系统的内核版本:

[Assassin@Ninghai temp]$ uname -r

在这里插入图片描述

33. history指令:

语法: history [参数]
功能: history命令用于显示用户以前执行过的历史命令

history 命令还能对历史命令进行追加和删除等操作

[Assassin@Ninghai temp]$ history 10

显示最近10条执行的记录,不带参数默认把全部信息打印出:
在这里插入图片描述
使用 ! n可以快速执行对应的指令:
例如 ! 1098 直接执行了 ls 命令,另外 !! 双感叹号可执行最近一次的操作:
在这里插入图片描述

34. exit/logout指令:

语法: exit / logout
功能: 退出终端,退出当前登录用户

[Assassin@Ninghai temp]$ exit

exit 与 logout 功能类似,另外 ctrl + D 也可以退出当前登录:
在这里插入图片描述
基本命令就这样,over~

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁海没有七号公园

谢谢你%%%

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值