写给初学者的Linux餐前小菜

avatar
@阿里本地生活

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

写给初学者的Linux餐前小菜

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

Linux遵循的哲学思想

  1. 一切皆文件 除了普通文件,诸如目录、字符设备、块设备、套接字等在Unix/Linux中也都是以文件来对待,虽然类型不同,但是对其提供的却是同一套操作界面。不同的文件根据类型或用途放在不同的目录下。
  2. 由目的单一、短小、精悍的程序组成 通过短小、简单的程序保障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交流

和操作系统交互的方式,一般分为两类

  • 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的作用是非常重要的,下面咱们来学习下通过哪些方法可以得知这些信息。

Linux的命令分类

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

    help cd

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

    nginx -h

MAN手册

man手册可以说是linux很全面的帮助文档了,包括多个章节,每个章节涉及不同方面。

  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手册上的章节数。

[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下的软件安装:包管理器的使用

上面咱们说过基于'由目的单一、短小、精悍的程序组成'的特性,需要对多个程序间的依赖进行管理,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 进行沟通