missing-semester————1

文章目录

  • shell概述
  • echo
  • shell如何知道去哪寻找`date`或`echo`呢?
  • $PATH
  • ls
  • man
  • 根用户

shell概述

root1@test:~$ 

$表示身份不是root用户
~表示当前所在位置是"home"


root1@test:~$ date
Sat Jul  8 02:57:44 UTC 2023

输入命令,会被shell解析
上述执行date程序,打印出了当前的日期和时间


echo

可以在执行命令的同时向程序传递参数

root1@test:~$ echo hello
hello

上述,让shell执行echo,同时指定参数hello,echo程序将参数打印出来

shell基于空格分割命令进行解析,然后执行第一个单词代表的程序,并将后续的单词作为程序可以访问的参数。

如果希望传递的参数中包含空格,要么用单引号,双引号包裹起来,要么使用转义符号\进行处理

shell如何知道去哪寻找dateecho呢?

类似于python或ruby,shell是一个编程环境,具备变量、条件、循环和函数。
在shell执行命令,实际上是在执行一段shell可以解释执行的简短代码。
如果要求shell执行某个指令,但该指令并不是shell所了解的编程关键字,它会去咨询环境变量$PATH,列出shell接到某条指令时,进行搜索的路径

$PATH

root1@test:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
root1@test:~$ which echo
/usr/bin/echo
root1@test:~$ /usr/bin/echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

执行echo命令时,shell会在$PATH中搜索由:分割的一系列目录,基于名字搜索该程序。找到该程序时便执行。

确定某个程序名代表的是哪个具体的程序,可以使用 which 程序。


ls

路径/代表根目录
.代表当前目录
..代表上一级目录


ls命令可以查看指定目录下包含哪些文件,没有指定默认是当前目录

-h--help可以帮助打印程序的帮助信息

ls -l 可以打印详细信息

root1@test:~$ ls -l /home
drwxr-xr-x 3 root1 root1 4096 Jun  3 08:15 root1

d表示是一个目录,
接下来九个字符,每三个构成一组,分别代表文件所有者,用户组,以及其他所有人 具有的权限

r读权限(对于文件夹,可以列出里面的文件)
w修改权限(对于文件夹,添加、删除里面的文件)
x可执行(对于文件夹,对该文件夹以及父文件夹的搜索权限)
-代表不具有相应的权限

其他命令:
mv重命名或移动文件
cp拷贝文件
mkdir新建文件夹

man

想要知道程序参数,输入输出信息,或者了解它们的工作方式,可以使用man程序,可以将指定的程序的文档展示出来,使用q退出程序

man ls

missing-semester————1_第1张图片

shell 中,程序有两个主要的“流”:它们的输入流和输出流。

当程序尝试读取信息时,它们会从输入流中进行读取,当程序打印信息时,它们会将信息输出到输出流中。

最简单的重定向是 < file > file。这两个命令可以将程序的输入输出流分别重定向到文件。

>>可以向一个文件追加内容

root1@test:~$ echo hello > hello.txt
root1@test:~$ cat < hello.txt 
hello
root1@test:~$ cat < hello.txt > hello2.txt
root1@test:~$ cat hello2.txt 
hello
root1@test:~$ echo hello >> hello2.txt 
root1@test:~$ cat hello2.txt 
hello
hello

使用管道(pipes),能够更好地利用文件重定向。
|允许将一个程序的输出和另外一个程序的输入连接起来。

root1@test:~$ ls -l / | tail -n1
drwxr-xr-x 11 root root  4096 May 15 04:23 var

根用户

root user
根用户几乎不受任何限制,他可以创建、读取、更新和删除系统中的任何文件。

在需要的时候使用 sudo 命令。
它的作用是可以以 su(super user 或 root 的简写)的身份执行一些操作。

你可能感兴趣的:(#,shell)