linux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代腾讯一样,想想而已基本不可能,因为用户已经习惯于使用微信交流,不是说技术上实现不了解而是老百姓已经习惯了,想让他们不用,即使他们自己不用亲戚朋友还是要用,没有办法的事情。
用习惯了windows操作系统,再让大家切换到别的操作系统基本上是不可能的事情,改变一个人已经养成的习惯太难。没有办法深入到普通老百姓的生活中,并不意味着linux就没有用武之地了。在服务器端,在开发领域linux倒是越来越受欢迎,很多程序员都觉得不懂点linux都觉得不好意思,linux在开源社区的地位依然岿然不动。
尤其是作为一个后端程序员,是必须要掌握Linux的,因为这都成为了你找工作的基础门槛了,所以不得不学习!
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。
Linux 的安装,安装步骤比较繁琐,现在其实云服务器挺普遍的,价格也便宜,如果直接不想搭建,也可以直接买一台学习用用!
安装CentOS(虚拟机安装,耗资源)
1、可以通过镜像进行安装!
2、可以使用我已经制作好的镜像!视频中讲解了该种方式!
3、安装 VMware 虚拟机软件,然后打开我们的镜像即可使用!
购买云服务器
虚拟机安装后占用空间,也会有些卡顿,我们作为程序员其实可以选择购买一台自己的服务器,这样的话更加接近真实线上工作;
1、阿里云购买服务器:https://www.aliyun.com
2、购买完毕后,获取服务器的ip地址,重置服务器密码,就可以远程登录了
3、下载 xShell 工具,进行远程连接使用!连接成功效果如下:
注意事项:
如果要打开端口,需要在阿里云的安全组面板中开启对应的出入规则,不然的话会被阿里拦截!
linux 没有输出 代表成功
登录系统后,在当前命令窗口下输入命令:ls / 查看所有目录
树状目录结构:(Linux的一切资源都挂载在这个 / 根节点下)
- /bin: 存放二进制可执行命令
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev : 存放外部设备特殊文件
- /etc: 系统管理和配置文件
- /home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
- /lib: 这个目录里存放着系统最基本的动态连接共享库,作用类似windows里的.dll文件
/sbin 超级管理命令,这里存放的是系统管理员使用的管理程序
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root: 该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin: s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /srv: 该目录存放一些服务启动之后需要提取的数据。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /tmp: 这个目录是用来存放一些临时文件的。
- /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run: 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
- /www : 存放服务器网址相关的资源,
主要的目录
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
白色 文件,例如 hello.md hello.py hello.txt等类型的文件
蓝色 目录
绿色 可执行文件
红色 压缩文件
浅蓝 链接文件
灰色 其他文件
红色 文件有问题
黄色 设备文件、block、char、fifo
绿色背景 文件夹
不管是重启系统还是关闭系统,首先要允许sync命令,把内存中的数据写道磁盘中.
sync # 将数据由内存同步到硬盘中
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档
shutdown -h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown -h now # 立即关机
shutdown -h 20:35 # 系统会在今天20:25关机
shutdown -h +10 # 十分钟后关机
shutdown -r row # 立即重启
shutdown -r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown -r row
halt # 关闭系统,等同于shutodwn -h now 和 poweroff
man 查看使用文档
--help 查看帮助文档
cd # 切换目录
cd .. # 返回上一级
cd ./ # 当前目录
cd ~ # 换到当前用户目录
clear # 清屏
pwd # 查看当前用户所在目录
ls # 列出所有目录
ls -a # all 查看全部的文件,包括隐藏文件
ls -l # list 列出所有的文件,包含文件属性和权限,没有隐藏文件
ls -al # 理出所有文件 包含隐藏文件
rm # 移除文件或者目录
rm -f # 忽略不存在的文件,不会出现警告,强制删除!
rm -r # 递归删除目录!
rm -i # 互动,询问是否删除
rm -rf # 强制递归删除 不询问
mv 文件 位置 # 移动(剪切)文件或者目录| 如果文件名一直 === 重命名
mv -f # 强制
mv -u # 只替换已经更新过的文件
mv -i # 若目标文件已经存在时,就会询问是否覆盖
mv 文件名 文件名 # 重命名文件夹
mkdir [目录名] # 创建目录
mkdir -p [目录名]/[目录名] # 递归创建
rmdir [目录名] # 删除空目录
rmdir -p [目录名]/[目录名] # 递归删除
cp 原来的地方 新的地方 # 拷贝文件 如果文件重复 选择覆盖或放弃
touch [文件] # 创建文件
Linux系统中使用以下命令来查看文件的内容:
# 读文章、配置文件都使用cat tac命令
cat [文件] # 从第一行开始显示
tac [文件] # 从最后一行开始显示 倒序查看
nl [文件] # 从第一行开始显示,输出时显示行号
more [文件] # 分页显示 (空格翻页,回车滚动页面)
more :f [文件] # 分页,行号显示
less [文件] # 它可以往前翻页!(空格翻页,上下键代表翻动页面!退出 q)
head -n 20 # 前20行
tail -n 20 # 后20行
# 相关属性
/ # 向下查询字符串
? # 向上查询字符串
n # 向下寻找
N # 向上寻找
q # 退出
回车 # 逐步查看
空格 # 翻页查看
上下键 # 上下翻滚
-n # 参数来控制显示几行
cd /etc/sysconfig/network-scripts/ifcfg-nth33 # 网络配置目录
cd /etc/sysconfig/network-scripts/ifcfg-nth0 # 网络配置目录
ifconfig # 查看网络配置
ip addr # 查看网络配置
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
vim 则可以说是程序开发者的一项很好用的工具。
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
vim键盘图:
命令模式(Command mode) # 用户刚刚启动 vi/vim,便进入了命令模式。
- : # 切换到底线命令模式,以在最底一行输入命令。
- i # 切换到输入模式,以输入字符
- u # 重复动作
- 数字 空格 # 横向快捷切换光标,数字w+空格
- 数字 回车 # 纵向快捷切换关闭,数字+回车
- /word # 搜索
- n,N # 向下搜索 向上搜索
- G,g # 跳到文件最后一行/第一行
输入模式(Insert mode) # 在命令模式下按下i就进入了输入模式。
- enter # 回车键,换行
- back space # 退格键,删除光标前一个字符
- del # 删除键,删除光标后一个字符
- 方向键 # 在文本中移动光标
- home end # 移动光标到行首/行尾
- Page Up/Page Down # 上/下翻页
- insert # 切换光标为输入/替换模式,光标将变成竖线/下划线
- esc # 退出输入模式,切换到命令模式
底线命令模式(Last line mode) # 在命令模式下按下:(英文冒号)就进入了底线命令模式。
- :w # 保存
- :q # 离开
- :wq # 存储后离开
- :wq! # 强制存储后离开
- :set nu # 显示行号
- :set nonu # 取消行号
简单的说,我们可以将这三个模式想成底下的图标来表示:
完整演示说明: 新建或者编辑文件 → i 键 进入编辑模式 → 编写内容 → 退出编辑模式 → esc → 进入底线命令模式:wq保存退出!