MIT-Missing-Semester(缺失的学期),shell有趣的使用

课程地址:https://missing.csail.mit.edu/2020

命令

man [其他的命令]:该命令可以使用其他命令作为参数,打开参数命令的使用手册

cat [文件路径]:从头开始查看文件的内容

sudo:以root用户的身份执行某些命令

sudo su:在普通用户模式下执行,可以切换到root用户

tee命令:一般来说我们去修改一些内核参数的时候,非root用户是修改不了的,即使是sudo命令也会被提示没有权限修改文件,这是要么进入root用户模式,或者使用tee命令,tee在普通用户模式下也被运行操作系统内核文件的参数,tee也是一个标准输出流,它一般用于日志的输出。所以我们执行sudo tee 文件名,也可以达到修改内核参数的效果

快捷键

ctrl + L :清屏

输入输出流

< file:表示将文件的内容输入到程序中

> file :将前面程序的输出内容输入到文件中

例如

[root@localhost home]# echo hello > hello.txt
[root@localhost home]# ls
hello.txt
[root@localhost home]# cat hello.txt 
hello
[root@localhost home]# cat < hello.txt 
hello

表示将hello文件的内容作为输入流,输入到程序中,并且使用cat捕获了输入流并输出,作用直接使用cat 文件名 的作用是一样的

[root@localhost home]# cat < hello.txt > hello2.txt
[root@localhost home]# cat hello2.txt 
hello

首先看cat < hello.txt表示cat捕获输入流的内容,并且将这个输入流中的内容整体使用输出流输出到新的文件中> hello2.txt。于是在shell中是不会打印输入流中的内容的。

追加内容

单个>表示覆盖内容,使用>>表示向文件中追加内容,例如

[root@localhost home]# cat < hello.txt >> hello2.txt
[root@localhost home]# cat hello2.txt 
hello
hello

管道符

管道符可以将左边程序的输出结果作为参数给右边程序用来执行

例如打印筛选

[root@localhost home]# ls -l / | tail -n1
drwxr-xr-x.  19 root root  267 222 02:08 var
[root@localhost home]# ls -l / | tail -n1 > ls.txt
[root@localhost home]# cat ls.txt 
drwxr-xr-x.  19 root root  267 222 02:08 var

选出最后一行作为输出结果,更有意思的是,你还可以将这个输出结果用输出流输出到文件中去

sys目录

该目录可以让用户以文件系统的方式访问各种内核参数,但是普通用户只能查看无法修改,一旦修改会被提示权限不足而被拒绝访问

练习

  1. touch创建文件,空格分隔会分别创建文件而不是使用空格作为分隔符的单个文件,需要创建使用空格作为分隔的复杂文件名的文件可以使用双引号包裹文件名。
  2. 单引号可以被绝对定义为字符串,但是双引号可能会会被转移字符转义。
  3. 当一个文件不具备任何扩展名时,shell解释器是无法判断该使用什么程序来运行它,这时候想要运行它可以手动指定sh解释器运行sh 文件名

你可能感兴趣的:(笔记,linux,bash)