一、shell命令规则

linux命令的格式

命令   [选项]  [参数]

举例:

>> ls
>> ls -l
>> ls -l /home
  • 命令这一部分肯定是存在
  • 选项和参数不一定存在,可有可无。
    • 选项和参数取决于你使用该命令实现的具体目的。
  • 选项是以"-"来指明的
  • 命令、选项、参数之间是以空格来隔开的,一个或多个空格都视为1个空格。
    • 如:ls -l /home与ls -l /home的目的是一样的
  • 完成linux命令输入后,按下enter键,即可执行该命令

二、基础命令详解(部分)

ls :列出目录内容

  • 常用的选项

    • -l(long的缩写),显示目录下文件的更详细的信息(文件权限、文件最后修改时间、文件大小)
    • -a(all的缩写),显示了隐藏文件
    • -h(human-able的缩写),将文件大小以K(KB)、M(MB)、G(GB)来表示

mkdir : 创建目录

  • 常用的选项

    • -p(parents的缩写),连续创建多级目录(父目录和子目录),如果父目录不存在,则需要加入-p参数。
  • 举例

    >> mkdir dir0   				 //创建了dir0这个目录
    >> mkdir -p dir1/dir2 //创建了dir1(父目录)和dir2(子目录)

rmdir :删除目录

rmdir 目录名

注意:rmdir不能删除非空目录(非空目录:该目录下面有子目录或者文件)

touch:新建文件

  • 举例
```shell
>> touch file1 //在当前目录新建名为file1的文件
```
  • 注意事项

    • 同一目录无法创建同名的文件
    • linux的文件名是区分大小写的,如file1和File1是不同文件。(这一点跟windows不同)

mv:修改文件(目录)名、移动路径

  • 举例

    #mv  旧文件名   新文件名    ====>修改文件名
    >> mv file1 filea //将当前目录的文件file1改名为filea
    # mv 旧目录名 新目录名 ====>修改目录名
    >> mv dir1 dira //将当前目录下的目录dir1改为dira(注意一定是当前目录下) #mv 文件名 目录名 ====>移动路径
    >> mv filea dira //将当前目录下filea移动到dira子目录

cp:复制文件(目录)

  • 常用的选项

    • -i(interactive(交互)的缩写),删除文件(目录)之前,要求你确认是否同意删除
    • r(recursive(递归)的缩写),递归删除指定目录下的子目录和文件
    • f(force(强制)的缩写),强制删除
  • 举例

    cp -r dira dirb  //复制dira目录下的所有内容到dirb
    cp -i file2 dira //如果dira目录下面有同名的file2,会让你二次确认

cat 查看文件内容

  • 常用的选项

    • -n : 显示内容并在内容前显示行号
  • 举例:不同形式的查看

    cat file1          //将file1的内容打印到标准输出中(默认标准标准输出指向终端)
    cat file1 file2 //将file1和file2的内容串联并依次全部打印到标准输出中
    cat -n file1 //显示内容并在内容前显示行号

清除屏幕

  • clear : 刷新屏幕,保留历史命令操作记录;此命令本质上只是让终端向后翻一页,当向上滚动鼠标时,还是可以看到之前命令的操作记录
  • reset:重新初始化屏幕,清除历史命令操作记录

man

  • 说明:

    main有9册内容,上图为9册内容的侧重点

    man ls 			//默认使用第1册
    man 2 ls //选择使用第2册(这样的格式选择其他几册)

进阶命令

find:

​ 作用: 查找符合条件的文件

​ 格式: find 目录名 选项 查找条件

  • 常用的选项:

    • -name: 表示以名字来查找文件
    • -mtime: 表示查找最近几天(几个小时)之内(之前)有变动的文件
  • 举例:

    //举例1:
    >> find /work/001_linux_basic/dira/ -name "test1.txt"
    /*
    说明:
    a)/work/001_linux_basic/dira/指明了查找的路径
    b)-name表明以名字来查找文件
    c)"test1.txt",就指明查找名为test1.txt的文件
    */ //举例2:
    >> find /work/001_linux_basic/dira/ -name "*.txt"
    /*
    说明:* 通配符的意思,表示查找该目录下说有.txt文件
    */ //举例3:
    >> find -name "*.txt" //如果没有指定查找目录,则为当前目录。
    >> find
    //举例4:
    >> find /home -mtime -2 //查找/home目录下两天内有变动的文件

grep:

目的:使用grep命令来查找文件中符合条件的字符串
格式:grep [选项][查找模式] "字符串" [文件名]
  • 常用的选项:

    • r(recursive):递归查找
    • n(number):显示目标位置的行号
    • -w : 全字匹配
  • 举例:

    //举例1
    >> grep -n "aaa" test_a.txt //在文件中查找"aaa" 有显示 //举例2
    >> grep -rn "aaa" ./
    >> grep -rn "aaa" * //跟上述一个意思,在这目录里查找”aaa" //举例3:
    >> grep -wn "aaa" a.txt
    /*
    只会找aaa的内容,若是”aaabba" 也不算全字匹配 aaa basd 这样算
    */

压缩/解压缩(gzip、‘bzip2、tar)

压缩的概念

1)压缩的目的:

在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。

接受者接受文件后,解压即可。

​ 2)压缩的类型

有损压缩、无损压缩。

a)有损压缩:

如mp4视频文件,即使压缩过程中,减少了很多帧的数据,对观看者而言,也没有影响。当然mp3音乐文件也是有损压缩。

b)无损压缩:

如普通文件的压缩,为了保证信息的正确传递,不希望文件经过压缩或解压后,出现问题。

单个文件的压缩(解压)使用gzip 和bzip2

多个文件和目录使用tar

gzip

  • 常用的选项:

    1. -l(list) 列出压缩文件的内容

    查看

    gzip -l 压缩文件名

    比如:gzip -l pwd.1.gz

    2)-k(keep) 在压缩或解压时,保留输入文件;

    解压

    gzip -kd 压缩文件名

    比如:gzip -kd pwd.1.gz

    该压缩文件是以.gz结尾的单个文件

    3)-d(decompress) 将压缩文件进行解压缩

    压缩

    gzip -k 源文件名

    比如:gzip -k mypwd.1

    得到了一个.gz结尾的压缩文件

    4) 实测(CentOS7)无-k选项;只有-c 表示保留原文件

    压缩: gzip -c a.txt > a.txt.gz

    **解压 : gzip -cd a.txt.gz > a.txt **

  • 注意事项:

    • 如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,并删除原有的文件,所以说,推荐使用gzip -k(c) 来压缩源文件。

    • 相同的文件内容,如果文件名不同,压缩后的大小也不同。

    • gzip只能压缩单个文件,不能压缩目录。

bzip2

​ 注意:若是Linux版本中默认是无安装bzip2的,请执行(先进入root用户)>>yum -y install bzip2

  • 常用的选项:

    1)-k(keep) 在压缩或解压时,保留输入文件;

    解压

    bzip2 -kd 压缩文件名

    比如:bzip2 -kd pwd.1.bz2

    该压缩文件是以.gz结尾的单个文件

    2)-d(decompress) 将压缩文件进行解压缩

    压缩

    bzip2 -k 源文件名

    比如:bzip2 -k mypwd.1

    得到了一个.bz2结尾的压缩文件

  • 注意事项:

    1)如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件,并删除原有的文件所以说,推荐使用bzip2 -k 来压缩源文件。

    2)bzip2只能压缩单个文件,不能压缩目录。

bizp2 和 gzip 比较

​ 单个文件的压缩使用gzip或bzip2,压缩有两个参数:1)压缩时间 2)压缩比

一般情况下,小文件使用gzip来压缩,大文件使用bzip2来压缩。

tar

gzip、bizp2只能对一个文件进行压缩,而不能对多个文件和目录进行压缩, 所以需要tar来对多个目录、文件进行打包和压缩。

  • 常用的选项:

    • -c(create) 表示创建用来生成文件包
    • -x:表示提取,从文件包中提取文件
    • -t可以查看压缩的文件。
    • -z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
    • -j使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
    • -v(verbose)详细报告tar处理的信息
    • -f(file)表示文件,后面接着一个文件名。
    • -C <指定目录> 解压到指定目录
  • 举例:

    注意:

    tar -czvf与tar czvf是一样的效果,所以说,后面统一取消-。

    //举例1:
    //压缩 tar -czvf 压缩文件名 目录名
    >> tar czvf dira.tar.gz dira //举例2:
    //查看 tar tvf 压缩文件名
    >>tar tvf dira.tar.gz //举例3:
    //解压
    //tar xzvf 压缩文件名
    //tar xzvf 压缩文件名 -C 指定目录
    >>tar xzvf dira.tar.gz //解压到当前目录
    >>tar xzvf dira.tar.gz -C /home/book //解压到/home/book

    上述例子使用tar打包、gzip压缩;若是tar打包、bzip2压缩 z 改成 j就可以了



第二篇:shell基础命令(部分)的更多相关文章

  1. 【CDN+】 Hbase入门 以及Hbase shell基础命令

    前言 大数据的基础离不开Hbase, 本文就hbase的基础概念,特点,以及框架进行简介, 实际操作种需要注意hbase shell的使用. Hbase  基础 官网:https://hbase.ap ...

  2. 运维 04 Shell基础命令(二)

    Shell基础命令(二)   查看Linux的发行版 cat /etc/redhat-release cat /etc/os-release 查看系统用户的id信息 id 用户名 id root id ...

  3. 运维02 Shell基础命令(一)

    Shell基础命令(一)   Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应 ...

  4. 前端第二篇---前端基础之CSS

    前端第二篇---前端基础之CSS 目录 一.css介绍 二.css语法 三.css的几种引入方式 四.css选择器 五.css属性相关 六.盒子模型 拓展 一.css介绍 CSS(Cascading  ...

  5. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  6. Linux从入门到进阶全集——【第十四集:Shell基础命令】

    1,Shell就是命令行执行器 2,作用:将外层引用程序的例如ls ll等命令进行解释成01表示的二进制代码给内核,从而让硬件执行:硬件的执行结果返回给shell,shell解释成我们能看得懂的代码返 ...

  7. shell基础命令

    什么是脚本? 脚本简单地说就是一条条的文字命令(一些指令的堆积),这些文字命令是可以看到的(如可以用记事本打开查看.编辑). 常见的脚本: JavaScript(JS,前端),VBScript, AS ...

  8. python之路第二篇(基础篇)

    入门知识: 一.关于作用域: 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 10 == 10: name = 'allen' print name 以下结论对吗? ...

  9. Shell基础命令(一)

    Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...

随机推荐

  1. 深入理解C++中的初始化

    C++经过这么多年的发展,已然成了一种文化和艺术,而这种艺术和文化并不是C++所固有的,是C++在各个方面的应用的总结和艺术化的结果.C++看起来比较复杂,但是深入其中你会发现C++是那么优美而富有哲 ...

  2. Java学习---多线程的学习

    基础知识 每个正在系统上运行的程序都是一个进程(process).每个进程包含一到多个线程(thread).进程也可能是整个程序或者是部分程序的动态执行. 线程是一组指令的集合,或者是程序的特殊段,它 ...

  3. 使用TryUpdateModel进行数据更新

    在控制器中可以使用TryUpdateModel或者UpdateModel方法来对指定的数据Model进行更新,如图所示的更新操作. POST请求数据如下所示 使用如下代码就可以对指定的字段进行更新 使 ...

  4. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  5. August 14th 2017 Week 33rd Monday

    Life is like a watch, you can return to the starting point, they are not yesterday! 人生就像钟表,可以回到起点,却已 ...

  6. [EffectiveC++]item02:尽量以const,enum,inline代替#define

  7. PhoneGap获取设备信息

    一. 获取设备信息的方法列表(如果没有或者检测不出来就显示undefined) 1.device.name              设备名称(一些国产机检测不出来) 2.device.model   ...

  8. gluoncv 用已经训练好的模型参数,检测物体

    当然这个模型参数,最好用自己的,否则不够精确,我自己的还没训练完. from matplotlib import pyplot as plt import gluoncv from gluoncv i ...

  9. POJ2074 Line of Sight

    嘟嘟嘟 题意:用一条水平线段表示以栋房子:\((x_0, y_0)(x_0', y_0)\).然后有一条低于房子的水平线段\(l_0\),代表你可以到的位置.接下来输入一个数\(n\),一下\(n\) ...

  10. UVA 12230 Crossing Rivers

    嘟嘟嘟 虽然分类是期望dp,不过好像是最水的 因为在陆地上的时间和概率是固定的,所以只用考虑过河的期望时间. 对于一条河p, l, v,p好像没什么用……不管了,首先期望时间我觉得可以这么算:期望时间 ...