Linux基本命令.docx
《Linux基本命令.docx》由会员分享,可在线阅读,更多相关《Linux基本命令.docx(29页珍藏版)》请在冰点文库上搜索。
Linux基本命令
基本命令
foriin`cathostip`;doscp-r$i:
/home/tmn/;done;
foriin`cathostip`;doscp-r$i:
/home/tmn/;done;
foriin`cathostip`;doscp-rtest/$i:
/home/tmn/;done;
foriin`cathostip`;dossh$i"echo$i;ls/home/tmn/";done;
foriin`seq15`;docptest.txttest$i.txt;done;
●cd
cd命令进入当前用户主目录:
1.cd
2.cd~
返回进入此目录之前所在的目录
cd-
●rm
1.命令格式:
rm[选项]文件…
2.命令功能:
删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。
如果使用rm来删除文件,通常仍可以将该文件恢复原状。
3.命令参数:
-f,--force忽略不存在的文件,从不给出提示。
-i,--interactive进行交互式删除
-r,-R,--recursive指示rm将参数中列出的全部目录和子目录均递归地删除。
-v,--verbose详细显示进行的步骤
--help显示此帮助信息并退出
--version输出版本信息并退出
●more
more命令,功能类似cat,cat命令是整个文件的内容从上到下显示在屏幕上。
more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能。
more命令从前向后读取文件,因此在启动时就加载整个文件。
1.命令格式:
more[-dlfpcsu][-num][+/pattern][+linenum][file...]
2.命令功能:
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
3.命令参数:
+n从笫n行开始显示
-n定义屏幕大小为n行
+/pattern在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c从顶部清屏,然后显示
-d提示“Pressspacetocontinue,’q’toquit(按空格键继续,按q键退出)”,禁用响铃功能
-l忽略Ctrl+l(换页)字符
-p通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s把连续的多个空行显示为一行
-u把文件内容中的下画线去掉
4.常用操作命令:
Enter向下n行,需要定义。
默认为1行
Ctrl+F向下滚动一屏
空格键向下滚动一屏
Ctrl+B返回上一屏
=输出当前行的行号
:
f输出文件名和当前行的行号
V调用vi编辑器
!
命令调用Shell,并执行命令
q退出more
●less
less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less的用法比起more更加的有弹性。
在more的时候,我们并没有办法向前面翻,只能往后面看,但若使用了less时,就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
1.命令格式:
less[参数]文件
2.命令功能:
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
3.命令参数:
-b<缓冲区大小>设置缓冲区的大小
-e当文件显示结束后,自动离开
-f强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g只标志最后搜索的关键词
-i忽略搜索时的大小写
-m显示类似more命令的百分比
-N显示每行的行号
-o<文件名>将less输出的内容在指定文件中保存起来
-Q不使用警告音
-s显示连续空行为一行
-S行过长时间将超出部分舍弃
-x<数字>将“tab”键显示为规定的数字空格
/字符串:
向下搜索“字符串”的功能
?
字符串:
向上搜索“字符串”的功能
n:
重复前一个搜索(与/或?
有关)
N:
反向重复前一个搜索(与/或?
有关)
b向后翻一页
d向后翻半页
h显示帮助界面
Q退出less命令
u向前滚动半页
y向前滚动一行
空格键滚动一行
回车键滚动一页
[pagedown]:
向下翻动一页
[pageup]:
向上翻动一页
1.全屏导航
ctrl+F-向前移动一屏
ctrl+B-向后移动一屏
ctrl+D-向前移动半屏
ctrl+U-向后移动半屏
2.单行导航
j-向前移动一行
k-向后移动一行
3.其它导航
G-移动到最后一行
g-移动到第一行
q/ZZ-退出less命令
4.其它有用的命令
v-使用配置的编辑器编辑当前文件
h-显示less的帮助文档
&pattern-仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用less查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma-使用a标记文本的当前位置
'a-导航到标记a处
●find
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。
由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
1.命令格式:
findpathname-options[-print-exec-ok...]
2.命令功能:
用于在文件树种查找文件,并作出相应的处理
3.命令参数:
pathname:
find命令所查找的目录路径。
例如用.来表示当前目录,用/来表示系统根目录。
-print:
find命令将匹配的文件输出到标准输出。
-exec:
find命令对匹配的文件执行该参数所给出的shell命令。
相应命令的形式为'command'{}\;,注意{}和\;之间的空格。
-ok:
和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
4.命令选项:
-name按照文件名查找文件。
-perm按照文件权限来查找文件。
-prune使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user按照文件属主来查找文件。
-group按照文件所属的组来查找文件。
-mtime-n+n按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。
find命令还有-atime和-ctime选项,但它们都和-mtime选项。
-nogroup查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newerfile1!
file2查找更改时间比文件file1新但比文件file2旧的文件。
-type查找某一类型的文件,诸如:
b-块设备文件。
d-目录。
c-字符设备文件。
p-管道文件。
l-符号链接文件。
f-普通文件。
-sizen:
[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:
在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:
查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:
在查找文件时不跨越文件系统mount点。
-follow:
如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:
对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
另外,下面三个的区别:
-aminn查找系统中最后N分钟访问的文件
-atimen查找系统中最后n*24小时访问的文件
-cminn查找系统中最后N分钟被改变文件状态的文件
-ctimen查找系统中最后n*24小时被改变文件状态的文件
-mminn查找系统中最后N分钟被改变文件数据的文件
-mtimen查找系统中最后n*24小时被改变文件数据的文件
●df
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。
可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
1.命令格式:
df[选项][文件]
2.命令功能:
显示指定磁盘文件的可用空间。
如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。
默认情况下,磁盘空间将以1KB为单位进行显示,除非环境变量POSIXLY_CORRECT被指定,那样将以512字节为单位进行显示
3.命令参数:
必要参数:
-a全部文件系统列表
-h方便阅读方式显示
-H等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i显示inode信息
-k区块为1024字节
-l只显示本地文件系统
-m区块为1048576字节
--no-sync忽略sync命令
-P输出格式为POSIX
--sync在取得磁盘信息前,先执行sync命令
-T文件系统类型
选择参数:
--block-size=<区块大小>指定区块大小
-t<文件系统类型>只显示选定文件系统的磁盘信息
-x<文件系统类型>不显示选定文件系统的磁盘信息
--help显示帮助信息
--version显示版本信息
●du
Linuxdu命令也是查看使用空间的,但是与df命令不同的是Linuxdu命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的.
1.命令格式:
du[选项][文件]
2.命令功能:
显示每个文件和目录的磁盘使用空间。
3.命令参数:
-a或-all显示目录中个别文件的大小。
-b或-bytes显示目录或文件大小时,以byte为单位。
-c或--total除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes以KB(1024bytes)为单位输出。
-m或--megabytes以MB为单位输出。
-s或--summarize仅显示总计,只列出最后加总的值。
-h或--human-readable以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接>显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件>在<文件>指定目录或文件。
--exclude=<目录或文件>略过指定的目录或文件。
-D或--dereference-args显示指定符号链接的源文件大小。
-H或--si与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links重复计算硬件链接的文件。
●ln
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
1.命令格式:
ln[参数][源文件或目录][目标文件或目录]
2.命令功能:
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种:
硬链接(hardlink)与软链接(symboliclink),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。
硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
软链接:
1.软链接,以路径的形式存在。
类似于Windows操作系统中的快捷方式
2.软链接可以跨文件系统,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。
但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
这里有两点要注意:
第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又分软链接和硬链接两种,软链接就是ln–s源文件目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln源文件目标文件,没有参数-s,它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。
若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。
3.命令参数:
必要参数:
-b删除,覆盖以前建立的链接
-d允许超级用户制作目录的硬链接
-f强制执行
-i交互模式,文件存在则提示用户是否覆盖
-n把符号链接视为一般目录
-s软链接(符号链接)
-v显示详细的处理过程
选择参数:
-S“-S<字尾备份字符串>”或“--suffix=<字尾备份字符串>”
-V“-V<备份方式>”或“--version-control=<备份方式>”
--help显示帮助信息
--version显示版本信息
●free
free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。
在Linux系统监控的工具中,free命令是最经常使用的命令之一。
1.命令格式:
free[参数]
2.命令功能:
free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
共享内存将被忽略
3.命令参数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-g以GB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
●scp
scp是securecopy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。
可能会稍微影响一下速度。
当你服务器硬盘变为只读readonlysystem时,用scp可以帮你把文件移出来。
另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。
虽然rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
1.命令格式:
scp[参数][原路径][目标路径]
2.命令功能:
scp是securecopy的缩写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
linux的scp命令可以在linux服务器之间复制文件和目录。
3.命令参数:
-1强制scp命令使用协议ssh1
-2强制scp命令使用协议ssh2
-4强制scp命令只使用IPv4寻址
-6强制scp命令只使用IPv6寻址
-B使用批处理模式(传输过程中不询问传输口令或短语)
-C允许压缩。
(将-C标志传递给ssh,从而打开压缩功能)
-p保留原文件的修改时间,访问时间和访问权限。
-q不显示传输进度条。
-r递归复制整个目录。
-v详细方式显示输出。
scp和ssh
(1)会显示出整个过程的调试信息。
这些信息用于调试连接,验证和配置问题。
-ccipher以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-Fssh_config指定一个替代的ssh配置文件,此参数直接传递给ssh。
-iidentity_file从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-llimit限定用户所能使用的带宽,以Kbit/s为单位。
-ossh_option如果习惯于使用ssh_config(5)中的参数传递方式,
-Pport注意是大写的P,port是指定数据传输用到的端口号
-Sprogram指定加密传输时所使用的程序。
此程序必须能够理解ssh
(1)的选项。
●xargs
ls|xargs-t-imv{}{}.bak
-i表示find传递给xargs的结果由{}来代替
-I我认为是和i差不多,可以这么认为-i可以用-I{}来代替
-p交互式提问y来确认命令的每次执行。
-t在执行前回显各个command
-n选项限制单个命令行的参数个数
●awk
简介
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。
简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
使用方法
awk'{pattern+action}'{filenames}
尽管操作可能会很复杂,但语法总是这样,其中pattern表示AWK在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。
花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。
pattern就是要表示的正则表达式,用斜杠括起来。
awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。
完整的awk脚本通常用来格式化文本文件中的信息。
通常,awk是以文件的一行为处理单位的。
awk每接收文件的一行,然后执行相应的命令,来处理文本。
调用awk
有三种方式调用awk
1.命令行方式
awk[-Ffield-separator]'commands'input-file(s)
其中,commands是真正awk命令,[-F域分隔符]是可选的。
input-file(s)是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。
通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格。
2.shell脚本方式
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。
相当于shell脚本首行的:
#!
/bin/sh
可以换成:
#!
/bin/awk
3.将所有的awk命令插入一个单独文件,然后调用:
awk-fawk-script-fileinput-file(s)
其中,-f选项加载awk-script-file中的awk脚本,input-file(s)跟上面的是一样的。
入门实例
假设last-n5的输出如下
[root@www~]#last-n5<==仅取出前五行
rootpts/1192.168.1.100TueFeb1011:
21stillloggedin
rootpts/1192.168.1.100TueFeb1000:
46-02:
28(01:
41)
rootpts/1192.168.1.100MonFeb911:
41-18:
30(06:
48)
dmtsaipts/1192.168.1.100MonFeb911:
41-11:
41(00:
00)
roottty1FriSep514:
09-14:
10(00:
01)
如果只是显示最近登录的5个帐号
#last-n5|awk'{print$1}'
root
root
root
dmtsai
root
awk工作流程是这样的:
读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。
默认域分隔符是"空白键"或"[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推。
如果只是显示/etc/passwd的账户
#cat/etc/passwd|awk-F':
''{print$1}'
root
daemon
bin
sys
这种是awk+action的示例,每行都会执行action{print$1}。
-F指定域分隔符为':
'。
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
#cat/etc/passwd|awk-F':
''{print$1"\t"$7}'
root/bin/bash
daemon/bin/sh
bin/bin/sh
sys/bin/sh
如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。
复制代码
cat/etc/passwd|awk-F':
''BEGIN{print"name,shell"}{print$1","$7}END{print"blue,/bin/nosh"}'
name,shell
root,/bin/bash
daemon,/bin/sh
bin,/bin/sh
sys,/bin/sh
....
blue,/bin/nosh
复制代码