Linux那些你必须懂的实用命令!
mv命令
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。相当于剪切,而cp是复制
参数:
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新
例子:
将文件 test.txt重命名为 test1.txt
mv test.txt test1.txt
将文件 test.txt,test2.txt 移动到根的 test3 目录中
mv test.txt test2.txt /test3
移动当前文件夹下的所有文件到上一级目录
mv * …/
touch命令
创建新的空文件
创建一个test.txt文件
touch test.txt
mkdir命令
创建目录
选项
-Z:设置安全上下文,当使用SELinux时有效;
-m<目标属性>或–mode<目标属性>建立目录的同时设置目录的权限;
-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
例子
在目录/usr/meng下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问
mkdir -m 700 /usr/meng/test
在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问
mkdir -p-m 750 bin/os_1
在当前目录创建一个test目录
mkdir test
file命令文件权限属性设置
file命令用来探测给定文件的类型
例子
file install.log
install.log: UTF-8 Unicode text
file /var/spool/mail
/var/spool/mail: directory
grep命令
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤,通过与其他命令一起使用
常用参数
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-i 忽略字符大小写的差别。
ls命令
查看 linux 文件夹包含的文件及相关信息
常用参数搭配:
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及…的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
例子:
ll #ll相当于ls -l,可以查看当前目录下的 文件和权限等信息
cd 命令
切换指令,可以切换到某个目录
用法:
cd [目录名]
例子:
进入根目录
cd /
进入用户 目录
cd ~
返回上一级目录
cd …/
切换到当前目录下的path目录中,“.”表示当前目录
cd ./path
切换到/user目录
cd /user
pwd 命令
pwd 命令用于查看当前工作目录路径。
实例:
查看当前路径
pwd
查看软链接的实际路径
pwd -P
cp 命令
复制命令
常用参数
-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制
例子
将文件file复制到目录/usr下,并改名为file1
cp file /usr/file1
将目录/usr/one下的所有文件及其子目录复制到目录/usr/two中
cp -r /usr/one /usr/two
将文件file复制到当前目录,并命名为file1
cp file file1
rm命令
作用为删除,
参数:
-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
例子:
删除任何 .log 文件,删除前逐一询问确认:
rm -i *.log
删除 test 子目录及子目录中所有档案删除,并且不用一一确认:
rm -rf test
find命令
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法
find(选项)(参数)
常用例子:.表示当前目录,/表示根目录
#查找文件名为test的文件
find / -name test
在/home目录下查找以.txt结尾的文件名
find /home -name “*.txt”
同上,但忽略大小写
find /home -iname “*.txt”
当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . -name “.txt" -o -name ".pdf”
找出/home下不是以.txt结尾的文件
find /home ! -name “*.txt”
grep命令常见用法
在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep match_pattern file_name
输出包含匹配字符串的行数 -n 选项:
grep “text” -n file_name
或
cat file_name | grep “text” -n
tar命令文件
压缩与解压
首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
常用参数
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir
例子
将文件全部打包成tar包:
tar -cvf log.tar log2012.log 仅打包,不压缩!
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
在选项f之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2来作为tar包名。
将tar包解压缩:
tar -zxvf /opt/soft/test/log.tar.gz
其实最简单的使用 tar 就只要记忆底下的方式即可:
压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
ping命令
ping命令用于检测主机网络。
执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
-c<完成次数> 设置完成要求回应的次数。
实例:
#ping百度
ping www.baidu.com
#收到两次包之后,就退出
ping -c 2 www.baidu.com
终端利用ssh登录远程服务器
安装ssh:
yum install ssh
启动ssh:
service sshd start
登录远程服务器:
-P port:注意是大写的P, port是指定数据传输用到的端口号,如果我们想用指定的端口进行登录则 ssh -P 端口号 [email protected]
ssh [email protected]
输入密码:
[email protected]:
dev是服务器用户名
127.0.0.1 是服务器 ip
回车输入密码即可登录
scp命令
Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
实例:
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
从远处复制文件到本地目录
scp [email protected]:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
从10.10.10.10机器上的/opt/soft/的目录中下载nginx-0.5.38.tar.gz 文件到本地/opt/soft/目录中。
从远处复制到本地
scp -r [email protected]:/opt/soft/mongodb /opt/soft/
从10.10.10.10机器上的/opt/soft/中下载mongodb目录到本地的/opt/soft/目录来。
上传本地文件到远程机器指定目录
scp /opt/soft/nginx-0.5.38.tar.gz [email protected]:/opt/soft/scptest
复制本地/opt/soft/目录下的文件nginx-0.5.38.tar.gz到远程机器10.10.10.10的opt/soft/scptest目录。
上传本地目录到远程机器指定目录
scp -r /opt/soft/mongodb [email protected]:/opt/soft/scptest
上传本地目录/opt/soft/mongodb到远程机器10.10.10.10上/opt/soft/scptest的目录中去。
说明
1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:
#scp 命令使用端口号 4588
scp -P 4588 [email protected]:/usr/local/sin.sh /home/administrator
2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
curl命令 curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
文件下载
curl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作。如果系统没有curl可以使用yum install curl安装,也可以下载安装。curl是将下载文件输出到stdout,将进度信息输出到stderr,不显示进度信息使用–silent选项。
curl URL --silent
这条命令是将下载文件输出到终端,所有下载的数据都被写入到stdout。
使用选项-O将下载的数据写入到文件,必须使用文件的绝对地址:
curl http://man.linuxde.net/text.iso --silent -O /xxx/xxx.iso
选项-o将下载数据写入到指定名称的文件中,并使用–progress显示进度条:
curl http://man.linuxde.net/test.iso -o filename.iso --progress
######################################### 100.0%
vi命令
vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
注意:vim编辑器需要安装,而vi是内嵌的
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:
Ctrl+u:向文件首翻半屏;
Ctrl+d:向文件尾翻半屏;
Ctrl+f:向文件尾翻一屏;
Ctrl+b:向文件首翻一屏;
Esc:从编辑模式切换到命令模式;
:行号:光标跳转到指定行的行首;
????:光标跳转到最后一行的行首;
dd:删除光标行正行内容;
yy:复制游标所在的那一行
D:删除从当前光标到光标所在行尾的全部字符;
p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;大写P 则为贴在游标上一行!
u:复原前一个动作。
[Ctrl]+r:重做上一个动作。
a:在当前字符后添加文本;
A:在行末添加文本;
i:在当前字符前插入文本;
I:在行首插入文本;
o:在当前行后面插入一空行;
O:在当前行前面插入一空行;
:wq:在命令模式下,执行存盘退出操作;
:w:在命令模式下,执行存盘操作;
:w!:在命令模式下,执行强制存盘操作;
:q:在命令模式下,执行退出vi操作;
:q!:在命令模式下,执行强制退出vi操作
vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
vi/vim 使用实例
使用 vi/vim 进入一般模式
如果你想要使用 vi 来建立一个名为 test.txt 的文件时,你可以这样做:
$ vim test.txt
直接输入 vi 文件名 就能够进入 vi 的一般模式了。请注意,记得 vi 后面一定要加文件名,不管该文件存在与否
chmod命令
chmod命令用来变更文件或目录的权限。
权限范围的表示法如下:
u User,即文件或目录的拥有者;
g Group,即文件或目录的所属群组;
o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
a All,即全部的用户,包含拥有者,所属群组以及其他用户;
r 读取权限,数字代号为“4”;
w 写入权限,数字代号为“2”;
x 执行或切换权限,数字代号为“1”;
- 不具任何权限,数字代号为“0”;
s 特殊功能说明:变更文件或目录的权限。
语法
chmod(选项)(参数)
选项
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或–quiet或——silent:不显示错误信息;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
参数
权限模式:指定文件的权限模式;
文件:要改变权限的文件。
将 ex1.py 设定为只有该文件拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
将文件 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
此外chmod也可以用数字来表示权限如 :
chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
chmod ug=rwx,o=x file
和
chmod 771 file
777表示rwxrwxrwx
kill命令
kill命令用来删除执行中的程序或工作。
选项
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
参数
进程或作业识别号:指定要删除的进程或作业。
KILL 9 强制终止
例子:
先用ps查找进程,然后用kill杀掉:
ps -ef | grep vim
root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log
root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
kill 3268
也可以使用
kill -9 3268
ps命令
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
选项
-A:显示所有程序。
-e:此选项的效果和指定"A"选项相同。
-U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
-u<用户识别码>:此选项的效果和指定"-U"选项相同。
-f:显示UID,PPIP,C与STIME栏位。
例子:
ps -ef //显示所有命令,连带命令行
top命令
top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
选项
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。
top交互命令
在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。
h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。
例子:
显示进程信息
top
显示完整命令
top -c
显示指定的进程信息
top -p 139
//显示进程号为139的进程信息,CPU、内存占用率等
显示更新十次后退出
top -n 10
设置信息更新时间
top -d 3
//表示更新周期为3秒
pidof命令
pidof命令用于查找指定名称的进程的进程号id号。
实例
pidof nginx
13312 5371
wget命令
wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
参数
URL:下载指定的URL地址。
实例
使用wget下载单个文件
wget http://www.linuxde.net/testfile.zip
以下的例子是从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。
下载并以不同的文件名保存
wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080
使用wget后台下载
wget -b http://www.linuxde.net/testfile.zip
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载,你可以使用以下命令来察看下载进度:
tail -f wget-log
测试下载链接
当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加–spider参数进行检查。
wget --spider URL
FTP下载
wget ftp-url
wget --ftp-user=USERNAME --ftp-password=PASSWORD url
reboot命令
reboot命令用来重新启动正在运行的Linux操作系统。
date命令
date命令是显示或设置系统时间与日期。
选项
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
参数
<+时间日期格式>:指定显示时使用的日期时间格式。
日期格式字符串列表
%H 小时,24小时制(00~23)
%M 分钟(00~59)
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%Z 显示时区,日期域(CST)
%m 月份(01~12)
%y 年的最后两个数字(1999则是99)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
格式化输出:
date +"%Y-%m-%d"
2009-12-07
echo命令
echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。
ifconfig命令
ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。可以查看ip地址,inet addr用来表示网卡的IP地址
例子:
显示网络设备信息(**状态的):
[[email protected] ~]# ifconfig
uname命令
uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
选项
-a或–all:显示全部的信息;
-s或–sysname:显示操作系统名称;
-v:显示操作系统的版本;
例子:
使用uname命令查看全部信息:
uname -a
free命令
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
选项
-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-o:不显示缓冲区调节列;
-s<间隔秒数>:持续观察内存使用状况;
-t:显示内存总和列;
例子:
以MB为单位查看当前内存使用情况
free -m
显示
total used free shared buffers cached
total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
shared:当前已经废弃不用;
buffers Buffer:缓存内存数;
cached Page:缓存内存数。
who命令
who命令是显示目前登录系统的用户信息。
history命令Shell内建命令
history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。
参数
n:打印最近的n条历史命令
例子:
使用history命令显示最近使用的10条历史命令,输入如下命令:
[[email protected] ~]# history 10
more命令文件内容查看
more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
按Space键:显示文本的下一屏内容。
按Enier键:只显示文本的下一行内容。
按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键:显示帮助屏,该屏上有相关的帮助信息。
按B键:显示上一屏内容。
按Q键:退出rnore命令。
选项
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,‘q’ to quit.]”和“[Press ‘h’ for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+<数字>:从指定数字的行开始显示。
例子:
显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比。
more -dc file
显示文件file的内容,每10行显示一次,而且在显示之前先清屏。
more -c -10 file
head命令
head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
选项
-n<数字>:指定显示头部内容的行数;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。
tail命令文件内容查看
tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。
常用参数:
-f 显示文件最新追加的内容(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)
例子:
查看test.log最后50行的内容
tail -50f test.log
tr命令
tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
选项
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或–squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或–truncate-set1:先删除第一字符集较第二字符集多出的字符。
例子:
将制表符转换为空格:
cat text | tr ‘\t’ ’ ’
删除Windows文件“造成”的’^M’字符:
cat file | tr -d “\r” > new_file
stat命令文件
stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。
例子:
查看myfile的详细信息
stat myfile
diff命令
diff命令在最简单的情况下,比较给定的两个文件的不同。
例子:
将目录/usr/li下的文件"test.txt"与当前目录下的文件"test.txt"进行比较,输入如下命令:
diff /usr/li test.txt #使用diff指令对文件进行比较
上面的命令执行后,会将比较后的不同之处以指定的形式列出,如下所示:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
其中,字母"a"、“d”、“c"分别表示添加、删除及修改操作。而"n1”、"n2"表示在文件1中的行号,“n3”、"n4"表示在文件2中的行号。
注意:以上说明指定了两个文件中不同处的行号及其相应的操作。在输出形式中,每一行后面将跟随受到影响的若干行。其中,以<开始的行属于文件1,以>开始的行属于文件2。
cat命令
经常用来显示文件的内容
注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
参数
-n或-number:有1开始对所有输出的行数编号;
-b或–number-nonblank:和-n相似,只不过对于空白行不编号;
例子:
cat filename(在屏幕上显示文件filename的内容)
cat filename1, filename2(在屏幕上显示文件filename1, filename2的内容)
less命令
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
参数:
b 向上翻一页
d 向后翻半页
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
实例
1、查看文件
less log2013.log
2、ps查看进程信息并通过less分页显示
ps -ef |less