基本命令¶
本节讨论如何通过命令行完成一些基本操作。
登陆/退出系统¶
回顾虚拟机的使用教程,通过命令行,可以使用以下命令登陆系统。SSH 通过服务器地址 172.0.0.1 和端口 2222 访问系统中的 cs 账户:
ssh cs@172.0.0.1 -p 2222
退出系统可以使用:
exit
重启/关机¶
使用 shutdown 命令可以关闭 Linux 系统。以下命令表示立刻关闭计算机(不加参数 now,则系统将会在 1 分钟后关机):
sudo shutdown now
重启计算机可以使用 reboot 命令。以下命令表示立刻重启计算机:
sudo reboot
reboot 命令等价于 sudo shutdown -r now。其中,参数 now 可以替换成具体时间,比如 sudo shutdown -r +30 表示 30 分钟后重启。
访问路径¶
登陆系统后,默认的位置是个人账户目录,也可以通过系统变量 $HOME 查看:
echo $HOME
在 Linux 系统中,该路径也可以使用 ~ 表示,例如 ~/Desktop 表示 /home/cs/Desktop。
命令 |
用途 |
|---|---|
|
显示当前路径 |
|
切换到个人账户目录 |
|
切换到上级目录 ( |
|
切换到前一步目录 |
定位程序位置¶
当我们执行命令时,系统会根据配置好的路径依次在目录中寻找该命令;如果找不到,则会提示 “not found”。可以通过系统变量 PATH 查看修改查找的路径和顺序。
echo $PATH
根据输出可以看出,路径之间用冒号分隔,查询顺序从左到右依次进行。
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
在执行 hello 程序时,如果不添加 ./ 前缀,则系统会提示找不到 hello 命令,其原因就是 PATH 并不包含当前目录。如果我们将 hello 程序放到 ~/.local/bin 目录下,则可以通过以下命令,将该路径添加到 PATH 变量中。
export PATH=$HOME/.local/bin:$PATH
使用 which 命令可以定位程序的位置,该命令会在系统路径中查找程序的位置并输出,例如
$ which make
/usr/bin/make
如果不局限系统路径,可以使用 whereis 命令扩大搜索范围。
$ whereis diff
diff: /usr/bin/diff /usr/share/man/man1/diff.1.gz
绝对路径 vs 相对路径¶
在 Linux 中定义路径的两种方式:
绝对路径
绝对路径以根路径
/开头,依次跟随目录树分支,定位到需要的位置,例如,/usr/bin。相对路径
相对路径以当前路径开头,
.表示当前目录,..表示上一级目录,~表示个人账户目录。
在个人账户目录中,执行以下命令都会切换到 /usr/bin 目录,
$ pwd
/home/cs
$ cd /usr/bin
$ pwd
/home/cs
$ cd ../../usr/bin
查看文件系统¶
使用第三方工具 tree 可以很方便地浏览文件系统内容,通过以下命令进行安装:
sudo apt install tree
直接使用 tree 命令会递归列出当前路径下所有文件树,通过 -L 指定层级可以指定显示的文件深度:
$ tree -L 1
.
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── Public
├── snap
├── Templates
└── Videos
其他一些常用命令也可以实现类似目的:
命令 |
用途 |
|---|---|
|
列出当前目录内容 |
|
列出当前目录内容,包含 |
|
以列表形式列出当前目录内容 |
练习¶
使用
whereis命令定位gcc程序的位置显示当前路径
切换到
/usr/bin目录切换到个人账户目录
切换到上一级目录
使用
-参数切换到前一步目录显示当前路径