前言
什么是 Linux
Linux 是一个操作系统, 和 Windows 是 “并列” 的关系, 其实手机上的安卓系统就是 Linux.
我们日常使用的电脑都是 Windows 为主, 也有 mac 的.
Linux 的市场份额是比 Windows 更多的.
Linux 使用场景 :
- 服务器
- 嵌入式设备
- 移动端(手机)Android
Linux 准确来说是一个 “统称”, 或者可以认为是一个 “操作系统内核”.
一个完整的操作系统 = 操作系统内核 + 配套应用程序
于是有很多企业/组织, 基于 Linux 内核搭载不同的应用程序, 从而诞生了很多不同的 “操作系统”. 如下 :
我们使用的是基于 redhat 的社区免费版本 Centos
获得 Linux 环境
学习 Linux 首先得有一个 Linux 环境.
推荐大家买个云服务器, 最近阿里也在搞活动, 送几个月呢, 我这里使用的也是阿里送的云服务器.
买完服务器后就得到三个重要信息 :
- 服务器的外网 ip
- 服务器的管理员账号 (固定为 root)
- 管理员账户密码 (在阿里云网站上设置)
上述三个信息是我们登录 Linux 的关键.
接下来就是使用终端软件来连接 Linux 了, 常见的终端软件有 :
XShell, Putty, MobaXTerm, Iterm2 等等, 我这里使用的是 XShell.
下载好 XShell 后就可以与云服务器建立连接了.
- 点击文件
- 新建
- 输入一个名称, 然后输入服务器的外网 ip.
- 点击连接. 之后就是输入用户名和密码了.
连接成功后就是这样了 :
解释一下含义 :
root 是当前用户名
@ 是分隔符
iZ2vch4gaxbeiyox9kxkanZ 是主机名
~ 表示当前所在目录 (~ 在Linux中有特殊含义, 表示 home 目录, 是用户存放数据的目录)
#表示当前身份是管理员 ($ 表示普通用户)
为啥 ~ 表示 home 目录呢 ?
这个是因为早期键盘的 ~键 和 home键 是同一个按键.
为什么使用命令控制
为什么使用 Linux 是使用命令进行操作的呢 ?
既然和 Windows 并列, 那为啥不像 Windows 一样使用图形化的界面 ?
首先, Linux 是有图形化界面的, 但是我们实际工作中一般都不会使用.
图形化优势 : 简单易上手.
Linux 图形化界面是比较糟糕的, 非常简陋, bug多.
命令行优势 : 高效, 准确, 是生产力工具.
- 带宽占用非常低
- 系统资源占用也非常低
- 命令行适合使用脚本来实现批量的重复性的操作.
关于 XShell 下的复制粘贴
复制: ctrl + insert (笔记本的 insert 需要配合 fn 来按)
粘贴: shift + insert
ctrl + c / ctrl + v 是不行的.
按 crtl + l 是清屏.
Linux 常用命令
ls (罗列文件)
list 列出当前 目录 / 指定目录 包含哪些文件.(类似于双击目录)
可看到我这里在 home 目录下有三个文件, 其中蓝色代表目录, 白色代表普通文件.
该目录下, 本来是没有文件的, 都是自己创建的.
ls 后面跟上一个具体目录, 就可以查看指定目录的内容.
这里 / 表示根目录, 对比 Windows 就是 “此电脑”, 云服务器上任何一个文件都是从属于根目录的.
此处效果和直接敲 ls 是一样的, 因为 root 用户的 home 目录就是 /root, 也就是我们以 root 身份登录后, 默认所在目录. /root 目录就是 root 用户的 ~ 目录.
使用 ls -l 就可以看到目录中的细节了.
因为我们使用 ls -l 操作很频繁, 所以 Linux 提供了 ll 操作, 相当于 ls -l.
-l 叫做 “命令行参数”, 当然还有其他命令行参数 :
参数和参数在之间至少用一个空格来分割. (除了 -l, 其他命令行参数都用的较少)
cd (切换目录)
change directory 的缩写, 也就是切换目录.
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件.
cd 后面跟上要切换的目录路径 (绝对路径和相对路径都可)
Linux 中, 绝对路径是 / 开头的, 相对路径是以 ./ , …/ 开头的, 其中./ 可以省略.
可以看到, 当前目录由 ~, 变为了 /
注意下面操作下的目录变化 :
如果直接 cd 后面不接什么, 则是直接回到 home 目录.
cd 和 ls 整个 Linux中最常用的两个命令.
pwd (显示当前路径)
pwd 是防止用户迷路的, 有时候用户 cd 太多了, 把自己也绕晕了, 这时候敲 pwd 显示当前完整路径.
就像点击 Windows 文件上的路径一样.
touch (创建一个空文件)
创建一个 333.txt 文件 :
可以看到该文件大小为0, 是个空文件.
cat (读取文件内容)
cat 对简单短小的文件读取效果好, 如果文件大了, 很长, 那 cat 就不方便.
如果文件大小为零, 即使 cat 了, 也不会有内容.
有时候输入的文件名很长, 就可以打出前几个字母, 然后按 tab 就可以补全了.
man (查看用户手册)
如果我们想具体了解某个命令的用法, 就可敲 man 指令, 如 : man cat
输入回车后, 就会跳转到用户手册, 退出按 q.
echo (回显)
echo 意思是回显, 我们可以在命令中输入要显示的内容, 然后回车就会显示出该内容.
当然, 我们也可以用来写文件 :
这里要注意, 每次写文件的时候, 都会清空原有内容.
总结 : echo 和 cat 这样的命令, 只是适合对简单文件进行操作.
如果文件复杂, 或者文件编辑需求复杂, 那就不适合了.
其实 echo 和 cat 指令很有用, 比如 : 当我们使用脚本批量处理很多简单操作的时候.