Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触 Linux 机会相对较少,因此往往容易忽视它。但是学好它却是程序员必备修养之一。
什么是Linux
Linux 系统内核与 Linux 发行套件的区别
-
Linux 系统内核指的是由 Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
-
Linux 发行套件系统是我们常说的 Linux 操作系统,也即是由 Linux 内核与各种常用软件的集合产品。
总结:真正的 Linux 指的是系统内核,而我们常说的 Linux 指的是“发行版完整的包含一些基础软件的操作系统”。
Linux 对比 Windows
-
稳定且有效率;
-
免费(或少许费用);
-
漏洞少且快速修补;
-
多任务多用户;
-
更加安全的用户与文件权限策略;
-
适合小内核程序的嵌入系统;
-
相对不耗资源。
Linux 系统种类
-
红帽企业版 Linux :RHEL 是全世界内使用最广泛的 Linux 系统。它具有极强的性能与稳定性,是众多生成环境中使用的(收费的)系统。
-
Fedora :由红帽公司发布的桌面版系统套件,用户可以免费体验到最新的技术或工具,这些技术或工具在成熟后会被加入到 RHEL 系统中,因此 Fedora 也成为 RHEL 系统的试验版本。
-
CentOS :通过把RHEL 系统重新编译并发布给用户免费使用的 Linux 系统,具有广泛的使用人群。
-
Deepin :中国发行,对优秀的开源成品进行集成和配置。
-
Debian :稳定性、安全性强,提供了免费的基础支持,在国外拥有很高的认可度和使用率。
-
Ubuntu :是一款派生自 Debian 的操作系统,对新款硬件具有极强的兼容能力。Ubuntu 与 Fedora 都是极其出色的 Linux 桌面系统,而且 Ubuntu 也可用于服务器领域。
终端连接阿里云服务器
通过执行 ssh root@121.42.11.34 命令,然后输入服务器连接密码就可以顺利登录远程服务器。从现在开始我们就可以在本地电脑操作远程服务器。
-
这个黑色的面板就是终端也就是 Shell (命令行环境)。
-
ssh root@xxx 这是一条命令,必须要在 Shell 中才能执行。
Shell
Shell 这个单词的原意是“外壳”,跟 kernel(内核)相对应,比喻内核外面的一层,即用户跟内核交互的对话界面。
-
Shell 是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境( command line interface ,简写为 CLI )。Shell 接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户。
-
Shell 是一个命令解释器,解释用户输入的命令。它支持变量、条件判断、循环操作等语法,所以用户可以用 Shell 命令写出各种小程序,又称为 Shell 脚本。这些脚本都通过 Shell 的解释执行,而不通过编译。
-
Shell 是一个工具箱,提供了各种小工具,供用户方便地使用操作系统的功能。
Shell 的种类
Shell 有很多种,只要能给用户提供命令行环境的程序,都可以看作是 Shell 。
历史上,主要的 Shell 有下面这些:
-
Bourne Shell(sh)
-
Bourne Again shell(bash)
-
C Shell(csh)
-
TENEX C Shell(tcsh)
-
Korn shell(ksh)
-
Z Shell(zsh)
-
Friendly Interactive Shell(fish)
其中 Bash 是目前最常用的 Shell 。MacOS 中的默认 Shell 就是 Bash 。
通过执行 echo $SHELL 命令可以查看到当前正在使用的 Shell 。还可以通过 cat /etc/shells 查看当前系统安装的所有 Shell 种类。
命令
命令行提示符
进入命令行环境以后,用户会看到 Shell 的提示符。提示符往往是一串前缀,最后以一个美元符号 $ 结尾,用户可以在这个符号后面输入各种命令。
执行一个简单的命令 pwd:
[root@iZm5e8dsxce9ufaic7hi3uZ ~]# pwd
/root
命令解析:
-
root :表示用户名;
-
iZm5e8dsxce9ufaic7hi3uZ :表示主机名;
-
~ :表示目前所在目录为家目录,其中 root 用户的家目录是 /root 普通用户的家目录在 /home 下;
-
# :指示你所具有的权限(root 用户为 # ,普通用户为 $ )。
-
执行 whoami 命令可以查看当前用户名;
-
执行 hostname 命令可以查看当前主机名;
关于如何创建、切换、删除用户,在后面的用户与权限会具体讲解,这里先使用 root 用户进行演示。
[备注] root 是超级用户,具备操作系统的一切权限。
命令格式
command parameters(命令 参数)
长短参数
单个参数:ls -a(a 是英文 all 的缩写,表示“全部”)
多个参数:ls -al(全部文件 + 列表形式展示)
单个长参数:ls --all
多个长参数:ls --reverse --all
长短混合参数:ls --all -l
参数值
短参数:command -p 10(例如:ssh root@121.42.11.34 -p 22)
长参数:command --paramters=10(例如:ssh root@121.42.11.34 --port=22)
快捷方式
在开始学习 Linux 命令之前,有这么一些快捷方式,是必须要提前掌握的,它将贯穿整个 Linux 使用生涯。
-
通过上下方向键 ↑ ↓ 来调取过往执行过的 Linux 命令;
-
命令或参数仅需输入前几位就可以用 Tab 键补全;
-
Ctrl + R :用于查找使用过的命令(history 命令用于列出之前使用过的所有命令,然后输入 ! 命令加上编号( !2 )就可以直接执行该历史命令);
-
Ctrl + L :清除屏幕并将当前行移到页面顶部;
-
Ctrl + C :中止当前正在执行的命令;
-
Ctrl + U :从光标位置剪切到行首;
-
Ctrl + K :从光标位置剪切到行尾;
-
Ctrl + W :剪切光标左侧的一个单词;
-
Ctrl + Y :粘贴 Ctrl + U | K | Y 剪切的命令;
-
Ctrl + A :光标跳到命令行的开头;
-
Ctrl + E :光标跳到命令行的结尾;
-
Ctrl + D :关闭 Shell 会话;