贡献者: addis; phlins
虽然大多数人更熟悉 Windows 系统,但由于 Linux 系统的免费、开源、稳定,许多科学计算软件都是主要支持 Linux,而许多研究组的服务器和计算机集群也已 Linux 系统为主。所以小时百科的科学计算部分大量使用 Linux 作为编译和运行程序的环境。注意本文只介绍 Linux 的终端(terminal)操作,不涉及任何图形界面(User Interface,UI)。
严格意义上,Linux 并非完整的操作系统,而只是一个系统内核(kernel)。用户往往使用的是 Linux 的发行版(distribution),比如 Ubuntu、Debian、Redhat、CentOS、Fedora、Arch、Deepin(国产)等。除 Linux 系统内核外,这些来自开发者社区的发行版还拥有 GNU 工具、附加软件和软件包管理器,大部分也有美观的图形界面(Linux 的图形界面支持并不如 Windows 或 macOS 那么成熟,历史更短)。但使用这些操作系统大同小异。如果把 Linux 系统内核比喻为发动机引擎,那么发行版就是可以上路的汽车。
我们选用 Ubuntu 进行介绍。
如果你的电脑已经有了 Windows 系统,使用 Linux 命令行可以有以下几种方式:
其中前 4 种方案可以在使用 Windows 的同时使用 Linux 命令行(注意:使用虚拟机会占用较多硬件资源,可能导致电脑卡顿),而双系统方案一次启动只能进入一个系统。
在 Windows 下要远程连接到另一台装有 Linux 系统的电脑,可以使用:
使用终端对计算机进行操作,并不像大多数人想象的一样困难。
一般来说,一条命令的构成是这样的:
command \space [-options] \space parameter...~
命令的开头,我们输入命令的名称或者可运行的文件名。Linux 是大小写敏感的,即 cd 命令不能写成 CD。随后,我们附带上命令的选项及其参数,用空格加以区分。选项使用简称,一般加一个连字符-;选项使用全名,一般加两个连字符--(比如-h 和--help)。
当命令输入完成后,按 Enter 键,命令就会运行。初学者可以尝试输入 date,系统会输出日期。
暂时先列出最基础的命令行命令,请自行搜索学习
pwd
当前目录
ls
查看某目录的文件(-v
序号排序)
cd
改变当前目录
mkdir
创建目录(-p
创建多层)
rmdir
删除目录
cp
复制文件(夹)
mv
移动文件(夹)
touch
创建空文件或更改文件日期
rm
删除文件或文件(夹)
man
,--help
echo
重复文字
>, <
和 |
cat
显示文本文件内容
vim
编辑文本文件
sudo
超级管理员权限
du
,df
文件(夹)大小,硬盘容量
top
进程管理,资源占用
free
检查内存
tar
,zip
压缩与解压
ln -s
符号链接(类似 windows 的快捷方式)
uname
系统信息
apt-get
安装软件
wget
通过 url 下载文件
chmod
修改文件权限
chown
修改文件所有者
hostname
,hostname -I
本机名称,IP 地址
ping
检查是否可以连接到网络地址
reboot
重启
ssh
远程命令行。ssh-keygen
,ssh-copy-id
sftp
远程传文件
find
搜索文件或目录 -exec
对搜索结果执行命令
grep
搜索字符串或文件内容
locate
搜索计算机的文件
nohup
不挂起,即退出终端不会影响程序的运行
&
后台运行命令
Ctrl+R
可以搜索命令历史,再次按下 `Ctrl+R` 可以跳到上一个匹配命令,按回车运行,按左右键编辑
Ctrl+C
种植正在运行的程序
Ctrl+Z
可以暂时暂停当前 shell 运行的程序,然后按 fg
(foreground)可以恢复,bg
(background)可以在后台继续运行(相当于 &
)但退出 shell 后该程序仍然会退出。
..
sed
dd
硬盘读写,如创建随机文件,全 0 文件。
tree
显示文件结构
sha1sum
,md5sum
等指纹
rsync
(若文件中含有转义字符需要三个反斜杠 \\\
)
sshfs
基于 ssh 的远程文件夹
split
切割文件
LVM
make
gcc
g++