读书笔记-命令行总结

A

arm-linux-gcc

将C语言源文件,汇编成可执行文件,此可执行文件可以在arm上运行。功能上和gcc是一样的。但是编译出来的可执行文件不同,一个是在arm上运行的,一个是在linux系统上运行的。


参数相同

用法示例

arm-linux-gcc -g -c -o crt0.o crt0.S//将汇编程序汇编成可执行文件

arm-linux-gcc -g -c -o key_led.o key_led.c//将C源文件直接预处理,编译,汇编成可执行文件

arm-linux-ld

arm-linux-ld用于将多个目标文件,库文件连接成可执行文件。

注意:连接的目标文件的顺序,和可执行文件是否可执行有关。

例如:
arm-linux-ld -Ttext 0x0000000 -g crt0.o key_led.o -o key_led_elf

反汇编可执行文件,在反汇编文件中,crt0.o文件在前,key_led.o在后。

参数

目前,只用到一个参数:-T。其他的,我也不懂。

-T:可以直接使用它来指定代码段,数据段,bss段的起始地址,也可以用来指定一个连接脚本(连接脚本,不怎么懂,就不介绍了)

直接使用指定代码段,数据段,bss段的起始地址。格式如下:
-Ttext 0x00000000
-Tdata 0x00000000
-Tbss  0x00000000

用法示例

arm-linux-ld -Ttext 0x0000000 -g  crt0.o key_led.o -o key_led_elf   
//将代码段设置在最前面。根据crt0.o key_led.o生成一个key_led_elf文件。

arm-linux-objcopy

被用来复制目标文件的内容到另一个文件中。可以使用不同于源文件的格式来输出目的文件,即可以进行格式转化。

参数

-l:用来指明源文件的格式

-O:用来指定输出文件的格式

-S:不从源文件中复制重定位信息和符号信息到目标文件中去。

用法示例

arm-linux-objcopy -O binary -S key_led_elf key_led.bin
//指定目标文件格式(binary) 输出。

arm-linux-objdump

用法和objdump相似。相对于arm可执行文件或者目标文件进行反编译。

参数

其他参数相同,特殊参数-m介绍

-m:表示machine,确定相对应的机器设备,为反汇编提供条件。

用法示例

arm-linux-objdump -D -m arm  key_led_elf > key_led.dis
//将key_led_elf可执行文件反汇编为key_led.dis文件

alias

alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号”将原来的命令引起来,防止特殊字符导致错误。

语法

alias 新的命令='原命令 -选项/参数'

 -p:打印已经设置的命令别名。

用法示例

显示所有别名
alias -p 
alias cp='cp -i' 
alias l.='ls -d .* --color=tty' 
alias ll='ls -l --color=tty' 
alias ls='ls --color=tty' 

设置别名
alias abCtagsEscope='find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.S" -o -name "*.ch" -o -name "*.cpp" > cscope.files;cscope -bkq -i cscope.files;ctags -R -f .tags'

来自: http://man.linuxde.net/alias

来自: http://man.linuxde.net/alias

B

C

D

E

expr

计算数学表达式

exce

执行指令文件。

用法示例

打开sublime text应用程序
exec /opt/sublime_text/sublime_text "$@"

F

find

参数:

-name:按照文件名查找文件。

-perm:按照文件权限来查找文件。

-prune:使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-user:按照文件属主来查找文件。

-group:按照文件所属的组来查找文件。

用法示例

find /etc -name '*httpd*'
find /Users/abe/Desktop/ -user userName

G

gcc

参数:

-c: 预处理,编译和汇编源文件,但不做连接。编译器根据源文件生成obj文件。

-S:编译后即停止,不进行汇编。

-E:预处理后即停止,不进行编译。预处理之后的代码送往标准输出。GCC忽略任何不需要预处理的输入文件,最后生成 *.i文件。

-o:指定输出文件为file。无论是预处理,编译汇编还是连接,这个选项都是可以使用的。

-Wall:(wring all),在编译和链接过程中显示所有警告信息。

-O1,O2,O3:指的是优化编译文件。如果不写的话,默认是-O1,不进行优化。O1,优化最少,O2优化中等,O3优化最好。详情目前还不怎么了解。

用法示例

gcc test.c -o test//一步到位的编译指令

------------------------------------------
上述编译过程是分为四个阶段进行的,即预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编 (Assembly)和连接(Linking)。

gcc -E test.c -o test.i 或 gcc -E test.c//预处理

gcc -S test.i -o test.s//编译为汇编代码

gcc -c test.s -o test.o//汇编,由汇编编译为目标文件

gcc test.o -o test//连接

-----------------------------------------
多个程序文件的编译
gcc test1.c test2.c -o test

相当于
gcc -c test1.c -o test1.o
gcc -c test2.c -o test2.o
gcc test1.o test2.o -o test


------------------------------------------
优化:-O2使用:
gcc -Wall -O2 -c test1.c -o test1.o

grep

[root@www ~]# grep [-acinv] [–color=auto] ‘搜寻字符串’
filename

注:可以和正则表达式结合使用。

参数:

-a :将 binary 档案以 text 档案的方式搜寻数据 

-c :计算在文件中找到 '搜寻字符串' 的次数 

-i :忽略大小写

-n :顺便输出行号 

-v :反向选择,即显示出没有 '搜寻字符串' 内容的那一行!

-A[num]:显示出包含相应字符串的行,顺便显示后面num行的信息

-B[num]:显示出包含相应字符串的行,顺便显示前面num行的信息

--color==auto:符合条件的文件显示不同字符。

用法示例

grep -na "aa" *.txt;//在挂在目录下,txt文件中,出现“aa”字符串的行,顺便显示行号。

grep -c "aa" a.txt ; //显示出在a.txt文件中,出现“aa”字符串的次数

H

I

ifconfig

ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。

用法示例:

sudo ifconfig eth1 192.168.1.102    //设置网卡ip
sudo ifconfig eth1 down             //关网卡
sudo ifconfig eth1 up               //开网卡

J

K

L

M

N

nl

nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

格式

nl [选项]… [文件]…

参数

-b  :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n  :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0-n rz :行号在自己栏位的最右方显示,且加 0-w  :行号栏位的占用的位数。
-p 在逻辑定界符处不重新开始计算。 

代码示范

nl -b a log2012.log 

nautilus

通过图形化界面打开目录。

使用示范

nautilus /home/

O

objdump

objdump命令是Linux下的反汇编目标文件或者可执行文件的命令

参数

以可执行文件test为例。

-d:反汇编test中的需要执行指令的那些section

-D:与-d类似,但反汇编test中的所有section

-f:显示test的文件头信息

-h:显示test的Section Header信息h

-x:显示test的全部Header信息

-s:除了显示test的全部Header信息,还显示他们对应的十六进制文件代码

用法示例:

objdump -d test//反汇编test中的需要执行指令的那些section

objdump -h test//显示test的Section Header信息

P

Q

R

S

service

就是用于管理Linux操作系统中服务的命令。

格式

service 服务 参数

参数

start   -开始服务
restart -重新启动
stop    -关闭
reload  -重新载入配置。

用法示范

service oracle start    //开启oracle服务
service oracle stop     //停止oracle服务
service oracle restart  //重启oracle服务
service oracle status   //oracle服务状态

sed

格式

sed [-nefr] [动作]

参数

-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来。 

-e :直接在指令列模式上进行 sed 的动作编辑; 

-f :直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作

-r :sed 癿动作支持的是延伸型正则表达法的语法。(预设是基础正则表示法语法) 

-i :直接修改读取的档案内容,而不是由屏幕输出。

动作说明: [n1[,n2]]function

n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 1020 行之间进行的,则『 10,20[动作行为] 』 


function 有底下这些咚咚: 

a :新增, a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行)

c :取代, c 的后面可以接字符串,这些字符串可以取代 n1,n2 之间的行! 

d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; 

i :插入, i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行); 

p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运作~ 

s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配 正则表示法!例如 1,20s/old/new/g 就是啦!

代码示范

nl /etc/passwd | sed '2,5c No 2-5 number'   //将第2-5行的内容取代成为『No 2-5 number』

nl /etc/passwd | sed '2,5d'     // 把/etc/passwd 的内容列出并且打印行号,同时,请将第 2~5 行删除!

sort

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

参数

-u: 在输出行中去除重复行

-r: sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了

-o: 将排序结果写入原文件

-n: 要以数值来排序

-f: 会将小写字母都转换为大写字母来进行比较,亦即忽略大小写

-c: 会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1

-C: 会检查文件是否已排好序,如果乱序,不输出内容,仅返回1

-M: 会以月份来排序,比如JAN小于FEB等等

-b: 会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。

代码示范

sort seq.txt

T

tar

解压缩命令

参数

-c: 建立压缩档案

-x:解压

-t:查看内容

-r:向压缩归档文件末尾追加文件

-u:更新原压缩包中的文件


/*这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。*/
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出


下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

用法示范

//压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg

//解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar –xZvf file.tar.Z   //解压tar.Z

U

V

W

X

Y

Z

#

正则表达式:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值