只想知道 发表于 2015-1-18 11:25:27

Linux编程:高效Linux用户必要懂得的命令行妙技仓酷云

买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比查man文档快.特别适合英语不好。
比来在Quora上看到一个问答标题,关于在高效力Linux用户节俭工夫Tips。
将该标题的回覆举行进修总结,加上本人的一些履历,纪录以下,便利本人和人人参考。

<br>
上面先容的都是一些命令行工具,这些工具在几位回覆者的一样平常事情中都很有效。
关于任何不懂得的命令,请利用“man<COMMANDNAME>“检察,大概利用Google。
有些命令必要先用yum,apt-getinstall命令安装。
TableofContents



[*]1基础命令
[*]2一些表达式
[*]3一样平常利用命令
[*]4数据处置
[*]5体系调试
[*]6参考
1基础命令

懂得基础的bash通读全部bashmanpage.进修VIM在Linux体系上,固然你有Emacs和Eclipse,可是VIM仍旧是无出其右的利器。懂得SSH,基础的无暗码考证体例。比方经由过程ssh-agent,ssh-add等。《灵犀志趣》平常都利用以下剧本完成无暗码考证,费事省力。
实行体例shnopasswdUSERREMOTE_HOST
实行此剧本前,请确认:

[*]本机上已有id_dsa.pub,若无。利用命令ssh-keygen-tdsa取得。
[*]远程机上登任命户家目次下,已有.ssh文件夹,若无创立之。
$catnopasswd#!/bin/shscp~/.ssh/id_dsa.pub$1@$2:~/ssh$1@$2"touch~/.ssh/authorized_keys;cat~/id_dsa.pub>>~/.ssh/authorized_keys;chmod644~/.ssh/authorized_keys;exit"熟习Bash中经常使用的义务办理命令&,Ctrl-Z,Ctrl-C,jobs,fg,bg,kill等。基础的文件办理命令ls,ls-l,less,head,tail,tail-f,ln,ln-s,chmod,chown,du,du-sk*,df,mount基础的收集办理命令ipconfig,ifconfig,dig熟习正则表达式,和grep,egrep用到的选项-o,-A,-B软件安装命令懂得apt-get和yumcat-n能够匡助显现行号。2一些表达式

!!再次实行上一条命令!$上一条命令的最初一个单词{a..b}依照从a到b按次的一个数字列表{a,b,c}三个词a,b,c.能够如许利用touch/tmp/{foo,bar,baz}{$1-$9}实行shell剧本时的命令行参数$0正在实行的命令称号$#以后启动的命令中传进的参数个数$?上一条命令的实行前往值。$$该shell的历程号。$*从$1入手下手,启动该shell剧本的一切参数。
<br>3一样平常利用命令

Ctrl-R在bash中,Ctrl-R用于在汗青命令中搜刮Ctrl-W,Ctrl-U,Alt-BackSpacebash中,Ctrl-W删除最初一个词,Ctrl-U删除最初一行,Alt-BackSpace删除光标前的一个词manreadline中包括了大批bash中的默许热键绑定.cd-前往前一个事情路径xargs十分壮大的命令。假如你还不断定是不是能准确的实行义务,能够先用xargsecho检察。上面是一个用该功效的例子:find.-name*.py|xargsgrepsome_functioncathosts|xargs-l{}sshroot@{}hostnameparallel一个加倍壮大的命令.能够完成并行实行义务,并能够支解输出文件,指定多个节点同时运转命令等功效.具体的功效能够参考这个链接.pstree-p打用历程树的得力工具pgrep,pkill利用名字查找历程,大概间接向指命名字的历程发送旌旗灯号。

[*]懂得用户能发送给历程的一些旌旗灯号。好比kill-STOP,让pid历程挂起。
nohup,disown,screen,tmux当你必要将历程永久处在背景运转是,这两个命令很有效。lsof,netstat-lntp查询以后甚么历程在监听甚么端口。set在bash剧本中,利用set-x取得debug输入,利用set-e取得毛病输入。;分号用于开启一个子shell并运转至停止后封闭。比方:#在以后路径下实行一些命令(cd/some/other/dir;other-command)#事情路径仍旧是以后目次懂得shell中的多种参数表达式${name:?errormessage}反省某个变量是不是存在,若不存在输入errormessage。${var%suffix},${var#prefix}输入var变量除前缀大概后缀外的部分。以下面的代码输入为foo.txt.var=foo.pdfecho${var%pdf}.txt<,>输出输入重定向操纵。some_command>logfile2>&1将some_command运转过程当中的尺度输入和尺度毛病输入都输入到文件logfile中。manascii取得一个好用的ASCII表格,包括10进制和16进制的值。screen,dtach在远程ssh绘画中,利用这两个命令能够保留你的会话,制止由于收集成绩招致中止。curl,curl-l,wget在web页面调试中,这几个命令能帮你下载网页代码,很有效。lynx-dump-stdin将HTML转换为文本xmlstarlet必要处置XML时,这个命令很有效。ssh-L,ssh-D必要使用远程服务器会见网页时,这命令能够匡助你在远程服务器和你的呆板之间创建ssh地道。ssh毗连优化以下设置能帮你制止链接丧失,不必要每次都输出yes确认和远程服务器的链接,和在链接中启用紧缩。倡议将它放到.ssh/config中。TCPKeepAlive=yesServerAliveInterval=15ServerAliveCountMax=6StrictHostKeyChecking=noCompression=yesForwardAgent=yes在正输出的命令前加#命令已输出一半,溘然间改主张想少收运转时,
可使用Alt-#在命令前加‘#’,将全部命令酿成正文。如许你稍后就可以在命令汗青中找到该命令了。cron能够匡助你制订一些准时实行的企图义务。Ctrl-SCtrl-C将一不当心必要大批输入文本时,顺次输出这两个操纵,
比纯真的频仍按Ctrl-C能更快让程序停止。4数据处置

sort,uniq,uniq-u,uniq-d懂得这些排序命令cut,paste,join懂得这些文本文件的保护工具。良多人都在利用cut后,健忘join利用sort/uniq举行汇合的交、并、补运算=假定a和b是两个文本文件,个中的行都是独一的。
以下几个命令能够疾速的完成一些汇合操纵。catab|sort|uniq>c#cisaunionbcatab|sort|uniq-d>c#cisaintersectbcatabb|sort|uniq-u>c#cissetdifferencea-b利用LC_ALL=CLinux中有关locale的设置会影响大批的命令行工具,个中包含排序工具。
多半安装的Linux体系都将LANG大概其他的locale默许设置成USEnglish。
但这大概会招致排序及其他命令慢上好几倍。
因而exportLCALL=C能制止利用i18n情势处置数据,带来功能提拔。awk,sed这两个工具能完成庞大的数据交换和修正。
比方,上面的命令完成对文本文件中低三列的数据求总和。
利用shell完成此运算比用Python快3倍。awk{x+=$3}END{printx}shuf该命令能够从将一个文件中的行混洗,大概从中随机选出一些行。sort懂得sort的经常使用选项(-t,-k,-s)怎样事情。注重-k1,1只会排序第一列,
而-k1会依据全部行排序。-s能完成不乱排序。
比方,先利用第二个域排序,再依照域一排序,能够用这段命令完成catINPUT_FILE|sort-k1,1|sort-s-k2,2制表符的输出在bash的命令行中,如若必要输出制表符,可使用Ctrl-V<tab>大概$’t’完成hd,bvi关于二进制文件,这两个命令分离完成16进制抽取,二进制编纂操纵。strings,grep能够匡助在二进制文件中寻觅文本。iconv,uconv能够匡助转换文本编码split,csplit分离能够完成将文件依照巨细支解,和依照特定的形式支解。
<br>5体系调试

iostat,netstat,top,atop,htop,dstat能够匡助懂得硬盘,CPU,内存,收集的形态。
这能帮你对体系正在产生的情形有个第一熟悉。free,vmstat

再现理想 发表于 2015-1-21 06:07:57

这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。

冷月葬花魂 发表于 2015-1-22 05:13:54

发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。

仓酷云 发表于 2015-1-30 20:25:07

主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。

精灵巫婆 发表于 2015-1-30 23:34:28

对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。

柔情似水 发表于 2015-2-4 18:51:20

虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。

若天明 发表于 2015-2-9 18:30:02

目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。

透明 发表于 2015-2-25 17:16:28

随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。

乐观 发表于 2015-3-4 05:37:39

当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。

第二个灵魂 发表于 2015-3-12 21:35:57

随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。

简单生活 发表于 2015-3-20 02:56:29

其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。

小魔女 发表于 2015-4-6 14:12:32

上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
页: [1]
查看完整版本: Linux编程:高效Linux用户必要懂得的命令行妙技仓酷云