写给初学者的Linux餐前小菜

做者简介 海洋,从事linux运维工做6年,业务运维4年,现任职饿了么资深运维工程师,负责物流业务运维及稳定性相关工做,随着运维工做不断自动化和智能化,现对aiops感兴趣,喜欢羽毛球、篮球等运动,没事的话喜欢宅在家。mysql

写给初学者的Linux餐前小菜

本文以linux的几个重要的哲学思想为起点,依次介绍了linux下的文件目录及做用、基本命令操做以及包管理器的使用几个话题,带领初学的同窗从总体上感觉一下linux的轮廓。linux

Linux遵循的哲学思想

  1. 一切皆文件 除了普通文件,诸如目录、字符设备、块设备、套接字等在Unix/Linux中也都是以文件来对待,虽然类型不一样,可是对其提供的倒是同一套操做界面。不一样的文件根据类型或用途放在不一样的目录下。
  2. 由目的单1、短小、精悍的程序组成 经过短小、简单的程序保障linux的高效,因为程序功能过于单一,一个完整的服务须要依赖多个程序,多个程序相互的依赖关系又是一个问题,linux经过包管理器很好的解决了这个问题
  3. 文本文件保存配置信息 使用简单的文件编辑器就能够完成配置、更改配置(有关文本编辑器的使用,下次再聊)
  4. 尽可能避免捕获用户接口 一个程序一旦开始运行,就不须要用户进行任何操做,尽可能不和用户交互

Linux文件目录及做用

目录 做用
/ 根目录
/bin 主要放基本执行命令
/sbin 主要放系统管理的命令
/boot 引导目录(与系统启动有关),放置内核、grub、initrd等文件
/dev device,设备文件目录,也是特殊文件目录
/etc 配置文件目录,放置系统的配置文件
/home 用户的家目录,放置用户的信息(用户登陆后身处的默认目录即为用户的家目录)
/lib library,库文件目录,放置库文件
/mnt 系统挂载目录
/media 额外文件系统的挂在目录
/misc 被动目录,放置杂项设备
/opt 可选目录,第三方软件安装的目录
/proc 伪目录,放置内核映像文件
/srv 服务器运行中产生的数据的临时使用的目录
/sys 伪目录,放置内核中硬件信息的映射
/tmp 临时文件目录,放置系统中产生的临时文件
/usr 第三方软件的管理命令、额外信息等都存放在此
/var 常常变化的文件所处的目录,如用户的邮箱队列

终端下的Linux:经过命令行和Linux交流

和操做系统交互的方式,通常分为两类nginx

  • GUI: graphical user interface 图形化接口,相似windows系统的图形化界面,linux使用的很少
  • CLI: command line interface 命令行接口,linux多经过这种方式进行操做,因此掌握基本命令是相当重要的

Linux中的命令格式:

  • 命令严格区分大小写
  • command [options][arguments]
  • 短选项:-l 、-h、 -hl 分开的选项之间用空格隔开如ls -a -l = ls -al
  • 长选项:--help--long
  • 参数与选项之间空格隔开,参数之间也用空格隔开ls -al /etc /home

磨刀不误砍柴工:如何得到一个命令的帮助信息

linux在非图形界面下的操做都是基于命令行的,然而linux又有很是多的命令,每一个命令又有不少options, 在使用一个命令前,清楚的知晓命令的做用以及options的做用是很是重要的,下面我们来学习下经过哪些方法能够得知这些信息。sql

Linux的命令分类

  1. 内部命令(shell自带的命令) help command 获取内部命令的帮助信息 [xxx@xxx]$ help cd shell

    help cd

  2. 外部命令(除了内部命令,即为外部命令) command -h 获取外部命令的帮助信息 [xxx@xxx]$ nginx -h 数据库

    nginx -h

MAN手册

man手册能够说是linux很全面的帮助文档了,包括多个章节,每一个章节涉及不一样方面。windows

  1. User commands 普通用户命令相关信息
  2. System calls 系统调用相关信息
  3. Library functions 库函数相关信息
  4. Devices 设备相关信息
  5. Files 文件格式、文件系统相关信息
  6. Games 娱乐和游戏相关信息
  7. Overviews, conventions, and miscellaneous 杂项
  8. Superuser and system administration commands 管理员命令相关信息

__whatis__命令服务器

有的命令只涉及一个维度、有的命令可能涉及多个维度。查看命令对应在man手册中的信息可以使whatis, whatis command显示一个命令的简单说明,同时显示出此命令不一样部分在man手册上的章节数。markdown

[xxx@xxx]$ whatis cd运维

whatis cd

whatis是调用数据库中有关这个命令的相关简单说明,若是系统刚刚安装,有些命令可能还没来得及建立数据库,所以便没法使用whatis开查看此命令的帮助信息。可使用mkwhatis command帮命令生成一个有关此命令的数据数据。

经常使用命令

ls: 显示目录文件

  • -a 显示目录中全部文件(包括隐藏文件)
  • -l 显示文件的详细信息(权限、时间、属主、属组等)
  • -h 显示文件大小(自动换算为B、KB、MB、G)
  • -d 显示目录自己信息

cd: 切换所在目录

  • cd ~ 切换到当前用户的家目录
  • cd - 切换到上一次目录
  • cd . 切换到当前目录
  • cd .. 切换到上一级目录(父目录)
  • cd /xx 切换到指定路径

cat: 输出文件全部内容

  • cat filename 输出filename的全部内容
  • cat -n filename 输出内容、显示行号

tail: 查看文件内容(默认显示后10行)

  • -f filename 动态显示文件后10行(实时刷新)
  • -fn filename 动态显示文件后n行(实时刷新)

echo: 像文件内写入内容

  • echo xxx > filename 用xxx覆盖filename的内容(filename原来内容消失,只有xxx)
  • echo xxx >> filename 在filename内容新追加一行xxx(filename原来内容依然在,新增一行xxx)

历史命令

  • history 查看当前用户使用过的命令,默认记录1000条
  • history -c 清除命令历史
  • ! + 'n'(历史命令前的数字)便可使用命令历史中相应的命令。
  • ! + '-n' 执行历史命令中倒数第n条命令
  • ! + 字符串 表示执行历史命令中离如今最近的以这个字符串开始的命令
  • !! 表示重复执行上一条命令
  • !$ 引用上一条命令的最后一个字符

Linux下的软件安装:包管理器的使用

上面我们说过基于'由目的单1、短小、精悍的程序组成'的特性,须要对多个程序间的依赖进行管理,linux开发出了包管理器。 包管理器能够自动化地更新与管理软件包,可以从指定的服务器自动下载软件包而且安装,能够自动处理依赖性关系,而且一次安装全部依赖的软体包,无须繁琐地一次次下载、安装。

YUM

Yum(全称为Yellow dog Updater, Modified)是在Fedora和RedHat以及Centos中基于rpm的软件包管理器。

YUM基本用法

  • yum install package 安装程序package
  • yum groupinstall package 安装程序组
  • yum update package 更新程序package
  • yum upgrade package 升级程序package
  • yum remove package 卸载程序package

YUM安装mysql

  1. 首先得到root权限(本身的主机通常都是root)
  2. 执行命令 [xxx@xxx]$ yum install mysql-server mysql mysql-devel -y
    • mysql 即mysql客户端command
    • mysql-server 即mysql服务端
    • mysql-devel 安装所需的库和文件等
    • -y 确认安装(若是没有-y 在安转过程当中须要输入y + '回车') 接下来就是刷屏的安装信息了,若是安装成功会显示 Complete!
  3. 执行命令 [xxx@xxx]$ service mysqld start 启动mysql服务
    mysql-start
  4. 连接mysql服务 [xxx@xxx]$ mysql 能够直接登陆mysql(mysql刚初始化没有密码)
  5. 设置root用户连接mysql的密码 [xxx@xxx]$ mysqladmin -u root password 'password' [xxx@xxx]$ mysql -u root -p 输入密码,便可登陆 mysql安装及启动到此结束,接下来就能够进行建库、建表操做。

结尾

可见linux的操做虽然陌生,也是很是简单的,只须要掌握一些基本知识便可为咱们所用。 若是你们须要很是全面的linux入门资料《鸟哥私房菜》是不错的选择,对于比较感兴趣的知识点想深挖下去能够经过Google直接搜关键字就能查到不少高质量的文章。 不过最最最权威的仍是官网!




阅读博客还不过瘾?

欢迎你们扫二维码加入交流群,讨论和博客有关的技术问题,还能够和博主有更多互动

博客转载、线下活动及合做等问题请邮件至 shadowfly_zyl@hotmail.com 进行沟通
相关文章
相关标签/搜索