基本命令#
本节讨论如何通过命令行完成一些基本操作。
登陆/退出系统#
回顾虚拟机的使用教程,通过命令行,可以使用以下命令登陆系统。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
目录切换到个人账户目录
切换到上一级目录
使用
-
参数切换到前一步目录显示当前路径