本文概览
- 本文主要对linux 有一定了解的人,作为基础巩固的部分
2.本文目录
心得和总结
- 保持冷静的心态很重要,如果你心浮气躁,那么我建议你去喝杯茶,休息冷静下,因为浮躁的你就算找到了一篇有解决方案的文章,你也很难沉下心来,一步一步去试。
- Linux 安装软件,你需要知道的知识包括,文件系统,软件包知识,系统(进程,服务)知识。涉猎这些领域能帮助你快速定位并解决问题。
- 以前安装MySQL的时候, 我不懂Linux,不懂MySQL,但通过别人写的教程,我还是安装上了,这个过程并不简单,那时候vi 也不会用,每一步都需要百度大量的信息,这种挫败感是在windows上体验不到的。
- 安装软件很简单,但了解每一步在做什么,不仅需要很强的驱动力,还需要很大的耐心,我觉得windows 把人惯坏了,就像习惯了说中文一样,然后要你学用英文说话, 这时候你的中文思维和逻辑都已经固化了,很难改变,而且这个过程会让你很痛苦。其实我觉得用Linux 也是一样,重要的是多多接触和练习,当你经常使用它,体验到Linux 上的一些功能后,会让你觉得虽然很复杂,但世界尽在掌握。同时,工作在侧面上也催促着我学习Linux,当你在机房中,没人会帮助你类似 vi 怎么到达最后一行这样的问题。
- 当你碰到问题时,如果不是特别赶时间的话,我会这样想,出现问题才有更多机会了解它。现在无人驾驶很火,但飞机的无人驾驶很多年前就有了,从起飞到降落,基本上不需要人过多干预,这对初级飞行员来说,其实是很不利的,他们很少碰到问题,意味着飞行员的问题处理能力得不到锻炼,飞了很多次能力也不会得到很大提升。
- 当我还是个菜鸟的时候,按照网上的教程安装MySQL,也能顺利安装和正常使用。我觉得mysql 这个软件不错,虽然步骤比较多,但是基本上你不会遇到特别大的问题,而且网上解决方案也特别多。但我想说,有时候太方便,反而让人失去了学习linux 的动力,照着能用就行的心理,在我装好了之后,就不会去思考, 去研究linux 是怎么安装软件的。 这就形成了一个问题,自动化愈高,需要具备的知识就越少,知识越少,就越依赖自动化,逃出这个怪圈,才能有更大的成长空间。
- 但不是每个软件都会那么完美,而且mysql 只是一个比较基础的数据库,而软件是由许许多多的包组成的,而且任何一环都可能导致你的软件失效。cobbler就像是一台汽车,而软件包就是组成汽车的一个一个部件,汽车功能越多,部件也越多,部件的复杂程度也越高,每一个部件都有自己的问题,最重要的是,部件与部件之间相互配合程度(版本适配),就像拿普通汽车的框架来造赛车,这显然是行不通的
- 反思windows ,为什么windows 安装软件那么方便,第一,获取方便,网上资源一大把,第二,我觉得windows 相比于linux 自动化程度更高,安装windows 程序也需要建立自己的文件夹,配置好环境,设置环境变量,开启自动运行,第三,能够快速检验安装成果(图像化界面),相比windows,在linux 上,当我需要知道是否安装成功,我需要查看服务是否开启,然后再打开另一个工具去探测它的功能,或许多心的人还需要查看日志文件,第四,linux 的软件包大多都是开源的,这是一把双刃剑,没有人有义务一定要保证这个东西好用,能保证能用已经很困难了
- 我开始学会坦然接受问题,并尝试去解决,有时候碰见问题感觉自己很搞笑,软件这个东西就奇妙,该是什么样的他就是什么样的,你运行一千遍,一万遍结局都一样,但我就是忍不住,在我没做任何操作时,一遍又一遍的运行,直到自己死心了,才开始修改配置尝试
- 问题出现,然后解决不了,不用想了,因为你的能力还不够,承认这一点吧,但你也要理解,计算机中这么多东西,你怎么可能全部都了解呢,这是很正常的,这才是你不断学习和成长的动力
- 我会从这三个方面去思考如何去解决问题,文件系统,系统服务,软件角度
Linux 系统大概介绍
FHS (Filesystem Hierarchy Standard) 文件系统层次标准
该文章有详细描述 点击查看
- linux 的文件都有一定规范,规定了根目录下,每个大文件夹的相应功能和应存放的文件
- 了解这个标准,能够帮助理解Linux 的文件系统的具体划分,以及linux 系统的设计思维
- 这个让我想起了我妈,总是让我把脏衣服不要到处乱扔,书要放在书架上,还有我每次,我问我妈东西在哪儿,她总是能够给出准确的答案。
重要文件和文件夹
- 作为Linux的核心,了解文件对于理解Linux 来说非常重要,Linux 的一切操作都可通过手动修改配置文件的方式进行
- shell 集成了一些常见的命令,简化了一些常见操作,在RedHat中还集成了图形界面以供操作
- 本章参考 Linux 重要目录及文件
重要文件夹
- 理解文件所代表的含义有助于在你忘记文件完整路径时或猜测文件路径时找到相应文件, 这里只对常操作的文件夹作解释
etc
配置文件都在这儿dev
Devices files 设备文件在这儿usr
Unix software Resource 软件都在这儿var
变动的信息或数据会存在这里, 例如 日志,邮件等等tmp
这里是存放临时文件的地方,像是回收站,一般将要删除的东西放入其中,然后定期清理,不要放重要的东西在里面home
用户家目录
重要文件 及 对应的操作命令Redhat
1. 网络部分
- 网卡设置
/etc/sysconfig/network-scripts/ifcfg-eth0
命令nm-connection-editor
- DNS 服务器设置
/etc/resolv.conf
, 在这里设置dns 会被网卡设置中的dns 所覆盖 - DNS 解析设置
/etc/hosts
, 在这里可以配置自定义的域名
2. 系统部分
- selinux 设置
/etc/selinux/config
命令getenforce
- yum 源设置
/etc/yum.repos.d/
- 主机名设置
/etc/hostname
查看命令uname -r/-n/-a/-m
- 开机自动程序文件
/etc/rc.local
- 设置系统运行级别的配置文件
/etc/inittab
- 声明Redhat 版本号和名称信息的文件
/etc/redhat-release
3. 用户部分
- 用户密码文件
/etc/shadow
- 用户配置文件
/etc/passwd
- 用户组密码文件
/etc/gshadow
- 用户组配置文件
/etc/group
4. 磁盘部分
- 配置开机自动挂载设备的文件
/etc/fstab
fstab 是 files system table 的简称
5. 常用服务部分
- 应用配置文件 如 httpd
/etc/httpd/
文件类型与文件权限
- Linux 不通过后缀名识别文件类型,也就是说,文件无论加后缀名还是不加后缀名,都不影响该文件的使用或操作
- Linux 的文件类型有很多,大致分为几类
- 硬件
- 程序
- 普通文件
- 特殊文件
- 目录
- 查看文件的信息有以下命令
- 查看文件类型
file anaconda-ks.cfg
, 该命令可查看压缩文件的类型 - 查看文件详细信息
stat anaconda-ks.cfg
, 该命名 - 查看文件的大小
du -sh anaconda-ks.cfg
ls -lh anaconda-ks.cfg
- 查看文件类型
遇见的问题
-
使用 crontab 执行命令不成功, my.log 中不会产生有数据
*/1 * * * * /usr/bin/date "+%H:%M:%S >> my.log"
- 问题在于 % 在shell 中是 特殊字符,意思是将右部分去除
*/1 * * * * /usr/bin/date "+\%H:\%M:\%S >> my.log"
该命令可正常执行- 查看日志
tail -f /var/log/cron
- 重启cron服务
systemctl restart crond