Linux的简单命令(二)
每个命令的具体功能请参考下面网站:
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 打包、压缩、解压文件
(此文章仅作为个人学习笔记使用,如有错误欢迎指正~)