missing-semester(1)-shell

missing-semester(1)-shell
Holishell基本使用
如果需要同时输入多个argument,那么如下两种表达是等价的:
$ echo Hello\ World
$ echo "Hello World"
机器有其自身的内置函数,这些内置函数是终端系统可以直接执行的,机器通过环境变量来定位这些内置函数的位置。如下操作可以显示环境变量的位置:
$ echo $PATH
在每次执行一次shell指令时,终端都会在上述路径中搜索是否存在对应的函数。linux系统的namespace(路径的根源)一般只有一个,就是root,但是Windows一般有多个Driver作为路径根源。
显示当前工作路径位置(present working directory):
$ pwd
改变当前工作位置(change directory):
$ cd xxx
$ cd - %回到上一次所在的位置
如果环境变量中缺少你想要执行的指令所在的位置,那么可以在执行命令时直接指定其具体位置。
显示当前所在位置的所有文件(list d):
$ ls
指令一般可以接受flags(开关)或者options(选择),可以指定一些额外的操作信息,可以用如下方式进行查看:
$ [指令] --help
使用如下指令后可以看到文件的具体信息:
$ ls -l
drwxr-xr-x 1 missing users 4096 Jun 15 2019 missing
一些关于上述文件的具体信息:
d
开头表示missing
是文件夹- 每3个字符构成的3个组
rwx
用来依次表示文件所有者、用户组(users)以及其他所有人依次所具有的权限 -
表示某种类型的用户不具备相应的权限- 上述信息表明只有文件所有者可以修改,其他用户只可以阅读或者执行
还有一些常用指令:
$ mv [旧名字] [新名字] %对文件进行重命名
$ cp [原位置] [新位置] %对文件进行复制
$ rm [文件位置] %对文件进行删除
$ rmdir [文件夹] %仅用于空文件夹的清除
$ mkdir [文件夹名] %用于文件夹创建
$ man [指令或程序] %显示程序的用户手册,按下q来退出
$ ^L %清空终端,回到最上部分
建立程序间的连接
指令一般都有输入流和输出流,最基本的输入流就是键盘,最基本的输出流就是终端。
$ < file %将file的内容作为输入流
$ > file %将输出流写入file(覆写)
$ echo hello > hello.txt %文件中的内容就是hello
$ cat hello.txt %输出文件内容到终端
$ cat < hello.txt %将hello.txt中内容作为cat的输入流
$ cat < hello.txt > hello2.txt
$ >> file %将新信息添加到file中,而不是覆写
$ | %pipe, 将左边程序的输出作为右边程序的输入
$ ls -l / | tail -n1 %罗列/下的详细文件信息,给到右侧程序,右侧程序筛选出最后1条
$ ls -l / | tail -n1 > ls.txt
$ curl --head --silent google.com | grep -i content-length | cut --delimiter=' ' -f2
事实上可以通过简单的pipe来实现个人媒体直播,将自己的本地文件作为左侧程序,右侧程序则是向互联网发送数据。
root用户
有时候需要作为root用户执行指令
$ sudo [指令] %su意思是super
通过如下操作可以进入机器的内核系统,可以看到众多的内核参数,看起来就像文件系统一样:
$ cd /sys %进入内核
$ cd class
$ cd backlight
$ echo 500 > brightness %无法执行,需要root权限
$ sudo echo 500 > brightness %仍然无法执行,因为sudo事实上只作用于echo,而没有作用于整个重定向
# echo 1 > /sys/net/ipv4_forward %加上井字号pound意味着要以root权限来执行该程序,这区别于美元符号
$ sudo su %执行该命令来切换为root权限
# exit %退出root权限
$ echo 500 | sudo tee brightness %如果不切换为root权限,也可以使用这个命令来修改机器背景光,tee可以读取输入流来写入文件
如下命令可以打开文件:
$ xdg-open [文件名]
评论
匿名评论隐私政策