Linux 终端 Pearls


.ssh li@10.175.68.121       #远程登陆
.ssh -l li 10.175.68.121
exit
.scp -r /home/li/TEST/unpv13e pi@192.168.31.128:/home/pi/  在主机终端中运行,复制到pi, -r表递归

.ls | grep "$*"                   #注意“号,不加的话,$*内容里可能有空格。[grep 模式 文件名...]
.ls | grep -i -n -v .*[.]c        #-i 忽略大小写,-n 打印行号,-v 对模式求反,后面匹配所有的C文件,grep的正则式与shell不同。  
.ls | grep "\<datasource\>"       #\< 单词首,\>单词尾
.ls | grep -e "data" -e "var" -e "^$"    #-e 多模式匹配,   ^匹配行首,$匹配行尾,^$匹配空行。
.ls | grep 'test\.[^h]'           #注意.的转义,加‘或”,^在[]中的意义:匹配不是.h的模式文件。
.grep -R[-r] dir                  #R[r] recursive

.find / -type f -name '*.log' -print    
.find / -name *.c -size +5000c -print   #打印字符大于5000的.c文件。
.find . -user li -print            #打印用户li的文件
.find . -perm 777 -print
.find . -atime +20 -print              #查找早于20天前访问的文件
.find . -atime +20 -exec ls -l {} \;   

.find . -name "*[ch]" | xargs wc -l   #find 命令用于管道,困惑许久,偶然遇到xargs才豁然

.cut -c1-10 data                #析取data中1~10的字符
.cut -c1,10 data                #析取data中第1和第10的字符
.cut -c10-  data                #-代表到行尾
.cut -d: -f1,6 /etc/passwd      #-d:指定:为分隔符,-f1 指定第一个字段(field)
.tr e x < infos                 #把所有的e转化为x
.tr '[a-z]' '[A-Z]' < infos     #小写转化大写
.tr -s ':' ' '  < infos         #把一个或多个:号替换为空格
.tr -d ' '      < infos         #删除空格

.uniq name                      #显示惟一行
.uniq -d name                   #找出重复的行
.uniq -c name                   #与uniq 相似,在行首显示行出现的次数

Sed   #[address1,address2][function][arguments],sed '一系列ed命令‘ 文件名 ….
.sed -n '/love/p'               #p 打印,-n 取消默认的全部打印
.sed '1,3d' filename
.sed '/Tom/d' filename
.sed '/Tom/!d' filename #!对匹配条件取反。
.sed ’s/[0-9][0-9]$/&.5/' datafile  #'&'符号代表查找串中匹配的内容。
.sed 's/old/new/gp' datafile   #g 行内全局替换
.sed 's/\(mar\)got/\1iadd/p' datafile  #包含在()里的模式保存在特定寄存器中,作为标签1,通过\1引用。
.sed -n '/west/,/east/p' datafile
.sed -n '/3,/^northeast/p' datafile
.sed -e '1,3d' -e 's/old/new/' datafile
.sed '/^north/a\\
    somethings' datafile   #在匹配的行后追加。
.sed '/^north/i\\
    somethings' datafile   #在匹配的行前添加。
.sed '/^north/c\\
    somethings' datafile   #修改当前行。
.sed '/eastern/{n; s/AM/Archine/;}' datafile #n 读取下一行。

.awk -F: '{print $2}' /etc/passwd

.tar -cf all.tar *.jpg      #-c是表示产生新的包,-f指定包的文件名。
.tar -rf all.tar *.gif      #将所有.gif的文件增加到all.tar的包里面去。-r增加.
.tar -uf all.tar logo.gif   #更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
.tar -tf all.tar            #列出all.tar包中所有文件
.tar -xf all.tar            #解出all.tar包中所有文件

.tar -czf all.tar.gz *.jpg
.tar -xzf all.tar.gz


vi
.:e!            #returns you to the last saved version of the file, so you can start over.
.:0 (digit zero)       #Move to beginning of line.
.:$                    #Move to end of line.
.:2dd                  #Delete the first two lines with the cursor positioned.
.:D(d$)        #The D command deletes from the cursor position to the end of the line.

:(                      #Move to beginning of current sentence.
:)                      #Move to beginning of next sentence.
:{                      #Move to beginning of current paragraph.
:}                      #Move to beginning of next paragraph.
:[[                     #Move to beginning of current section.
:]]                     #Move to beginning of next section.

:H                      #Move to home—the top line on screen.
:M                      #Move to home—the top line on screen.
:L                      #Move to last line on screen.
:nH                     #Move to n lines below top line.
:nL                     #Move to n lines above last line.
:/pattern               #Type in the pattern that you want to find.
:?pattern               #Search backward.
:/                      #Repeat search forward.
:?                      #Repeat search backward.
:G                      #Go to end of file.
:nG                     #Go to given line n.

.vi +n file             #Opens file at line number n.
.vi + file              #Opens file at last line.
.vi +/pattern file      #Opens file at the first occurrence of pattern.

:s/old/new/g
:50,100s/old/new/g
:1,$s/old/new/g
:%s/old/new/g           #% == 1,$
:g/pattern/s/old/new/g
:g/^$/d
:!command               #Executing Unix Commands.  

.diff,cmp,comm          #diff old new(c,a,d)       
.printf "%x" 100        #SHELL下简单数值转化
.man   ascii
.man   man
.od -cb file            #(char,八进制)
.set                    #显示shell变量

.gcc -E  test.c -o test.i  #-E预处理
.gcc -M  test.c -o tmp     #-M选项指示预处理程序输出完整的依赖行,-M (Makefile)
.gcc -S test.c           #生成汇编文件
.gcc -c test.c           #生成test.o文件
.gcc -g test.c           #加入gdb调试符号, gdb a.out打开(run,break,list,next,step,print,q)
.gcc -pg test.c          #生成调用图表.
.gcc test.c -lm -o test
.ar -crl libtest.a test1.o test2.o       #创建test.a库(-cr creat and replace),-l the next argument is the name of the libary file.
.ranlib libtest.a                        #After create or modify an archive ,may need run ranlib
.ar -t  libtest.a                       #list 库中的 .o文件
.gcc -g -o test -L. -ltest use.c  #-L tells the linker what directory to look in.-l(lowercase)tells the linker what files to look for.
.cat /etc/shells                        #系统支持的shells.
.as -o test.o test.s
.ld -o test test.o
.objdump -d test.o
.ulimit -a
.ulimit -c size
.gdb a.out core                         #检查core 文件
.nm a.out                               #查看符号表
.time ./a.out    

.ifconfig

.ip addr

.ifconfig.me #查询本机外网地址网址

.Emacs
.Alt + ! 输入Shell 命令
.find . -name *.[CcHh] | etags - 在当前目录中建立工程标签(TAGS)文件

.可以查看.bash_history,.profile寻找和更改SHELL的特性.
.sudo apt-get install Ubutun下安装软件
.arp-scan --insterface en0 --localnet 扫描同一局域网内的IP,MAC(先安装arp-scan),从MAC地址特点来查找对应IP
.ssh pi@192.168.31.128               登陆pi,
sudo nc -lp 23 &(打开23端口,即telnet)
.netstat -an | grep 23 (查看是否打开23端口)
.svn co https://svn.code.sf.net/p/edk2share/code/trunk/DriverDeveloper/UefiDriverWizard .

.nautilus . #在终端下打开当前目录,类似Mac os 下open .


转载于:https://my.oschina.net/feynmanli/blog/661356

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《编程珠玑》是一本经典的计算机编程书籍,由Jon Bentley所著。书中作者以宝石的形式,以自己在编程领域的经验和思考作为原料,展现了许多精彩的编程技巧和解决问题的思路。 这本书被誉为计算机界的经典之作,其价值不仅在于作者分享的个人经验,更在于其中蕴含的许多智慧和洞见。书中的每个章节都涵盖了一个独立的编程话题,包括算法优化、代码调试、程序设计等,并通过大量的实例和案例讲解了相应的技巧和方法。这些实例涵盖了几乎所有计算机领域,包括排序、查找、字符串处理等,从而帮助读者理解和掌握这些技巧。 与其他编程书籍不同,《编程珠玑》强调的是实用性和深度思考。书中的每个问题都是作者亲自经历过的,每个解决方案都是经过深思熟虑的。通过阅读这本书,读者可以学习到如何通过合理的数据结构和算法设计,将问题简化并高效解决。同时,作者还教会了读者如何思考和分析问题,如何避免一些常见的陷阱和错误。 《编程珠玑》不仅适合初级的程序员,也适合有一定编程经验的开发者阅读。无论是学习编程的初学者,还是已经有多年开发经验的工程师,都可以通过阅读这本书,提升自己的编程能力和思维方式。读者可以在书中找到灵感和启示,解决实际的编程难题,并学到一些通用的编程技巧和原则。 总之,《编程珠玑》是一本极具价值的编程书籍,其内容丰富实用,思想深入,对于提升编程能力和思维方式都具有重要意义。无论是想成为一名优秀的程序员,还是找到解决实际问题的思路,这本书都值得一读。 ### 回答2: 《编程珠玑》是由Jon Bentley于1986年出版的一本经典计算机科学书籍。书中主要讨论了各种编程问题和解决方案,旨在帮助读者提高编程技巧和思维能力。 这本书是由编程问题组成的,每个问题都来自实际编程中的实际情况。每个问题都是用C语言描述并解决的。在解决问题的过程中,书中提出了一些有趣的技巧和方法,例如位操作、动态规划、递归和分治等。这些技巧和方法不仅可以帮助我们解决具体的问题,还可以帮助我们提高编程效率和代码质量。 《编程珠玑》的作者Jon Bentley是一位计算机科学家,他在书中分享了他多年来在编程领域的经验和见解。通过这本书,读者可以学到很多关于编程的技巧和思维方式,有助于提高解决实际编程问题的能力。 总的来说,《编程珠玑》是一本非常有价值的编程书籍,无论是初学者还是有经验的程序员都可以从中受益。它可以帮助我们了解并掌握解决实际编程问题的方法和技巧,提高我们的编程能力和思维能力。如果你对编程有兴趣,并且想提高自己的编程技术,我强烈推荐你阅读这本书。 ### 回答3: 《编程珠玑》是一本由Jon Bentley编写的计算机科学经典著作,被誉为程序员必读之书。该书探讨了一系列关于编程和算法的知识和技巧,以及一些经典的编程问题和解决方法。 《编程珠玑》的主要目的是通过具体的编程案例和讨论,帮助读者提高编程技巧和解决问题的能力。书中提供了众多的编程小技巧和优化思路,让程序员能够对复杂问题进行有针对性的分析和解决。这些技巧涵盖了各个方面,包括数据结构、算法设计、性能优化等。 该书中的编程珠玑主要包括程序设计的三个重要原则:正确性、性能和可读性。作者通过讲述自己的实践经验,以及一些经典的编程问题和解决方法,来阐述这些原则。读者可以通过学习和理解这些原则,提高自己的程序设计能力,并编写出更加优秀的代码。 除了传授编程技巧和知识外,该书还强调了问题解决的思维方式。作者通过讲述一些实际问题的解决过程,鼓励读者灵活运用各种方法和工具,来解决复杂的编程难题。这种思维方式对于程序员来说非常重要,可以培养解决问题的能力,提高工作效率。 总的来说,《编程珠玑》是一本经典的计算机科学读物,通过具体的案例和讨论,帮助读者提高编程技巧和解决问题的能力。无论是想提升自己的程序设计能力,还是希望更好地解决编程难题,这本书都是值得一读的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值