导语:

早前为了方便日常开发,建立跟生产环境类型的环境的时候考虑使用docker作为模拟生产环境,结果没想到给自己的学习挖了一个大坑。其他关于docker容器技术的坑先不在这里赘述,有时间的话在其他文章记录下来,这里先从最基本的工作环境开始拉开这条漫长的学习之路。

docker虽然提供了很多好用并且效率很高的镜像给我们使用,基本都不需要自己动手配置容器环境但是由于过于注重镜像纯净跟效率的原因大部分镜像里面基本就只有跟当前需要环境相关的工具跟Linux配置,一点多余的东西都没有。这就苦逼了我这种二手的运维菜鸡了,容器已启动一进去发现Linux环境下连一个普通Linux环境必备的vi命令都没有更别说其他的网络查看工具了。迫于处女座的洁癖,被迫把除了服务器环境意外的所有常用工具都得自己挨个爬一次坑吧。毕竟如果把这些东西弄一遍我就可能不再是二手的菜鸡了。

在爬坑的过程中可能甚至必然会遇到发现了一个问题需要解决但是又引起了无数个新的知识点需要补充。所以这条爬坑之路可能会很难去归类,也没有太多时间去归类,唯有爬到哪就记录到哪了!!!!

以下内容大部分都来源于其他博客或者书籍查询到的结果。经过自己实践可以没问题才记录上来方便以后查看!!!

本坑是在docker官方镜像(ubuntu:latest)的环境下完成,ubuntu版本是Ubuntu 18.04.1 LTS。其他版本的坑可能会略有不同。请慎重

以下观点只代表菜鸟言论,大神路过勿喷


实际上所谓的Linux工具实际上很多人有自己的叫法,大致统计下基本有这几种统称:命令、程序、工具、服务、软件。其实都是通过不同的安装方式安装到Linux环境下,直接使用的。一般的简单工具安装好后一般都会在/bin目录下看到它们的身影(还有些特殊的可能会在其他的地方这里不深究,知道这个意思就行),只不过使用的时候不同的命令工具会有自身特色的传参方式而已例如:

root@454009d432a4:/bin# netstat  -anp

1.Linux工具安装最常用的一种方法就是 apt系列命令

最常用的就是apt-get、apt-cache:apt-get 用来更新、删除、安装各种命令用,apt-cache用来搜索、查看各种命令信息。

第一次进来首要任务肯定是先执行apt-get update在线更新下所有工具包的最新列表,保证安装工具的时候使用的是最新的源以免报错掉到无尽的坑里。最后安装常用的网路检测工具net-tools,这个包下面包括常用的netstat、ifconfig等命令(之前没搞懂之前还以为netstat命令是独立安装的,所以通过apt-cache search搜索到的包安装后根本就不是那么回事。后来找了资料才知道是在这个包里)。

root@454009d432a4:/bin# apt-get update              //更新资源列表
root@454009d432a4:/bin# apt-cache search net-tools        //搜索net-tools这个工具包确认存在
net-tools - NET-3 networking toolkit
atm-tools - Base programs for ATM in Linux, the net-tools for ATM
ddnet-tools - Tools for DDNet
root@454009d432a4:/bin# apt-get install net-tools      //安装网络工具包
........
........
root@454009d432a4:/bin# netstat              //安装完成执行netstat命令看下是否正常
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path root@454009d432a4:/bin# ifconfig            //安装完成执行ifconfig命令看下是否正常
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 21  bytes 1598 (1.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

附上一张基本网络工具图(http://www.docin.com/p-1852435799.html)

2.Linux后台定时任务进程工具cron

这是一个服务器实现定时任务或者

root@454009d432a4:/bin# apt-cache search cron        //搜索cron资源
anacron - cron-like program that doesn't go by time
cron - process scheduling daemon                //要找的正主
dict-vera - Dictionary of computer related acronyms -- dict format
python-croniter - provides iteration for datetime object with cron like format -
Python .x
......
......
......
root@454009d432a4:/bin# apt-get install cron      //安装cron组件
Reading package lists... Done
Building dependency tree
Reading state information... Done
...
...
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of start.
root@454009d432a4:/bin# cron            //确认是否已经命令(输入cron双击tab按键自动提示)
cron     crontab
root@454009d432a4:/bin# crontab -e      //编辑定时任务文件
no crontab for root - using an empty one           //what?报错,没有文本编辑器,这就是docker镜像的坑,缺少很多基本的Linux工具,都需要自己一个一个安装
update-alternatives: error: no alternatives for editor
/usr/bin/sensible-editor: 25: /usr/bin/sensible-editor: editor: not found
/usr/bin/sensible-editor: 28: /usr/bin/sensible-editor: nano: not found
/usr/bin/sensible-editor: 31: /usr/bin/sensible-editor: nano-tiny: not found
/usr/bin/sensible-editor: 34: /usr/bin/sensible-editor: vi: not found
Couldn't find an editor!
Set the $EDITOR environment variable to your desired editor.
crontab: "/usr/bin/sensible-editor" exited with status 1    //报错后自动退出程序
root@454009d432a4:/bin#
//忽略掉文本编辑器接着cron工具使用方法

root@454009d432a4:/# service cron status  //检查cron服务是否已开启
 * cron is not running
root@454009d432a4:/bin# crontab -e      //编辑定时任务文件如果已经安装过文本编辑器会是直接进入文本编辑模式进行编辑定时任务
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
#定时任务命令格式
#
# m h  dom mon dow  command
# m:分钟 取值范围: 0-59 当为*时表示每分钟
# h:小时 取值范围: 0-23 当为*时表示每小时
# dom:天 取值范围: 1-31 当为*时表示每天
# mon:月 取值范围: 1-12 当为*时表示每月
# dow:星期 取值范围: 1-6 0表示星期天 当为*时表示每周
# command:当符合当前时间条件的时候要执行的命令,可以是纯命令也可以是执行固定的shell脚本
# 以上m h  dom mon dow  command格式中的变量必须都要有值,每个变量中以空格分割详细说明见下面的链接
# https://www.cnblogs.com/angel_kiki/p/5266699.html
# 如下:每分钟将当前时间写入指定文本中
* * * * * date >> ~/check.log



root@454009d432a4:/# service cron start //启动指定服务
root@454009d432a4:/# service cron restart //重启指定服务
root@454009d432a4:/# service cron status
 * cron is running        //服务正在运行中,找到指定的文件打开看看有没有数据就知道有没有执行成功了

root@454009d432a4:/# service cron stop   //停止指定服务

以上资料来源:https://www.cnblogs.com/angel_kiki/p/5266699.html

3.Linux文本编辑器vi、vim基于vim是vi的升级版所以这里选择vim

root@454009d432a4:/# apt-get install vim  //安装vim
root@454009d432a4:/# vim /root/check.log  //编辑指定文件
Thu Sep 27 10:27:01 UTC 2018
Thu Sep 27 10:28:01 UTC 2018
Thu Sep 27 10:29:01 UTC 2018
~
~

vi、vim详细操作参考以下地址(个人感觉描述的挺详细具体的):https://blog.csdn.net/williamfan21c/article/details/56495261

Linux学习之路(一)的更多相关文章

  1. Linux学习之路-Linux-at及cron命令【7】---20171215

    Linux学习之路-Linux-at及cron命令[7]---20171215 DannyExia000人评论986人阅读2017-12-24 17:28:03   ntpdate 命令 [root@ ...

  2. 我的Linux学习之路及参考书籍

    学习目的 很简单的考虑,最近在各大招聘网站上找工作,发现多数c/c++开发职位都需要Linux开发经验,让我很苦恼,因为Linux我到目前为止知之甚少,知道Linux的概念,也在大学期间了解过一段时间 ...

  3. 新手小白的Linux学习之路

    大家好,我是一个零基础的新手小白,在此和大家分享一下新手小白的学习之路.欢迎各位大神指教!谢谢 Linux简介: Linux操作系统诞生于1991年10月,由芬兰赫尔辛基大学的在校生Linus Tor ...

  4. PHP开发者的Linux学习之路

    谈起一个高效动态网站的构建,那就不得不提到LAMP,即Linux操作系统.Apache网络服务器.Mysql数据库.Perl.PHP或Python编程语言等开源产品所组成的网站架构框架,其最大的优势是 ...

  5. Linux学习之路--常用命令讲解

    Linux常用命令讲解 1.命令格式:命令 [-选项]  [参数] 超级用户的提示符是# 一般用户的提示符是$ 如:ls -la /usr说明: 大部分命令遵从该格式多个选项时,可以一起写 eg:ls ...

  6. 我的Linux学习之路的感悟

    首先要跟大家说声抱歉,这么久一直没有更新,有负大家对我的期望. 半年的Linux运维的学习到目前已工作一个月零9天,这一路走来的艰辛和挣扎只有自己最清楚. 首先要感谢公司的同事的宽容接纳和耐心指点.感 ...

  7. Linux学习之路—磁盘分区

    1.各硬件设备在Linux中的文件名 在Linux系统中,每个设备都被当做一个文件来对待,同时在Linux系统中,几乎所有的硬件设备文件都在/dev这个目录中. 设备 设备在Linux内的文件名 ID ...

  8. Linux学习之路—Linux的历史发展

    1.1969年以前:一个伟大的梦想-Bell,MIT与GE的"Multics"系统 由于早期的计算机不想现在这样普遍,所以往往出现这样的情况,主机只有一台而多人等待使用.好在20世 ...

  9. linux 学习之路

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

随机推荐

  1. [总结] Min-Max容斥学习笔记

    min-max 容斥 给定集合 \(S\) ,设 \(\max(S)\) 为 \(S\) 中的最大值,\(\min(S)\) 为 \(S\) 中的最小值,则: \[\max(S)=\sum_{T\in ...

  2. VUE组件汇总

    内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★13489 - 饿了么出品的Vue2的web UI工具套件 Vux ★8133 - 基于Vue和 ...

  3. 18.Class 的基本语法

    Class 的基本语法 Class 的基本语法 简介 JavaScript 语言中,生成实例对象的传统方法是通过构造函数.下面是一个例子. function Point(x, y) { this.x ...

  4. [转]WEB页获取串口数据

    本文转自:https://www.cnblogs.com/rockyhm/p/3434200.html 最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多  大 ...

  5. [转]用C#在windows上操控电脑自带蓝牙(入道指南)

    本文转自:https://blog.csdn.net/YSSJZ960427031/article/details/50990372 前言如题,如果你也想用C#在windows上操控电脑自带蓝牙,但是 ...

  6. 【转载】Windows Server2012安装IIS服务器

    在云服务器的使用过程中,很多人由于习惯或者实际需要,会选择Windows Server系统服务器,较常用的版本有Windows Server2008.Windows Server2012.在Windo ...

  7. 未能加载文件或程序集 Microsoft.ReportViewer.ProcessingObjectModel, Version=10.0.0.0…错误问题的解决

    1.分析原因: 出现未能加载文件或程序集 Microsoft.ReportViewer.ProcessingObjectModel, Version=10.0.0.0的问题的原因是,Microsoft ...

  8. 阿里云redis映射到阿里云服务器

    参考文档:https://help.aliyun.com/document_detail/43850.html?spm=a2c4g.11186623.2.3.7yg9VH ECS Windows 篇 ...

  9. [日常] HTTP协议状态码

    100-199 信息性状态码 100 continue 请继续 101 switching protocols 切换协议,返回upgraded头 200-299 成功状态码 200 ok 201 cr ...

  10. angular 1.2.29版本下 动态添加多个表单、 校验全部、 提交 、ng-form方案

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...