Course overview + the shell
Course overview + the shell
Shell的实质
Shell本是一个类似于Pyhton的编程环境,包括变量、条件、循环、函数...
在执行Shell命令时,若不是Shell所规定的关键字时,便会去$PATH
中查询,基于名字搜索,搜索到了之后便会执行该程序
$PATH
:环境变量
查看$PATH
echo $PATH
每一个$PATH
环境用:
分隔
查看某程序所属$PATH
,以echo
为例
which echo
此时可以看到echo
属于/usr/bin/
这个环境变量
知道了程序的绝对路径可以绕过$PATH
直接执行
/usr/bin/echo "Hello world"
路径
- 绝对路径
以/
开头的就是绝对路径,他是一个文件的完整名称
上一小节的/usr/bin/echo
就是一个绝对路径
查看当前目录的绝对路径
pwd
- 相对路径
相对路径就是相对于当前目录的路径
当我处于/home/learn
目录中时,使用ls
命令查看当前目录的内容
ls
此时我可以直接进入或使用文件,而不是使用绝对路径
cat /home/learn/last-modified.txt //绝对路径
cat last-modified.txt //相对路径
在路径中,.
代表当前目录,..
代表上一级目录
退出到上一级目录
cd ..
文件操作
- 复制
例:
将file
复制到/tmp
目录中
cp file /tmp
- 移动
例:
将file
移动到/tmp
中
mv file /tmp
- 重命名
例:
将file
重命名为filename
mv file filename
- 创建目录
例:
创建一个名为dic
的目录
mkdir dic
- 创建文件
例:
创建一个file
文件
touch file
权限
查看当前目录下所有文件或目录权限
ls -l
以Desktop
目录为例
drwxr-xr-x 3 learn learn 4096 Nov 13 12:06 Desktop
以空格为分隔符,第一组就是该文件或目录的权限
第一个d
代表类型为目录
后面九个字符,每三个一组,都按rwx
的顺序排列
r
:读取,w
:写入,x
:可执行
-
则代表不具备该权限
第一组代表所属用户权限
第二组代表所属组权限
第三组代表其他用户权限
中间的两个learn
代表所属用户和所属组
分析上述Desktop
目录的权限
- 是一个目录
- 所属用户具有读取、写入、执行权限
- 所属组具备读取、执行,但不具备执行权限
- 其他用户具备读取、执行,但不具备执行权限
man
如果想了解一个程序的具体使用方法可以使用man
程序
man ls
列出了使用语法及其配套参数
输入输出流
输入流:< file
输出流:> file
输出流
将原本输出到屏幕上的内容,输出到file.txt
echo "Hello world" > file.txt
还有一种>>
的输出方式
>
是直接覆盖
>>
是追加
输入流
使用输入流读取文档
cat < file.txt
cat file.txt和cat < file.txt的区别
cat file.txt
是cat
将file.txt
作为参数,直接输出其内容
cat < file.txt
是由shell
先打开,并将其内容重定向到cat
的标准输入(stdin)
相比cat file.txt
,cat < file.txt
多了一步由shell
打开
管道符(pipes)
将管道符左边的输出,作为管道符右边的输入
ls -l | tail -n1
分解命令
管道符左边打印当前目录下文件的详细信息
管道符右边取最后一行
组合命令
得到当前目录下最后一个文件的详细信息
Root
root
用户,就是超级用户,相当于Windows
中的Administrator
可以创建,修改,删除任何文件
日常使用中一般不会直接使用root
用户,而是使用sudo
apt-get update
使用这条命令时,提示我不能打开一些文件
当我使用sudo配上这条命令,就拥有了root
用户的权限,即可执行这条命令
sudo apt-get update
登录root
用户
su root
第一次登录root
用户时不需要登陆密码
登陆成功后使用passwd
命令设置密码