linux介绍、命令(基本命令、经常使用命令、使用方法、基本格式)

操做系统(科普章节)

目标

  • 了解操做系统及做用

1. 操做系统(Operation System,OS)

一个例子说明操做系统html

一个例子说明操做系统

操做系统做为接口的示意图python

001_OS做为接口的示意图

没有安装操做系统的计算机,一般被称为 裸机linux

  • 若是想在 裸机 上运行本身所编写的程序,就必须用机器语言书写程序
  • 若是计算机上安装了操做系统,就能够在操做系统上安装支持的高级语言环境,用高级语言开发程序

1.1 操做系统的做用

  • 是现代计算机系统中 最基本和最重要 的系统软件
  • 是 配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展
  • 主要做用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用
  • 而其余的诸如编译程序、数据库管理系统,以及大量的应用软件,都直接依赖于操做系统的支持

1.2 不一样应用领域的主流操做系统

  • 桌面操做系统
  • 服务器操做系统
  • 嵌入式操做系统
  • 移动设备操做系统

1> 桌面操做系统

  • Windows 系列
    • 用户群体大
  • macOS
    • 适合于开发人员
  • Linux
    • 应用软件少

2> 服务器操做系统

  • Linux
    • 安全、稳定、免费
    • 占有率高
  • Windows Server
    • 付费
    • 占有率低

002_机房照片

3> 嵌入式操做系统

  • Linux

4> 移动设备操做系统

  • iOS
  • Android(基于 Linux

1.3 虚拟机

虚拟机(Virtual Machine)指经过软件模拟的具备完整硬件系统功能的、运行在一个彻底隔离环境中的完整计算机系统正则表达式

  • 虚拟系统经过生成现有操做系统的全新虚拟镜像,具备真实操做系统彻底同样的功能
  • 进入虚拟系统后,全部操做都是在这个全新的独立的虚拟系统里面进行,能够独立安装运行软件,保存数据,拥有本身的独立桌面,不会对真正的系统产生任何影响
  • 并且可以在现有系统与虚拟镜像之间灵活切换的一类操做系统

操做系统的发展史(科普章节)

目标

  • 了解操做系统的发展历史
  • 知道 Linux 内核及发行版的区别
  • 知道 Linux 的应用领域

01. 操做系统的发展历史

1.1 Unix

1965 年以前的时候,电脑并不像如今同样广泛,它可不是通常人能碰的起的,除非是军事或者学院的研究机构,并且当时大型主机至多能提供30台终端(30个键盘、显示器),链接一台电脑数据库

001_大型机

为了解决数量不够用的问题ubuntu

  • 1965 年左后由 贝尔实验室 加入了 麻省理工学院 以及 通用电气 合做的计划 —— 该计划要创建一套多使用者(multi-user)、多任务(multi-processor)、多层次(multi-level) 的 MULTICS 操做系统,想让大型主机支持 300 台终端
  • 1969 年先后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
  • 1969 年从这个项目中退出的 Ken Thompson 当时在实验室无聊时,为了让一台空闲的电脑上可以运行 "星际旅行(Space Travel)" 游行,在 8 月份左右趁着其妻子探亲的时间,用了 1 个月的时间,使用汇编写出了 Unix 操做系统的原型
  • 1970 年,美国贝尔实验室的 Ken Thompson,以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言(取BCPL的首字母),而且他用 B 语言 写了第一个 UNIX 操做系统
  • 1971 年,一样酷爱 "星际旅行(Space Travel)" 的 Dennis M.Ritchie 为了能早点儿玩上游戏,加入了Thompson 的开发项目,合做开发 UNIX,他的主要工做是改造 B 语言,由于B 语言 的跨平台性较差
  • 1972 年,Dennis M.Ritchie 在 B 语言 的基础上最终设计出了一种新的语言,他取了 BCPL 的第二个字母做为这种语言的名字,这就是 C 语言
  • 1973 年初,C 语言的主体完成,Thompson 和 Ritchie 火烧眉毛地开始用它彻底重写了如今大名鼎鼎的 Unix 操做系统

002_unix之父

肯·汤普逊(左)和丹尼斯·里奇(右)windows

1.2 Minix

  • 由于 AT&T(通用电气) 的政策改变,在 Version 7 Unix 推出以后,发布新的使用条款,将 UNIX 源代码私有化,在大学中不能再使用 UNIX 源代码
  • Andrew S. Tanenbaum(塔能鲍姆) 教授为了能 在课堂上教授学生操做系统运做的细节,决定在不使用任何 AT&T 的源代码前提下,自行开发与 UNIX 兼容的操做系统,以免版权上的争议
  • 以 小型 UNIX(mini-UNIX)之意,将它称为 MINIX

1.3 Linux

  • 1991 年 林纳斯(Linus) 就读于赫尔辛基大学期间,对 Unix 产生浓厚兴趣,尝试着在Minix 上作一些开发工做
  • 由于 Minix 只是教学使用,所以功能并不强,林纳斯 常常要用他的终端 仿真器(Terminal Emulator) 去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他本身编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形,当时,他年仅 21 岁!
  • 林纳斯 利用 GNU 的 bash 当作开发环境,gcc 当作编译工具,编写了 Linux 内核,一开始 Linux 并不能兼容 Unix
    • 即 Unix 上跑的应用程序不能在 Linux 上跑,即应用程序与内核之间的接口不一致
    • 一开始 Linux 只适用于 386,后来通过全世界的网友的帮助,最终可以兼容多种硬件

004_林纳斯

C 语言

  • 在把 UNIX 移植到其余类型的计算机上使用时,C 语言强大的移植性(Portability)在此显现
    • 机器语言和汇编语言都不具备移植性,为 x86 开发的程序,不可能在 Alpha,SPARC 和 ARM 等机器上运行
  • 而 C 语言程序则可使用在任意架构的处理器上,只要那种架构的处理器具备对应的 C 语言编译器和库,而后将 C 源代码编译、链接成目标二进制文件以后便可运行

Unix 家谱

003_unix家谱

02. Linux 内核及发行版

2.1 Linux 内核版本

  • 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层
  • Linux 内核版本又分为 稳定版 和 开发版,两种版本是相互关联,相互循环
    • 稳定版:具备工业级强度,能够普遍地应用和部署。新的稳定版相对于较旧的只是修正一些 bug 或加入一些新的驱动程序
    • 开发版:因为要试验各类解决方案,因此变化很快
  • 内核源码网址:http://www.kernel.org

全部来自全世界的对 Linux 源码的修改最终都会汇总到这个网站,由 Linus 领导的开源社区对其进行甄别和修改最终决定是否进入到 Linux 主线内核源码中安全

2.2 Linux 发行版本

  • Linux 发行版(也被叫作 GNU/Linux 发行版)一般包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件
  • 常见的发行版本以下:bash

    • Ubuntu
    • Redhat
    • Fedora
    • openSUSE
    • Linux Mint
    • Debian
    • Manjaro
    • Mageia
    • CentOS
    • Arch
  • 十大 Linux 服务器发行版排行榜:http://os.51cto.com/art/201612/526126.htm服务器

在几乎每一份与 Linux 有关的榜单上,基于 Debian 的 Ubuntu 都占有一席之位。Canonical 的Ubuntu 赛过其余全部的 Linux 服务器发行版 ―― 从简单安装、出色的硬件发现,到世界级的商业支持,Ubuntu确立了难以企及的严格标准

03. Linux 的应用领域

3.1 服务器领域

  • Linux 在服务器领域的应用是其重要分支
  • Linux 免费、稳定、高效等特色在这里获得了很好的体现
    • 早期由于维护、运行等缘由一样受到了很大的限制
    • 近些年来 Linux 服务器市场获得了飞速的提高,尤为在一些高端领域尤其普遍

3.2 嵌入式领域

  • 近些年来 Linux 在嵌入式领域的应用获得了飞速的提升
  • Linux 运行稳定、对网络的良好支持性、低成本,且能够根据须要进行软件裁剪,内核最小能够达到几百 KB 等特色,使其近些年来在嵌入式领域的应用获得很是大的提升

主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、等都是其应用领域,获得了 Google、三星、摩托罗拉、NEC 等公司的大力推广

机顶盒

3.3 我的桌面领域

  • 此领域是传统 Linux 应用最薄弱的环节
  • 传统 Linux 因为界面简单、操做复杂、应用软件少的缺点,一直被 Windows 所压制
  • 近些年来随着 Ubuntu、Fedora 等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,Linux 在我的桌面领域的占有率在逐渐的提升

在 Ubuntu 中玩 QQ

005_ubuntu_qq

 

文件和目录(理解)

目标

  • 理解 Linux 文件目录的结构

01. 单用户操做系统和多用户操做系统(科普)

  • 单用户操做系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的所有硬件和软件资源

    • Windows XP 以前的版本都是单用户操做系统
  • 多用户操做系统:指一台计算机在同一时间能够由 多个用户 使用,多个用户共同享用系统的所有硬件和软件资源

    • Unix 和 Linux 的设计初衷就是多用户操做系统

02. Windows 和 Linux 文件系统区别

2.1 Windows 下的文件系统

  • 在 Windows 下,打开 “计算机”,咱们看到的是一个个的驱动器盘符:

001_Windows下的多个盘

  • 每一个驱动器都有本身的根目录结构,这样造成了多个树并列的情形,如图所示:

001-Windows下多个盘为节点的目录分支

2.2 Linux 下的文件系统

  • 在 Linux 下,咱们是看不到这些驱动器盘符,咱们看到的是文件夹(目录):

002_Ubuntu文件目录

  • Ubuntu 没有盘符这个概念,只有一个根目录 /,全部文件都在它下面

003-Linux的树形示意图

2.3 用户目录

位于 /home/user,称之为用户工做目录或家目录,表示方式:

/home/user
~

2.4 Linux 主要目录速查表

  • /:根目录,通常根目录下只存放目录,在 linux 下有且只有一个根目录,全部的东西都是从这里开始
    • 当在终端里输入 /home,实际上是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
  • /bin、/usr/bin:可执行二进制文件的目录,如经常使用的命令 ls、tar、mv、cat 等
  • /boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
  • /dev:存放linux系统下的设备文件,访问该目录下某个文件,至关于访问某个设备,经常使用的是挂载光驱mount /dev/cdrom /mnt
  • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
    • /etc/inittab
    • /etc/fstab
    • /etc/init.d
    • /etc/X11
    • /etc/sysconfig
    • /etc/xinetd.d
  • /home:系统默认的用户家目录,新增用户帐号时,用户的家目录都存放在此目录下
    • ~ 表示当前用户的家目录
    • ~edu 表示用户 edu 的家目录
  • /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程当中,须要调用一些额外的参数时须要函数库的协助
  • /lost+fount:系统异常产生错误时,会将一些遗失的片断放置于此目录下
  • /mnt: /media:光盘默认挂载点,一般光盘挂载于 /mnt/cdrom 下,也不必定,能够选择任意位置进行挂载
  • /opt:给主机额外安装软件所摆放的目录
  • /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,因为数据都存放于内存中,因此不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
  • /root:系统管理员root的家目录
  • /sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不一样的是,这几个目录是给系统管理员 root 使用的命令,通常用户只能"查看"而不能设置和使用
  • /tmp:通常用户或正在执行的程序临时存放文件的目录,任何人均可以访问,重要数据不可放置在此目录下
  • /srv:服务启动以后须要访问的数据目录,如 www 服务须要访问的网页数据存放在 /srv/www 内
  • /usr:应用程序存放目录
    • /usr/bin:存放应用程序
    • /usr/share:存放共享数据
    • /usr/lib:存放不能直接运行的,倒是许多程序运行所必需的一些函数库文件
    • /usr/local:存放软件升级包
    • /usr/share/doc:系统说明文件存放目录
    • /usr/share/man:程序说明文件存放目录
  • /var:放置系统执行过程当中常常变化的文件
    • /var/log:随时更改的日志文件
    • /var/spool/mail:邮件存放的目录
    • /var/run:程序或服务启动后,其 PID 存放在该目录下
    • 经常使用 Linux 命令的基本使用

      目标

      • 理解学习 Linux 终端命令的缘由
      • 经常使用 Linux 命令体验

      01. 学习 Linux 终端命令的缘由

      • 不少人可能在电视或电影中看到过相似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完成了窃取资料的任务。
      • Linux 刚出世时没有什么图形界面,全部的操做全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。近几年来,尽管 Linux 发展得很是迅速,图形界面愈来愈友好,可是在真正的开发过程当中,Linux 命令行的应用仍是占有很是重要的席位,并且许多Linux功能在命令行界面要比图形化界面下运行的快。能够说不会命令,就不算会 Linux。
      • 在职场中,大量的 服务器维护工做 都是在 远程 经过 SSH 客户端 来完成的,并无图形界面,全部的维护工做都须要经过命令来完成。如 磁盘操做、文件存取、目录操做、进程管理、文件权限 设定等
      • Linux 发行版本的命令大概有 200 多个,可是经常使用的命令只有 10 多个而已

      学习终端命令的技巧:

      • 不须要死记硬背,对于经常使用命令,用的多了,天然就记住了
      • 不要尝试一次学会全部的命令,有些命令是很是不经常使用的,临时遇到,临时百度就能够

      02. 经常使用 Linux 命令的基本使用

      序号 命令 对应英文 做用
      01 ls list 查看当前文件夹下的内容
      02 pwd print wrok directory 查看当前所在文件夹
      03 cd [目录名] change directory 切换文件夹
      04 touch [文件名] touch 若是文件不存在,新建文件
      05 mkdir [目录名] make directory 建立目录
      06 rm [文件名] remove 删除指定的文件名
      07 clear clear 清屏

      小技巧

      • ctrl + shift + = 放大终端窗口的字体显示
      • ctrl + - 缩小终端窗口的字体显示

      03. 自动补全

      • 在敲出 文件目录命令 的前几个字母以后,按下 tab 键
        • 若是输入的没有歧义,系统会自动补全
        • 若是还存在其余 文件目录命令,再按一下 tab 键,系统会提示可能存在的命令

      小技巧

      • 按  光标键能够在曾经使用过的命令之间来回切换
      • 若是想要退出选择,而且不想执行当前选中的命令,能够按 ctrl + c

      Linux 终端命令格式

      目标

      • 了解终端命令格式
      • 知道如何查阅终端命令帮助信息

      01. 终端命令格式

      command [-options] [parameter] 

      说明:

      • command:命令名,相应功能的英文单词或单词的缩写
      • [-options]:选项,可用来对命令进行控制,也能够省略
      • parameter:传给命令的参数,能够是 零个、一个 或者 多个

      [] 表明可选

      02. 查阅命令帮助信息(知道)

      提示

      • 现阶段只须要 知道 经过如下两种方式能够查询命令的帮助信息
      • 先学习经常使用命令及经常使用参数的使用便可,工做中若是遇到问题能够借助网络搜索命令的中文资料

      2.1 --help

      command --help 

      说明:

      • 显示 command 命令的帮助信息

      2.2 man

      man command 

      说明:

      • 查阅 command 命令的使用手册

      man 是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用说明

      使用 man 时的操做键:

      操做键 功能
      空格键 显示手册页的下一屏
      Enter 键 一次滚动手册页的一行
      b 回滚一屏
      f 前滚一屏
      q 退出
      /word 搜索 word 字符串

      Linux基本命令(一)

      目标

      • 熟练使用 Linux经常使用的命令
      • ls
      • clear
      • cd
      • pwd
      • mkdir
      • touch
      • rm
      • cp
      • mv
      • tree
      • chmod
      • find
      • grep
      • 重定向
      • 软链接、硬连接
      • 压缩
      • shutdown
      • reboot
      • who
      • exit
      • passwd
      • sudo

      1> 查看文件信息:ls

      ls是英文单词list的简写,其功能为列出目录的内容,是用户最经常使用的命令之一,它相似于DOS下的dir命令。

      Linux文件或者目录名称最长能够有265个字符,“.”表明当前目录,“..”表明上一级目录,以“.”开头的文件为隐藏文件,须要用 -a 参数才能显示。

      ls经常使用参数:

      参数 含义
      -a 显示指定目录下全部子目录与文件,包括隐藏文件
      -l 以列表方式显示文件的详细信息
      -h 配合 -l 以人性化的方式显示文件大小

      图中列出的信息含义以下图所示:

      与DOS下的文件操做相似,在Unix/Linux系统中,也一样容许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。

      通配符 含义
      * 文件表明文件名中全部字符
      ls te* 查找以te开头的文件
      ls *html 查找结尾为html的文件
      表明文件名中任意一个字符
      ls ?.c 只找第一个字符任意,后缀为.c的文件
      ls a.? 只找只有3个字符,前2字符为a.,最后一个字符任意的文件
      [] [”和“]”将字符组括起来,表示能够匹配字符组中的任意一个。“-”用于表示字符范围。
      [abc] 匹配a、b、c中的任意一个
      [a-f] 匹配从a到f范围内的的任意一个字符
      ls [a-f]* 找到从a到f范围内的的任意一个字符开头的文件
      ls a-f 查找文件名为a-f的文件,当“-”处于方括号以外失去通配符的做用
      \ 若是要使通配符做为普通字符使用,能够在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的做用。
      ls \*a 查找文件名为*a的文件

      2> 清屏:clear

      clear做用为清除终端上的显示(相似于DOS的cls清屏功能),也可以使用快捷键:Ctrl + l ( “l” 为字母 )。

      3> 切换工做目录: cd

      在使用Unix/Linux的时候,常常须要更换工做目录。cd命令能够帮助用户切换工做目录。Linux全部的目录和文件名大小写敏感

      cd后面可跟绝对路径,也能够跟相对路径。若是省略目录,则默认切换到当前用户的主目录。

      命令 含义
      cd 切换到当前用户的主目录(/home/用户目录),用户登录的时候,默认的目录就是用户的主目录。
      cd ~ 切换到当前用户的主目录(/home/用户目录)
      cd . 切换到当前目录
      cd .. 切换到上级目录
      cd - 可进入上次所在的目录

      注意:

      • 若是路径是从根路径开始的,则路径的前面须要加上 “ / ”,如 “ /mnt ”,一般进入某个目录里的文件夹,前面不用加 “ / ”。

      4> 显示当前路径:pwd

      使用pwd命令能够显示当前的工做目录,该命令很简单,直接输入pwd便可,后面不带参数。

      5> 建立目录:mkdir

      经过mkdir命令能够建立一个新的目录。参数-p可递归建立目录。

      须要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,而且目录建立者必须对当前目录具备写权限。

      6> 删除文件:rm

      可经过rm删除文件或目录。使用rm命令要当心,由于文件删除后不能恢复。为了防止文件误删,能够在rm后使用-i参数以逐个确认要删除的文件。

      经常使用参数及含义以下表所示:

      参数 含义
      -i 以进行交互式方式执行
      -f 强制删除,忽略不存在的文件,无需提示
      -r 递归地删除目录下的内容,删除文件夹时必须加此参数

      7> 拷贝:cp

      cp命令的功能是将给出的文件或目录复制到另外一个文件或目录中,至关于DOS下的copy命令。

      经常使用选项说明:

      选项 含义
      -a 该选项一般在复制目录时使用,它保留连接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
      -f 已经存在的目标文件而不提示
      -i 交互式复制,在覆盖目标文件以前将给出提示要求用户确认
      -r 若给出的源文件是目录文件,则cp将递归复制该目录下的全部子目录和文件,目标文件必须为一个目录名。
      -v 显示拷贝进度

      8> mv:移动、重命名

      用户可使用mv命令来移动文件或目录,也能够给文件或目录重命名。

      经常使用选项说明:

      选项 含义
      -f 禁止交互式操做,若有覆盖也不会给出提示
      -i 确认交互方式操做,若是mv操做将致使对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以免误覆盖文件
      -v 显示移动进度

      9> 建立文件: touch

      用户能够经过touch来建立一个空的文件,demo以下:

      touch hello.txt

      说明:

      • 则会在当前路径下建立名字为hello.txt的空文件
      • Linux系统中没有严格的后缀(格式),因此建立文件时能够命名为任意的文

      Linux基本命令(二)

      1. 输出重定向命令:>

      Linux容许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

      如:ls > test.txt ( test.txt 若是不存在,则建立,存在则覆盖其内容 )

      注意: >输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。

      2. 分屏显示:more

      查看内容时,在信息过长没法在一屏上显示时,会出现快速滚屏,使得用户没法看清文件的内容,此时可使用more命令,每次只显示一页,按下空格键能够显示下一页,按下q键退出显示,按下h键能够获取帮助。

      3. 管道:|

      管道:一个命令的输出能够经过管道作为另外一个命令的输入。

      管道咱们能够理解现实生活中的管子,管子的一头塞东西进去,另外一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。

      4. 创建连接文件:ln

      Linux连接文件相似于Windows下的快捷方式。

      连接文件分为软连接和硬连接。

      软连接:软连接不占用磁盘空间,源文件删除则软连接失效。

      硬连接:硬连接只能连接普通文件,不能连接目录。

      使用格式:

      ln 源文件 连接文件
      ln -s 源文件 连接文件

      若是没有-s选项表明创建一个硬连接文件,两个文件占用相同大小的硬盘空间,即便删除了源文件,连接文件仍是存在,因此-s选项是更常见的形式。

      注意:若是软连接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

      5. 查看或者合并文件内容:cat

      6. 文本搜索:grep

      Linux系统中grep命令是一种强大的文本搜索工具,grep容许对文本文件进行模式查找。若是找到匹配模式, grep打印包含模式的全部行。

      grep通常格式为:

      grep [-选项] ‘搜索内容串’文件名

      在grep命令中输入字符串参数时,最好引号或双引号括起来。

      例如:

      grep 'a' 1.txt

      经常使用选项说明:

      选项 含义
      -v 显示不包含匹配文本的全部行(至关于求反)
      -n 显示匹配行及行号
      -i 忽略大小写

      grep搜索内容串能够是正则表达式。

      正则表达式是对字符串操做的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

      grep经常使用正则表达式:

      参数 含义
      ^a 行首,搜寻以 m 开头的行;grep -n '^a' 1.txt
      ke$ 行尾,搜寻以 ke 结束的行;grep -n 'ke$' 1.txt
      [Ss]igna[Ll] 匹配 [] 里中一系列字符中的一个;搜寻匹配单词signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt
      . (点)匹配一个非换行符的字符;匹配 e 和 e 之间有任意一个字符,能够匹配 eee,eae,eve,可是不匹配 ee,eaae;grep -n 'e.e' 1.txt

      7. 查找文件:find

      find命令功能很是强大,一般用来在特定的目录下搜索符合条件的文件,也能够用来搜索特定用户属主的文件。

      经常使用用法:

      命令 含义
      find ./ -name test.sh 查找当前目录下全部名为test.sh的文件
      find ./ -name '*.sh' 查找当前目录下全部后缀为.sh的文件
      find ./ -name "[A-Z]*" 查找当前目录下全部以大写字母开头的文件
      find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
      find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
      find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
      find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
      find ./ -perm 777 查找当前目录下权限为 777 的文件或目录

      8. 归档管理:tar

      计算机中的数据常常须要备份,tar是Unix/Linux中最经常使用的备份工具,此命令能够把一系列文件归档到一个大文件中,也能够把档案文件解开以恢复数据。

      tar使用格式 tar [参数] 打包文件名 文件

      tar命令很特殊,其参数前面可使用“-”,也能够不使用。

      经常使用参数:

      参数 含义
      -c 生成档案文件,建立打包文件
      -v 列出归档解档的详细过程,显示进度
      -f 指定档案文件名称,f后面必定是.tar文件,因此必须放选项最后
      -t 列出档案中包含的文件
      -x 解开档案文件

      注意:除了f须要放在参数的最后,其它参数的顺序任意。

      9. 文件压缩解压:gzip

      tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名通常用xxxx.tar.gz。

      gzip使用格式以下:

      gzip  [选项]  被压缩文件

      经常使用选项:

      选项 含义
      -d 解压
      -r 压缩全部子目录

      tar这个命令并无压缩的功能,它只是一个打包的命令,可是在tar命令中增长一个选项(-z)能够调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。

      压缩用法:tar cvzf 压缩包包名 文件1 文件2 ...

      -z :指定压缩包的格式为:file.tar.gz

      解压用法: tar zxvf 压缩包包名

      -z:指定压缩包的格式为:file.tar.gz

      解压到指定目录:-C (大写字母“C”)

      10. 文件压缩解压:bzip2

      tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip同样)。

      tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名通常用xxxx.tar.gz2。

      在tar命令中增长一个选项(-j)能够调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

      压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)

      解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

      11. 文件压缩解压:zip、unzip

      经过zip压缩文件的目标文件不须要指定扩展名,默认扩展名为zip。

      压缩文件:zip [-r] 目标文件(没有扩展名) 源文件

      解压文件:unzip -d 解压后目录文件 压缩文件

      12. 查看命令位置:which

      13. 修改文件权限:chmod

      chmod 修改文件权限有两种使用格式:字母法与数字法。

      字母法:chmod u/g/o/a +/-/= rwx 文件

      [ u/g/o/a ] 含义
      u user 表示该文件的全部者
      g group 表示与该文件的全部者属于同一组( group )者,即用户组
      o other 表示其余之外的人
      a all 表示这三者皆是
      [ +-= ] 含义
      + 增长权限
      - 撤销权限
      = 设定权限
      rwx 含义
      r read 表示可读取,对于一个目录,若是没有r权限,那么就意味着不能经过ls查看这个目录的内容。
      w write 表示可写入,对于一个目录,若是没有w权限,那么就意味着不能在目录下建立新的文件。
      x excute 表示可执行,对于一个目录,若是没有x权限,那么就意味着不能经过cd进入这个目录。

      若是须要同时进行设定拥有者、同组者以及其余人的权限,参考以下:

      数字法:“rwx” 这些权限也能够用数字来代替

      字母 说明
      r 读取权限,数字代号为 "4"
      w 写入权限,数字代号为 "2"
      x 执行权限,数字代号为 "1"
      - 不具任何权限,数字代号为 "0"

      如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename

      chmod 751 file:

      • 文件全部者:读、写、执行权限
      • 同组用户:读、执行的权限
      • 其它用户:执行的权限

      注意:若是想递归全部目录加上相同权限,须要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下全部文件加 777 权限

      14. 切换到管理员帐号

      Ubuntu下切换到root的简单命令:

      15. 设置用户密码:passwd

      在Unix/Linux中,超级用户可使用passwd命令为普通用户设置或修改用户密码。用户也能够直接使用该命令来修改本身的密码,而无需在命令后面使用用户名。

      16. 退出登陆帐户: exit

      • 若是是图形界面,退出当前终端;
      • 若是是使用ssh远程登陆,退出登录帐户;
      • 若是是切换后的登录用户,退出则返回上一个登录帐号。

      17. 查看登陆用户:who

      who命令用于查看当前全部登陆系统的用户信息。

      经常使用选项:

      选项 含义
      -q或--count 只显示用户的登陆帐号和登陆用户的数量
      -u或--heading 显示列标题

      18. 关机重启:reboot、shutdown、init

      命令 含义
      reboot 从新启动操做系统
      shutdown –r now 从新启动操做系统,shutdown会给别的用户提示
      shutdown -h now 马上关机,其中now至关于时间为0的状态
      shutdown -h 20:25 系统在今天的20:25 会关机
      shutdown -h +10 系统再过十分钟后自动关机
相关文章
相关标签/搜索