美文网首页
Linux的简单命令(二)

Linux的简单命令(二)

作者: 思君_4cd3 | 来源:发表于2019-04-09 20:56 被阅读0次

    每个命令的具体功能请参考下面网站:
    http://www.runoob.com/linux/linux-command-manual.html

    file

    作用:确定文件类型。
    格式:file 目标文件
    使用说明:
    使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。
    最重要是可以查可执行程序是哪一种CPU体系下编译,是静态编译还是动态编译.这是嵌入式编译非常重要

    cat、tac:

    作用:连接并显示指定的一个和多个文件的有关信息。
    格式:cat/tac[选项]文件1、文件2…
    tac 从最后一行开始显示

    • -n 或 --number:由 1 开始对所有输出的行数编号。
    • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
    • -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
    • -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
    • -E 或 --show-ends : 在每行结束处显示 $。
    • -T 或 --show-tabs: 将 TAB 字符显示为 ^I。
      eg:
    • cat hello.txt
      显示hello.txt 内容
    • cat hello1.txt hello2.txt > hello3.txt
      把hello1.txt内容与hello2.txt内容合并,输出到hello3.txt中
    • cat -n hello.java
      参数-n,由第一行开始对所有输出的行数编号
      把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
    • cat -n textfile1 > textfile2
      把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
    • cat -b textfile1 textfile2 >> textfile3
      清空 /etc/test.txt 文档内容:
    • cat /dev/null > /etc/test.txt
    more、less:

    作用:more用于在终端按屏显示文本文件。
    less同more,区别是在显示文本时,允许用户使用上
    下键前后翻阅文件。
    格式:more/less filename
    使用说明:
    通常more和less命令可以借用管道符“|”与其他命令同时使用。
    进入显示状态后,按q或Q键可退出显示状态。
    num 一次显示的行数

    • -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
    • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
    • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
    • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
    • -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
    • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
    • +num 从第 num 行开始显示
      Eg:
      逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
    • more -s testfile
      从第 20 行开始显示 testfile 之文档内容。
    • more +20 testfile
      PS:
      Enter 向下n行,需要定义。默认为1行
      Ctrl+F 向下滚动一屏
      空格键 向下滚动一屏
      Ctrl+B 返回上一屏
      = 输出当前行的行号
      :f 输出文件名和当前行的行号
      V 调用vi编辑器
      !命令 调用Shell,并执行命令
      q 退出more
    head、tail:

    作用:head用于显示文本文件的前几行。tail用于显示文
    本文件的后几行。
    格式:

    • head [-num] filename
      -num为显示指定文件的前num行。
    • tail [-num] filename
      -num表示从距文件尾num行处开始显示。
    • tail -f filename
      tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
      会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
    • -f 循环读取
    • -q 不显示处理信息
    • -v 显示详细的处理信息
    • -c<数目> 显示的字节数
    • -n<行数> 显示文件的尾部 n 行内容
      显示文件 notes.log 的最后 10 个字符:
    • tail -c 10 notes.log
      PS:若单独使用head,默认显示10行的内容。若单独使用tail,默认显示末尾10行内容。
    touch:

    作用:touch用于创建一个新文件。
    格式:touch filename
    语法:
    touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

    • a 改变档案的读取时间记录。
    • m 改变档案的修改时间记录。
    • c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
    • f 不使用,是为了与其他 unix 系统的相容性而保留。
    • r 使用参考档的时间记录,与 --file 的效果一样。
    • d 设定时间与日期,可以使用各种不同的格式。
    • t 设定档案的时间记录,格式与 date 指令相同。
    • --no-create 不会建立新档案。
    • --help 列出指令格式。
    • --version 列出版本讯息。
      PS:如果文件已经存在,则改变这个文件的最后修改日期
    nl:

    作用:以输出行号的方式显示文件。
    格式:nl [filename]

    ln:

    作用:为某一个文件在另外一个位置建立一个符号连接。当需要在不同目录用到相同文件时。Linux允许用户不用拷贝文件,只需要将其它目录文件ln命令链接即可,这样就不用重复地占用磁盘空间。
    格式:ln [选项] 目标 目录
    使用说明:

    • -s参数表示建立符号链接。
      ln的链接分为软链接和硬链接两种:软链接即带-s参数,它只会在用户选定的位置生成文件的镜像(特殊的文件)。硬链接是不带-s参数的ln,硬链接并不生成新的文件,而通过索引点进行链接。软链接和硬链接都不会重复占用磁盘空间。

    • -b 删除,覆盖以前建立的链接

    • -d 允许超级用户制作目录的硬链接

    • -f 强制执行

    • -i 交互模式,文件存在则提示用户是否覆盖

    • -n 把符号链接视为一般目录

    • -s 软链接(符号链接)

    • -v 显示详细的处理过程
      给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:

    • ln -s log2013.log link2013
      给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同

    • ln log2013.log ln2013

    命令功能 :

    Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
    不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

    • 软链接:
      1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
      2.软链接可以 跨文件系统 ,硬链接不可以
      3.软链接可以对一个不存在的文件名进行链接
      4.软链接可以对目录进行链接
    • 硬链接:
      1.硬链接,以文件副本的形式存在。但不占用实际空间。
      2.不允许给目录创建硬链接
      3.硬链接只有在同一个文件系统中才能创建
    grep:

    作用:查找某个目录下包含关键字的文件
    格式:grep 关键字 文件
    使用方法:
    在/usr/src/linux/Documentation的所有文件中查找magic关键字

    • grep magic /usr/src/linux/Documentation/*
    • -r 表示不仅在当前目录查询,而且还是查询子目录
      grep 的一个重要作用是通过管道用于过滤命令输出的结果
    • cat hello.c | grep “printf”
    管道概念:

    管道是linux中信息通道的重要方式。它是把一个程序的输出直接连接到另一个程序的输入,而不经过任何中间文件。管道线是连接程序管道的通路。在shell中用字符“|”表示。如: cat hello.c |less,即表示将cat hello.c的结果直接输入到less的程序中。

    • grep 定位字符信息
    • wc 统计字符信息
    • sort 排序字符信息
    wc:

    利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
    语法:
    wc [-clw][--help][--version][文件...]
    参数:

    • -c或--bytes或--chars 只显示Bytes数。
    • -l或--lines 只显示行数。
    • -w或--words 只显示字数。
    • --help 在线帮助。
    • --version 显示版本信息。
      eg:
      在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。使用的命令为:
    • wc testfile
      使用 wc统计,结果如下:
      $ wc testfile # testfile文件的统计信息
      3 92 598 testfile # testfile文件的行数为3、单词数92、字节数598
      其中,3 个数字分别表示testfile文件的行数、单词数,以及该文件的字节数。
      如果想同时统计多个文件的信息,例如同时统计testfile、testfile_1、testfile_2,可使用如下命令:
    • wc testfile testfile_1 testfile_2 #统计三个文件的信息
      输出结果如下:
      $ wc testfile testfile_1 testfile_2 #统计三个文件的信息
      3 92 598 testfile #第一个文件行数为3、单词数92、字节数598
      9 18 78 testfile_1 #第二个文件的行数为9、单词数18、字节数78
      3 6 32 testfile_2 #第三个文件的行数为3、单词数6、字节数32
      15 116 708 总用量 #三个文件总共的行数为15、单词数116、字节数708
    sort:

    sort命令用于将文本文件内容加以排序。
    sort可针对文本文件的内容,以行为单位来排序。
    语法:
    sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

    • -b 忽略每行前面开始出的空格字符。
    • -c 检查文件是否已经按照顺序排序。
    • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
    • -f 排序时,将小写字母视为大写字母。
    • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
    • -m 将几个排序好的文件进行合并。
    • -M 将前面3个字母依照月份的缩写进行排序。
    • -n 依照数值的大小排序。
    • -o<输出文件> 将排序后的结果存入指定的文件。
    • -r 以相反的顺序来排序。
    • -t<分隔字符> 指定排序时所用的栏位分隔字符。
    • +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
    • --help 显示帮助。
    • --version 显示版本信息。
      eg:
      在使用sort命令以默认的式对文件的行进行排序,使用的命令如下:
    • sort testfile
      sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。
      使用 cat命令显示testfile文件可知其原有的排序如下:
    • $ cat testfile #testfile文件原有排序
      test 30
      Hello 95
      Linux 85
      使用sort命令重排后的结果如下:
    • $ sort testfile #重排结果
      Hello 95
      Linux 85
      test 30

    进程操作相关命令:

    • ps 显示当前系统中由该用户运行的进程列表
    • kill 输出特定的信号给指定的进程,并根据该信号而完成指定的行为
    • top 动态显示当前系统中由该用户运行的进程列表
    • renice 修改一个正在运行的进程的优先级
    • pstree 列出当前的进程,以及它们的树状结构
    ps:

    作用:显示当前系统中由该用户运行的进程列表。
    格式:ps [选项]
    常见参数:

    • -a/A 显示终端所有进程,包括其他用户的进程
    • -u 查看进程所有者及详细信息
    • -x 显示没有控制终端的进程
    • -e 显示所有进程
      eg:
    • ps -A 显示进程信息
    • ps -u root //显示root进程用户信息
    • ps -ef //显示所有命令,连带命令行
    kill:

    作用:输出特定的信号给指定PID的进程,并根据该信号完成指定的行为。
    格式:
    kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

    • kill PID进程号
    • kill PID 终止进程
    • kill -9 PID 强制终止进程
    • -l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。
    • -s <信息名称或编号>  指定要送出的信息。
    • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。
      eg:
      杀死进程
    • kill 12345
      强制杀死进程
    • kill -KILL 123456
      发送SIGHUP信号,可以使用一下信号
    • kill -HUP pid
      彻底杀死进程
    • kill -9 123456
      显示信号
    • kill -l
      杀死指定用户所有进程
    • kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程
    • kill -u hnlinux //方法二
    top:

    作用:动态显示当前系统中由该用户运行的进程列表。
    格式:top [-d delay]
    参数-d delay表示屏幕信息刷新的时间间隔。

    • d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
    • q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
    • c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
    • s : 安全模式,将交谈式指令取消, 避免潜在的危机
    • i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
    • n : 更新的次数,完成后将会退出 top
    • b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
      eg:
      显示进程信息
    • top
      显示完整命令
    • top -c
      以批处理模式显示程序信息
    • top -b
      以累积模式显示程序信息
    • top -S
      设置信息更新次数
    • top -n 2
      //表示更新两次后终止更新显示
      设置信息更新时间
    • top -d 3
      //表示更新周期为3秒
      显示指定的进程信息
    • top -p 139
      //显示进程号为139的进程信息,CPU、内存占用率等
      显示更新十次后退出
    • top -n 10
      使用者将不能利用交谈式指令来对行程下命令
    • top -s
      将更新显示二次的结果输入到名称为 top.log 的档案里
    • top -n 2 -b < top.log
    renice:

    作用:修改一个正在运行的进程的优先级。
    格式:renice 优先级

    • -p pid 重新指定行程的 id 为 pid 的行程的优先序
    • -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
    • -u user 重新指定行程拥有者为 user 的行程的优先序
      eg:
      将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1
    • renice +1 987 -u daemon root -p 32
    pstree:

    作用:列出当前的进程,以及它们的树状结构。
    格式:pstree [选项]

    • -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
    • -c 如果有重覆的行程名, 则分开列出(预设值是会在前面加上 *)
      eg:
    • pstree -apnh //显示进程间的关系
    • pstree -u //显示用户名称

    打包/压缩命令

    Linux 下打包,压缩是两个概念
    打包是把所有文件照原样合在一个tar 文件里,压缩则需要另外程序gzip,biz2,但tar可以调用它们,一次性完成打包和压缩功能

    • tar.gz 由tar 程序打包,并且经过gzip 程序压缩
    • tar.bz2 由tar程序打包,并且经过bzip2程序压缩
    • bz2和.gz的区别
    • bz2比.gz压缩率更高,
    • gz比.bz2花费更少的时间
      常用选项:
    • -c 创建tar 文件
    • -f 将文件打包生成到一个文件里
      tar –cf new.tar ./home/hxy
    • -v 显示详细信息
    • -x 对tar 进行解包
      tar –xf new.tar
    针对zip格式

    打包

    • tar cvzf soft.tar.gz /home/hxy
      将/hoem/hxy目录下文件打包并压缩

    解包

    • tar xvzf abc.tar.gz
      解包到当前目录下
    • tar xvzf abc.tar.gz -C /home
      解包到指定目录下
    针对biz2格式

    打包

    • tar cvjf soft.tar.biz2 /home/hxy
      将/hoem/hxy目录下文件打包并压缩

    解包

    • tar xvjf abc.tar.biz2
      解包到当前目录下
    • tar xvjf abc.tar.biz2 -C /home
      解包到指定目录下
    一些常见命令小结:
    • cd 改变工作目录
    • ls 显示文件名称、属性等
    • mkdir/rmdir 创建或删除一个目录
    • cp 将给出的文件或目录复制到另一文件或目录中
    • mv 为文件或目录改名或将文件由一个目录移入另一个目录中
    • rm 删除一个目录中的一个或多个文件或目录
    • cat 连接并显示指定的一个和多个文件的有关信息
    • tac 从最后一行开始显示文件
    • more/less 用于在终端按屏显示文本文件
    • head/tail 用于显示文本文件的前几行或后几行
    • touch 用于创建一个新文件
    • nl 显示时同时输出行号
    • ln 为某一个文件在另外一个位置建立一个符号连接
    • echo 显示字符串、变量等信息
    • tar 打包、压缩、解压文件
      (此文章仅作为个人学习笔记使用,如有错误欢迎指正~)

    相关文章

      网友评论

          本文标题:Linux的简单命令(二)

          本文链接:https://www.haomeiwen.com/subject/auymiqtx.html