本文将提供另外10个小方法,可以使您成为更高效的Linux前辈哟~记得收藏呀
是哪10个小方法呢?如下:
使用文件名手动补全功能(filenamecompletion)。
使用历史扩充。
重用先前的参数。
使用pushd和popd管理目录导航。
查找小型文件。
不使用编辑器创建临时文件。
使用curl命令行实用工具。
最有效地借助正则表达式。
确定当前用户。
使用awk处理数据。
01
文件名手动补全
文件名手动补全功能让你无需在命令提示符处键入各类又臭又长的文件名,防止输入错误,提升效率。这个功能在各个Shell中的工作方法略有不同,所以首先请确定自己用的是哪种shell。
我正在运行哪种Shell?
可以使用echo$0或ps-p$$命令显示您正在使用的Shell。
List1:确定你的shell
$echo$0
-bash
$ps–p$$
PIDTTYTIMECMD
6344ttys0000:00.02–bash
CShell
CShell支持最直接文件名补全功能。设置filec变量即可启用该功能(使用命令setfilec)。
在您开始键入文件名后,可以按Esc键,Shell将补全文件名或则补全尽可能多的部份。
比如,假定有名为file1、file2和file3的文件。假如键入f,之后按Esc键,将填充file,然后你须要输入1、2或3来完成相应的文件名。
Bash
BashShell也提供了文件名补全功能linux vps,但它使用的是Tab键。您在BashShell中不须要设置任何选项即可启用文件名补全功能,该选项是缺省设置的。
Bash还实现了其他功能。键入文件名的一部份后,按Tab键linux公社,倘若有多个文件满足您的恳求,而且您须要添加文本以选择其中一个文件,这么您可以多按Tab键两次,以显示与您目前键入的内容相匹配的文件的列表。
用之前名为file1、file2和file3的文件示例,首先键入f。当按一次Tab键时linux修改文件名字命令,Bash手动补全显示file;再按一次Tab键时,将展开列表file1file2file3。
KornShell
对于KornShell用户,文件名补全功能取决于EDITOR变量的值。假如EDITOR设置为vi,这么您键入部份名称,之后按Esc键后跟反斜杠()字符。
假如EDITOR设置为emacs,这么您键入部份名称,之后按两次Esc键以补全文件名。
02
使用历史扩充
假如你的一系列命令都用了相同的文件名,会发生哪些情况?有一种快捷方法可以快速获得你下次使用的文件名。如List2所示linux修改文件名字命令,!$命令返回前一个命令使用的文件名。
从文件this-is-a-long-lunch-menu-file.txt中搜索词组pickles的出现位置。
搜索结束后,用vi命令来编辑this-is-a-long-lunch-menu-file.txt文件,而不须要重新键入文件名。
用叹号(!)来访问历史,之后使用欧元符号($)返回前一命令的最后数组。
假如你须要反复用到长文件名,这么这是一个十分好的工具。
List2:用!$获得前一个命令使用的文件名
$greppicklesthis-is-a-long-lunch-menu-file.txt
pastramionryewithpicklesandonions
$vi!$
03
重用先前的参数
!$命令返回某个命令使用的上一个文件名参数。但若果某个命令使用多个文件名,而您只希望重用其中一个文件名,该怎么做?
!:1操作符返回某个命令使用的第一个文件名。
List3中的示例显示可以怎样将此操作符与!$运算符组合使用。在第一个命令中,将一个文件重新命名为更有意义的名称,但为了保持原始文件名可用,创建了一个符号链接。
重新命名文件kxp12.c以增强可读性,之后使用link命令来创建到原始文件名的符号链接,以防在其他位置使用该文件名。
!$操作符返回file_system_access.c文件名,而!:1操作符返回kxp12.c文件名,该文件名是上个命令的第一个文件名。
List3:组合使用!$和!:1
$mvkxp12.cfile_system_access.c
$ln–s!$!:1
04
使用pushd和popd管理目录导航
UNIX支持各类目录导航工具,我最喜欢的两款提升工作效率的工具是pushd和popd。您肯定晓得cd命令用于修改当前目录。假如要在多个目录中导航,但希望就能快速返回某个位置,该怎么做?
pushd和popd命令创建一个虚拟目录堆栈,pushd命令拿来修改您的当前目录并将其储存在堆栈中,而popd命令拿来从堆栈的底部移除目录并使您返回该位置。可以使用dirs命令来显示当前目录堆栈。
List4:使用pushd和popd在目录树中导航
$pushd.
~~
$pushd/etc
/etc~~
$pushd/var
/var/etc~~
$pushd/usr/local/bin
/usr/local/bin/var/etc~~
$dirs
/usr/local/bin/var/etc~~
$popd
/var/etc~~
$popd
/etc~~
$popd
~~
$popd
pushd和popd命令还支持使用参数处理目录堆栈。使用+n或-n参数,其中n是一个数字,可以向左或往右联通堆栈:
List5:旋转目录堆栈
$dirs
/usr/local/bin/var/etc~~
$pushd+1
/var/etc~~/usr/local/bin
$pushd-1
~/usr/local/bin/var/etc~
05
查找小型文件
有时侯须要找出c盘空间究竟被哪些占用了?可以使用以下几个工具来管理储存设备。
df命令显示每位可用卷上已使用的块的总量以及空闲空间的比率。
List6:确定各卷的使用情况
$df
Filesystem512-blocksUsedAvailableCapacityMountedon
/dev/disk0s231752644412272086%/
devfs2242240100%/dev
fdesc220100%/dev
map-hosts000100%/net
mapauto_home000100%/home
要查找小型文件?用find命令时附送-size参数。List7显示了怎样使用find命令来查找小于10MB的文件。注意,-size参数以KB为单位计量大小。
List7:查找小于10MB的所有文件
$find/-size+10000k–xdev–execls–lh{};
06
不要用编辑器创建临时文件
下边是个简单示例:须要快速创建一个简单临时文件,但不想启动编辑器。使用带有>文件重定向操作符的cat命令。
如List8所示,使用不带文件名的cat命令只回显向标准输入键入的任何内容;>重定向将该输入捕获到指定的文件中。注意,在结束输入时必须提供文件结束字符,通常是Ctrl-D。
List8:快速创建临时文件
$cat>my_temp_file.txt
Thisismytempfiletext
^D
$catmy_temp_file.txt
Thisismytempfiletext
要执行相同操作,并且附加到现有文件而不是创建新文件。如List9所示,改用>>操作符。>>文件重定向操作符向现有文件附加内容。
List9:快速向文件附加内容
$cat>>my_temp_file.txt
Moretext
^D
$catmy_temp_file.txt
Thisismytempfiletext
Moretext
07
使用curl命令行实用工具
想从命令行访问Web?用curl命令!curl命令使您可以使用HTTP、HTTPS、FTP、FTPS、Gopher、DICT、TELNET、LDAP或FILE合同从服务器检索数据。
比如,用curl命令来下载HTTP托管的文件。使用-o参数来指定保存输出的位置
List10:用curl下载文件
$curl-oarchive.tar