Linux 2 常用指令

1 使用命令

1.1 进入shell界面

  • “开始”->“系统工具”->“终端”
  • Shell主提示符
    • 例子:[mengqc@localhost ~]$ 是shell主提示符. 其中:
      • “mengqc” 表示当前用户名
      • “localhost” 是默认的主机名
      • “~” 表示默认用户主目录
      • “$” 表示当前用户是普通用户. 对于超级用户来说, 该位置出现的标识为 “#”

1.2 命令格式

  • 一般命令格式:命令名 [选项] [参数]
    • 例子: cp –f file1.c myfile.c
      • cp:copy
      • -f:选项
      • 后面两个参数
    • 使用bash命令时,应注意以下几点:
      (1)命令名必须是小写的英文字母
      (2)命令名、选项和参数彼此间必须用空格或制表符隔开
      (3)一般格式中由方括号括起来的部分是可选的
      (4)选项是对命令的特别定义
      (5)命令行的参数提供命令运行的信息或命令执行过程中所使用的文件名。
      (6)如果命令行中没有提供参数,命令将从标准输入文件(即键盘)上接收数据
      (7)命令在正常执行后返回一个0值,表示执行成功
      (8)Linux操作系统的联机帮助对每个命令的准确语法都做了说明
  • 常用命令
    • cal命令
      | 显示公元1-9999年的日历
      • 一般格式: cal [选项] [[[day]month]year]
      • 例子
        • cal 10
          | 公元十年
        • cal 10 2009
          | 公元2009年10月
    • cd命令
      | 目录处理命令 change directory
      • cd [dirName]
        | 要切换的目标目录
      • cd …
        | 回到上一级目录(注意cd后要空格再…)
      • cd -
        | 回到上一个目录
      • cd ~
        | 跳回到自己的home目录
    • clear命令
      | 清空屏幕信息
    • date命令
      | 在屏幕上显示或设置系统的日期和时间
      • date [选项] [+格式控制字符串]
        • 格式控制字符串用于控制日期和时间输出的格式,通常用单引号括起来
          | 例子:date '+Today is %D, and now is %r ’
          %D 日期 包含年月日
          %r 时间 含时分秒(小时以12小时AM/PM表示)
          %Y 年份 四位数表示
          %m 月份
          %d 日期
          %H 小时
          %M 分钟
          %S 秒
      • date [选项] [MMDDhhmm[[CC]YY][.ss]]
        | MM月份,DD日,hh小时,mm分钟,CC年份前两位数字,YY年份后两位数字,ss秒数
    • echo命令
      | 将命令行中的参数显示到标准输出(屏幕)上
      • 一般格式: echo [选项] [string]
    • history
      • !!
        | 上一个命令
      • !n
        | 第n个命令
      • !-n
        | 倒数第n个命令
      • !cmd
        | 以cmd开头的命令
    • ls命令
      | 列出指定目录的内容
      • -a
        | 显示所有文件及目录(.开头的隐藏文档不列出)
      • -l
        | 详细列出:权限、文件计数、所有者、所属组、文件大小、文件最后修改时间、文件名
        | - 开头代表是文件
        | d 开头代表是目录
        | l 开头代表是软连接
      • -r
        | 将文件以相反次序显示
      • -t
        | 将文件以建立时间的先后次序列出
      • -n
        | 以用户识别码和群组识别码替代其名称
      • -s
        | 显示文件和目录的大小,以区块为单位
      • ls -ld [目录]
        | 显示目录本身的信息
      • -i
        | 查询文件的 序号index
        | i节点号
      • h
        | 人性化:占用字节显示出更直观的单位
    • passwd命令
      | 更改自己的密码
    • pwd命令
      | 显示出当前目录的路径:print working directory
    • su命令
      | 更改用户身份
    • who命令
      | $ who 列出所有正在使用系统的用户、所有终端名和注册到系统的时间
      • 一般格式: who [选项] [参数]
    • 输出重定向
      | 把结果输出到指定的文件(Linux的标准输出是屏幕)
      • >
        | 不存在则新建文件,如果存在则覆盖
      • >>
        | 不存在则新建,存在则追加到文件末尾
    • 方向键:上下左右
    • Tab
      | 补全功能
    • cat
    • cal
  • 练习:一些简单的操作
    1.在终端尝试由cauc用户转为root用户,再从root用户转为cauc用户,什么情况下需要输入密码?
    2.利用who命令和查看passwd文件看到的用户一样吗?
    3.为cauc用户更改密码,确实更改成功后别忘了改回来。
    4.用ls命令显示目录/usr的详细信息,并知晓各列含义。

2 用户和组

  • /ect/passwd文件

    • 每一行代表一个用户
  • 用户保存在/etc/passwd中
    | 可以用cat /etc/passwd查看
    1、用户名
    2、保存密码
    | “影子密码”保存在/etc/shadow文件中,这里只显示x
    3、用户id:uid
    | 小于500是系统用户
    4、主要组id:gid
    5、备注信息
    6、主目录
    7、登录shell
    | /bin/bash
    | /bin/csh
    | /bin/ksh

  • 三种用户

    • 一般用户
      | userid>=500
    • 超级用户root
      | userid=0
    • 系统用户
      | userid<500
  • 命令

    • passwd 改密码
    • useradd和adduser (权限:root用户)
    • su 切换用户
    • groups 查看用户所支持的组
    • usermod 创建用户后修改其属性
      -l 改变用户名称
      -G 改变用户支持的用户组
      -e YYYY-MM-DD 设置失效日期
      -L 不让他们登录566
      -U 反转-L的效果
      -s 改变shell的实际文件
      -c 添加备注信息
      -u 改变用户uid/用户标志号
      -g 改变用户的gid/组标志号
      -aG 附加组
    • groupadd 为系统添加新的组
    • userdel 删除用户
      • -r 用户主目录及其以下所有条目都会被删除
        | userdel -r username
  • /etc/shadow
    | 只有root用户才能看
    1、用户名
    2、加密密码
    3、最近更改密码的日期
    4、密码不可更改的天数
    5、密码需要重新更改的天数
    6、密码更改期限前的警告期限
    7、密码过期的宽限时间
    8、帐号失效日期
    9、保留字段

  • 什么是用户组

3 文件和目录操作命令

文件系统概念

  • 文件和目录组织成单根的倒置树结构
  • 文件系统从root目录开始,表示为:‘/’
  • 命名大小写敏感
  • 路径以‘/’分隔
  • 文件名由:文件名 和 扩展名 两部分构成
  • 以 ‘.’ 开头的文件名是隐含文件

文件类型

  • 1 普通文件

    • 文本文件:由ASCII字符构成
    • 数据文件:由来自应用程序的数字型和文本型数据构成
    • 可执行的二进制程序:由机器指令和数据构成
  • 2 目录文件

    • 目录文件:成对的“I节点号/文件名”构成的列表
      • I节点:检索I节点表的下标,存放文件的状态信息
      • 文件名:是给文件分配的字符串,用来标识文件
        • ‘.’ 表示目录本身
        • ‘…’ 表示该目录的父目录
  • 3 设备文件
    在Linux系统中,所有设备都作为一类特别文件对待,用户象使用普通文件那样对设备进行操作,从而实现设备无关性。

  • 4 符号链接文件
    | 类似于快捷方式,存放一个路径

目录结构

  • 1 Linux树形目录结构
  • 2 根目录
  • 3 工作目录和主目录
  • 4 路径名
    • 什么是路径名
    • 绝对路径名
    • 相对路径名
    • 如何正确使用路径名

命令

- 创建和删除目录的命令

  • mkdir命令
    | 创建目录make directories

    • 一般格式: mkdir [选项] dirname…
    • 例子:mkdir -m 700 /home/cauc/test1
      | 在目录/home/cauc下建立子目录test1,并且只有文件主有读、写和执行 权限,其他人无权访问
    • 选项:-p 递归创建
  • rmdir命令
    | 删除空目录:remove directory
    | 当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

    • 一般格式: rmdir [选项] … dirname…

- 改变工作目录显示目录内容命令

  • cd命令

    • 将当前目录改到用户主目录:cd ~
  • pwd命令
    | 显示出当前目录的路径:print working directory

    • 显示出当前目录的绝对路径
  • ls命令

    • 列出指定目录的内容
    • -l 以长格式显示文件的详细信息

- 复制、删除、移动文件命令

  • cp命令
    | 如果源文件是普通文件,则该命令把它复制到指定的目标文件中;
    | ​如果是目录,就需要使用“-r”选项,将整个目录下所有的文件和子目录都复制到目标位置。
    | copy 复制命令

    • 一般格式: cp [选项]… 源文件或目录 目标文件或目录
    • 选项
      -r 将目录下所有文件及其子目录复制到目标目录中
      -p 保留文件属性
      -i 交互式地复制(询问是否覆盖)
      -f 覆盖已存在的目标文件而不给出提示
      -a 保留链接,文件属性地复制
      -s 复制成为符号链接文件
    • 例子: cp mfile /home/cauc/exam1
      | 将文件mfile复制到目录/home/cauc下,并改名为exma1
  • mv命令
    | move 移动/重命名

    • 一般格式 mv [选项] source dest
      | dest是目录 : 将source移动到dest
      | dest是文件 : 将source重命名
    • 选项
      -i 交互
      -f 覆盖
  • rm命令
    | remove删除任意指定文件
    | 只能删除文件,删除文件需要增加选项

    • 一般格式: rm [选项]… 文件…
      • -i 交互式删除
        n不删除
        y删除
      • -r 递归删除
        | 全部删除
      • -f 不提示直接删除,忽略不存在文件
      • -rf 删除当前目录下(除隐含文件外)所有文件和子目录
        很危险,要慎用
  • wc命令
    -l 统计行数
    -w 统计字数
    -c 统计字节数

文件显示命令

  • touch命令
    | 创建文件

    • touch 绝对路径 文件名
      | 这样写比较好
    • -m
    • 文件命名
  • cat命令
    | 显示文件内容

    • -n 加上行号
      | number
    • tac命令
      | 倒着显示文件内容
  • more命令
    | 分页显示文件内容

    • 一般格式 : more 选项 文件

      • 空格f一页一页往后翻
      • 回车一行一行往后翻
      • qQ退出
        | quit
    • -dc 先清屏,然后显示文件内容, 并在屏幕最下方显示完整的百分比

    • -c 不滚动翻屏

      • space 空格键 : 向下翻页
      • enter 回车 : 向下翻一行
      • /字符串 : 向下搜索字符串
      • q : 离开more, 不再显示
  • ==less命令=
    | 分屏分页显示文件内容

    • 允许用户向前向后浏览文件
    • pageup 向上翻一页
    • ↑键 向上翻一行
    • /搜索内容 匹配关键词,按 n 查看下一个匹配的关键词
    • q退出
  • head命令
    | 在屏幕上显示指定文件的开头若干行,默认前10行

    • -n 指定行数
  • tail命令
    | 显示末尾几行,默认后十行

    • -n 指定行数
    • -f 动态显示文件末尾内容
  • file命令
    | 文件类型

链接文件的命令

  • ln命令
    | link

  • 硬链接

    • ln [源文件] [链接文件]
      | 硬链接
    • 硬链接所有的信息都和源文件相同
    • 硬链接和源文件可以同步更新
    • 源文件丢失,硬链接还是可以访问
    • 如何辨别硬链接?
    • 不能对目录文件做硬链接
    • 不能再不同文件系统之间做硬链接
  • 软连接
    | 也称为符号链接

    • ln -s [源文件] [链接文件]
      | -s 软连接
      | 类似于快捷方式
    • 软连接的权限都为lrwxrwxrwx,但实际上还是看源文件
    • 软连接的存储大小比较小,是路径名中的字节数
    • 软连接有明显的指向,有个箭头指向源文件
  • 硬链接与软连接的区别

    • 硬链接不能跨分区。软连接可以跨分区
    • 硬链接不能针对目录使用。软连接允许对目录使用

改变文件或目录存取权限命令

  • 用户和权限

    • 4种用户:文件主u、同组用户g、其他用户o、超级用户
    • 3种访问方式:r 读、w 写、x 可执行或查找
    • 权限
      • 文件权限:r 浏览文件、w 修改文件、x 将文件作为命令使用
        | 对文件有w写权限只是可以修改文件的内容
      • 目录权限:r 列出目录内容、w 添加/删除文件、x 在目录中搜索已知文件
        | 删除文件的前提是对目录有w写权限
  • umask命令
    | the user file-creation mask设置限制新文件的默认权限

    • 一般格式: umask [-p] [-S] [mode]
    • mode
      • 以数字开头:八进制数字
      • 否则:符号方式
    • 1 查看当前默认权限
      | 新建文件权限的掩码 = 默认权限
      -S
      | 得到字符结果
      -p
      | 得到数字结果
    • 2 例子:取消组用户的写权限、其他用户的读、写和执行权限
      • 用字符:umask u=rwx,g=rx,o=
      • 用数字:unmask 0027
    • 3 使用八进制数值设置[mode]
      • 用数字:umask 0037
        | 得到结果:
        | umask -S
        | ​u=rwx,g=r,o=
  • chmod命令
    | change the permissions mode of a file
    | ​只有文件主或超级用户root才有权限使用chmod命令改变存取权限

    • 以符号模式改变权限
      • 一般格式: chmod [选项]… MODE[,MODE]… 文件…
      • MODE = [who] [操作符号] [mode]
      • who:u——user\g——group\o——others\a——all
      • 操作符号:+ 、- 、=
      • mode:r 、w 、x
      • 例子
        • chmode a+x ex1
          | 将文件ex1的权限改为所有用户都有执行权限
        • chmod u=r,ug=x ex1
          | 将文件ex1的权限重新设置为文件主可以读和执行,组用户可以执行,其他用户无权访问
    • 以绝对方式改变权限
      • 一般格式: chmod [选项]… OCTAL-MODE 文件…
        • 例子: r w x r - x r - -
          111 101 100
          7 5 4
      • r——4,w——2,x——1
      • 例子:chmod 664 ex1
        | 使文件ex1的文件主和同组用户具有读、写权限,而其他用户只可读
      • -R 递归修改

改变用户组和文件主的命令

  • chown命令
    | change file ownership 改变某个文件/目录的所有者/所属的组

    • 只有root用户才可以改变文件的所有者
      | root和所有者可以改变文件的属性
    • chown [选项] [owner/group] [file]
  • chgrp命令
    | change file group ownership 改变文件/目录所属的用户组

    • chgrp [用户组] [文件/目录]

文件搜索命令

  • find命令
    • find [搜索范围] [匹配条件]
    • -name
      | 根据文件名搜索
      • find /etc -name a
        | 在文件 etc 中搜索名字叫做 a 的文件(严格一致)
      • find /etc -name *a*
        | 在文件 etc 中搜索名字包含 a 的文件(关键字查找)
        代表匹配任意字符
      • find /etc -name a*
        | 在文件 etc 中搜索以 a 开头的文件
        | *代表匹配任意字符
      • find /etc -name a???
        | 匹配以 a 开头,以任意三个字符结尾的文件
        ?匹配某个单个字符
      • -name 严格区分大小写
      • -iname 不区分大小写
    • -size
      | 根据文件大小来查找

练习:文件和目录
1 在linux进行用户权限设置,写出相关代码并回答问题。具体要求为:

  • 1.分别创建三个用户Tom、Jack、Jerry,将其登录密码全部设置为123456;
  • 2.用Tom用户创建目录/tmp/Tom,用Jack用户创建目录/tmp/Jack;
  • 3.此时Jack向目录/tmp/Tom里新建文件可以吗?
  • 4.给目录/tmp/Tom设置相应的属性,使其成为组成员的共享文件夹
  • 5.用root用户将Jack添加到Tom所在的组。
  • 6.此时Jack向目录/tmp/Tom里新建文件可以吗?如果可以文件主和文件属组分别是什么?

2 在系统中添加两个用户: Ventura、Hogan
| 补充:请先添加题目中用到的用户和组

  • Ventura同时属于次要组governor和wrestle
  • Ventura撰写了自己的摔跤计划plans.txt,并将它放到目录/tmp下
  • Ventura希望将他的摔跤计划和用户Hogan以及其他摔跤组的成员共享,但他不希望组外的成员访问
  • 用户Hogan想往用户Ventura的计划上添加内容,可以吗?怎么做?
  • 用户Hogan对他自己的贡献很满意,他希望将这个计划公开,让所有人都能读到这个文件,可以实现吗?

3 使用cauc和jsj用 户验证文件和目录的权限

  • 用户cauc在/tmp目录下建立一个目录pub和mail,并且设置mail的权限为文件主可读、写和执行,文件属组可读、写和执行,其他用户可读、写。
  • 用户cauc在pub目录下创建文件file1存储当前的月份日历,在mail目录下创建文件file2存放系统当前的日期。查看file1和file2的权限。
  • 创建用户jsj试着用cat命令打开这两个文件。可以吗?
  • 用户jsj想试着在pub和mail目录下创建文件file,它可以实现吗?需要用户cauc做怎样的修改它才能创建文件

4 练习使用cp命令

  • 1.以交互式的方式将家目录下的.bashrc复制到/tmp下,并重命名为bashrc;
    | $ cp -i /home/.bashrc /tmp/bashrc
  • 2.以其他用户身份(即非登录用户)将/var/log/wtmp复制到/tmp下,并查看一下文件属性,如果希望属性完全一致应该怎么办?
    | -a 保留属性
  • 3.将家目录下的所有内容复制到/tmp;
    | -r 所有都复制
  • 4.为 1 复制的bashrc建立一个符号链接文件
    | -s 复制称为符号链接文件

总结

  • 对于目录权限的理解
    - r:查看目录下的子目录名和文件名(ls)
    - w:在目录下添加/删除目录/文件(必须有可执行的权利)
    - x:访问目录中的文件和子目录(cat)

4 联机帮助命令

  • whatis命令
    | 显示命令的简短描述
  • –help选项
    | 两个-
    | 大部分命令都支持–help选项
  • man命令
    | manual手册
    • man [chapter] command
    • 浏览man手册
      • 上下翻页
      • /text查询
      • 按 q 退出
  • info命令
  • 访问Red Hat站点:http://www.redhat.com/docs/
  • 知识库:http://kbase.redhat.com
    | 常规问题和解决方案

5 进程管理的命令

  • Linux系统中进程状态的变化

  • ps命令
    | 查看进程状态的命令

    • ps [选项]
      直接ps
      | 列出每个与你的当前shell有关的进程的基本信息
    • -ef
      | 显示系统中所有进程的全面信息
    • aux
      | 所有终端上所有用户的有关进程的所有信息
  • kill命令
    | 终止进程的运行

    • kill 在默认情况下,采用编号为 15 的TERM信号。用编号为 9 的KILL信号,可以强行“杀掉”该进程。
  • sleep命令
    | 使进程暂停由时间值所指定的秒数

  • &
    | 放在命令最后用空格隔开:后台运行

  • wait命令
    | 等待指定进程,并返回其终止状态

  • crontab命令
    | 循环执行的例行性命令

    • 参数

      • -e
        | 编辑crontab工作内容
      • -u
        | 只有root 用户可以,帮助其他用户建立/删除crontab
      • -l
        | 查看crontab工作内容
      • -r
        | 删除crontab的工作内容
    • minute hour day(of month) month day(of week) command
      | 分钟 小时 日期 月份 周几 命令

    • 辅助符号

      • *
        | 任何时间
      • ,
        | 分隔时段
      • -
        | 一段时间
      • */n
        | 每隔 n 单位时间
    • root用户可以编辑其他用户的例行性命令

    • 系统的例行性任务存放在/etc/crontab中

    • 普通用户编辑的文件是/usr/bin/crontab

    • 练习:进程管理

      • 用cauc登录系统,编写定时任务,于2013年9月29日上午11点30分在文件夹/tmp下创建文件cauc_data,并查看定时任务是否正常执行。
      • 假定你的爱人生日是9月30日,你每年的30日凌晨00:01分自动发给她/他一份邮件,所用命令为: mail 爱人名字 < /tmp/lover.txt (事先编辑好的文本)

磁盘使用情况统计的命令

  • df命令
    | 报告文件系统中未用磁盘空间的情况,默认磁盘盘块以 1k 字节为单位
  • du命令
    | 统计出每个目录占用磁盘空间的情况。
    | 可以逐级进入每个子目录并显示出该目录的磁盘利用情况

文件压缩和解压缩命令

  • gzip命令
    | 对文件进行压缩和解压缩

    • gzip [选项] [文件名]
      | 压缩后原文件变为压缩文件,后缀.gz
    • -d 解压缩
      | 解压缩后,压缩文件消失,变为普通文件
    • -dv
      | 把文件解压,并列出详细信息
    • -l
      | 对于压缩文件,详细列出文件信息,但是不解压
    • –fast
      | 文件下每个文件都压缩
  • zip命令
    | 压缩命令

    • zip [选项] 被压缩文件名 需要压缩的文件名
      | 压缩后原文件还在,不影响。(这与gzip不同)
  • unzip命令

    • unzip [选项] 被压缩文件名
    • -v 不解压,只浏览信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值