linux命令学习

来源:互联网 发布:nginx php cgi 编辑:程序博客网 时间:2024/05/19 01:59
mkfs.ext3 filesystem123


1、vi命令

使用Vim/Vi编辑shell脚本,在进行调试的时候,需要进行多行的注释,每次都要先切换到插入模式,在行首输入注释符“#”,再退回命令模式,非常麻烦。其实如果要注释连续行,可在命令模式下执行,格式如下:

  :起始行,终止行s/要替换字符/替换为新字符/g

  如需注释第1行到第20行,可以执行:

  :1,20s/^/#/g

  其中“^”表示在行首插入,“#”为要插入的字符,“g”表示执行替换时不确认,若希望每行交互询问是否执行,可将“g”改为“c”。

  如果编辑PHP脚本,注释要稍微麻烦一点,如也要注释第1行到第20行,要执行:

  :1,20s/^/\/\//g

  PHP的注释符“//”要特殊处理,因为Vim/Vi替换命令格式中默认“/”为分隔符,这样就需要使用转义符“\”,表示“/”就要写成“\/”才可以,所以命令如上所示。强烈建议各位看官使用,省时省力省键盘还省手指头。

注:删除多行注释时,用跟插入多行字符一样的方法即可,只是把要替换的字符串设置成“//”,把替换成的新字符串设置成空的""。

 

如在C语言源文件中的第120到130行插入行注释符"//",可以用命令:    :120,130s/^/\/\//g

若要删除以上c源文件中刚插入的120行到130的行注释,可用命令:    :120,130/^\/\///g

注:在C语言源文件中,若要注释多行,用多行注释   也很方便。

 

 

vi命令打开文本文件时,gg可以将光标定位到文件的第一行。

 

vi命令藩屏:ctrl+b:查看前面一屏的内容。

                 ctrl+f:查看后面一屏的内容。

 

vi命令跳转到某行:用vi命令打开的文件,如果要跳转到本文件的第200行,可以输入“:200”,然后按空格即可。

 

vi命令下的复制与粘贴:

  • 复制本文件的第10行到第15行的内容到本文件的第20行之后:

                      a、光标定位到第10行,非插入模式下输入  ”6yy“  ,然后将光标定位到第20行,非插入模式下输入  “p ” 。

                      b、非插入模式下输入 ” :10,15 co 20“

                      c、光标定位到第10行,非插入模式下输入 “ma”,光标定位到第15行,非插入模式下输入“mb”,光标定位到第20行,非插入模式下输入“mc”,然后在非插入模式下输入“ 'a,'b co 'c ”

                      d、光标定位到第10行,非插入模式下输入 “ma”,光标定位到第15行,非插入模式下输入“mb”,然后在非插入模式下输入“:'a,'b w filename”,再将光标定位到第20行,非插入模式下输入“ :r filename”。

 

vi在编辑模式下有名称补齐的快捷操作:Ctrl+n. 它可以匹配在本文档中出现的所有单词。具体使用方法是:假如本文当中出现过“hello_world”单词,那么在编辑模式下输入"hel"后按Ctrl+n就会自动补齐后面的字母们。假如经过搜索有好几个匹配项,如之前既出现了"hello_world",又出现过"hello_you",那么在编辑模式下输入"hel"后按Ctrl+n就会列出搜索出来的所有匹配项供你选择。

2、du命令

du -sh directory_one

使用以上命令可以估算当前目录下directory_one目录的大小。

关于du命令的使用可以参考:http://hi.baidu.com/liveinyc/item/61efee716294a23d71442343

 

3、size命令

size ./sdd

使用以上命令可以查看当前目录下,可执行程序sdd的text、data、bss这三段的大小。

 

4、strip命令

用size命令显示可执行程序各段的大小时,text、data、bss段三段的大小只和并不等于ls命令查看的可执行文件的大小,原因是用gcc编译之后的可执行文件之包含符号表(便于调试),可以使用strip指令把可执行文件中的符号表删除。

strip -s exe_name

以上形式中-s选项表示删除所有的符号表。

 

5、time命令

使用time命令可以查看一个执行程序的墙上时间(clock time)、用户cpu时间(user cputime)和系统cpu时间(system cpu time)。

time ./test

以上命令显示当前目录下的test可执行程序在执行过程中所用的一下三个时间:

clock time:从程序执行开始,到程序执行结束,一共用了多长时间(包括时间片轮转时,自己被挂起的时间)

user cpu time:用户指令的执行时间(不包括等待时间)

system cpu time:系统(kenel)指令的执行时间(不包括等待时间)

注:user cpu time和system cpu time的和通常称作cpu time。

 

6、date命令显示当前时间

7、chown命令改变文件的拥有者

chown root test

以上命令把test文件的拥有者改成root。

 

8、chmod 命令改变文件的访问权限

chmod o+wtest.c     

以上命令对other用户增加对test.c文件的写权限。

chmod o-w test.c

以上命令消除other用户对test.c文件的写权限

 

注:以上两个命令中o的位置可以改变成u(user)、g(group),w的位置可以改成r(read)、x(excute)、s(set-user-ID标记)

 

9、accton命令打开进程accounting record,用来记录进程的一些相关的信息,如开始执行时间、usertime、system time、process id、io的字节数、.......

accton /var/account/acct

以上命令打开记录(进程)功能,并把所记录的信息存储在/var/account/acct文件中

accton

以上命令(即accton后面没有任何参数)是关闭记录(进程)功能。

 

10、ps命令report a snapshot of the current processes.

ps

以上命令可以显示当前进程的一些信息,结果如下

  PIDTTY         TIME CMD
  655pts/0   00:00:00 ps
 8489pts/0   00:00:00 bash

可以添加选项,进而显示更多的信息,例如下面的命令

ps -o pid,ppid,pgid,sid,comm

显示当前进程的process id、parent process id、process group id、sessionid、command等信息,结果如下

  PID  PPID PGID   SID COMMAND
10402  9394 10402 10402 bash
26885 10402 26885 10402 ps

 

例:ps -axj

以上命令可以显示一些后台进程的信息,选项中-a显示所有被其他用户拥有的进程的状态信息,-x显示没有拥有控制终端的进程(包括后台进程),-j显示与job相关的一些信息(如sessionID, 进程组ID,控制终端情况,终端进程组ID等)。

 

11、cat命令可以显示文本文件的内容

cat  test.t

以上命令在屏幕上打印test.t的内容。

cat

以上命令(即,cat没有指定文件时),cat从屏幕读入,再输出到屏幕。此时可以手动输入文件结束标记,以结束cat命令。文件结束标记(EOF)对应的组合键是:ctrl+d.

 

12、jobs命令

查看当前有多少在后台运行的命令
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped,Terminated,但是如果任务被终止了(kill),shell从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息;

 

13、fg命令

将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

13、fg命令

将后台中的命令调至前台继续运行

如果后台有多个命令,可以用fg%jobnumber将选中的命令调出,%jobnumber是通过jobs命令查看到的后台正在执行的命令的序号(不是pid),%是可以省略的。

fg %1

fg 1

以上两个命令都是将后台序号为1的job调到前台来运行。

 

14、bg命令

将前台运行的作业调到后台,【bg %jobnumber】 %号可不要。该命令需要在使用ctrl+z将作业暂停以后再使用。

 

15、history命令

histoty

以上命令将在屏幕打印前面执行的1000条命令,包括命令编号和命令名称。结果如下:

 1017  history
 1018  man history
 1019  history
 1020  history
 1021  history>hi
 1022  vi hi
 1023  rm hi
 1024  history

注:history打印显示的命令是从编号为1024-1000+1开始的。

 

16、kill命令

kill命令并不是专门用来杀死某个进程,而是向某个进程发送一个特定的信号,不过默认情况下(不指定信号的名称),发送的是SIGTERM信号(用来终止某个进程)。

kill -USR1 1234

以上命令用来向进程ID为1234的进程发送信号SIGUSR1.

kill 1234

以上命令用来向进程ID为1234的进程发送信号SIGTERM.

 

17、echo命令

echo命令用来在屏幕打印一行字符串。

echo $?

以上命令用来显示之前最后一条命令的终止状态值。

 

18、alias命令

alias命令用来对经常使用的命令及参数定义别名。

$alias xiang="cd /home"

$xiang

以上两个命令,第一个命令把 cd /home这一命令及其参数重命名为xiang,然后再在需要使用cd/home的地方用xiang代替就可以了。

 

19、grep命令

grep命令用来搜索一个文件中与某一正则表达式匹配的行,并把他们print出来。

例1:grep xiang file1

以上命令用来查看file1文件中,包含字符串“xiang”的行,并把这些行输出到屏幕上。

例2:grep -A 1 xiang file1

以上命令用来查看file1文件中,包含字符串“xiang”的行,并把这些行以及这些行后的1行输出到屏幕上。

例3:grep -b 1 xiang file1

以上命令用来查看file1文件中,包含字符串“xiang”的行,并把这些行以及这些话前面的1行输出到屏幕上。

 

20、free命令

free命令用来查看系统的内存总量以及使用情况。

例:free

以上例子有如下的输出:

            total      used      free    shared   buffers    cached
Mem:     32963608  32806504    157104                   30354068
-/+buffers/cache:   2452436   30511172
Swap:     2097144     15016   2082128

注以上都是以kb为单位。

21、mount命令

mount命令可以用来挂载文件系统,也可以用来查看当下所用系统的所用文件系统的一些信息。

$mount -T

以上命令用来查看当前系统的所用文件系统的一些信息,-T表示打印文件系统的类型。

$mount /filesystem123 /filesys

以上命令用来将文件系统filesystem123挂载到/filesys文件夹下。

 

22、mkfs命令

使用mkfs命令可以用来创建文件系统。

$mkfs.ext3 filesystem123

以上命令创建了类型为ext3的文件系统filesystem123.
 

23、ipcs命令

ipcs命令用于查看系统当前维持的的进程间通信对象的信息。
例如:

ipcs -q

说明:以上命令将系统当前维持的所有消息队列的信息输出到标准输出。

ipcs -m

说明:以上命令将系统当前维持的所有共享内存区的信息输出到标准输出。

ipcs -s

说明:以上命令将系统当前维持的所有信号量的信息输出到标准输出。

注:ipcs命令还有一些对输出内容进行控制的选项。

 

23、ln命令

ln命令用来创建一个文件的连接(硬链接或软连接)。(make link between files)。例

ln test test_link

说明:以上命令创建文件test的一个硬链接test_link,即路径名test和路径名test_link是指向同一个文件的,只是名字不一样。

ln -s test test_symbolic_link

说明:以上命令创建文件test的一个软连接test_symbolic_link文件,test_symbolic_link文件中包含的内容是test文件的路径,而不是test文件的内容。

注:1、查看各文件大小,会发现:test文件大小与test_link文件大小一样。而test文件大小和test_symbolic_link文件的大小不一样,因为test_symbolic_link文件中存放的只是test文件的路径名。2、用vi、less等命令打开test_symbolic_link文件时,看到的将是test文件的文件内容,因为vi、less命令追踪软连接。3、删除(rm)路径名test_link和test_symbolic_link时不会删除文件test。

 

24、ls命令

ls dir

以上命令可以查看目录dir下的文件列表。

ls -l dir

以上命令查看目录dir下的文件,并以long format(也就是好多信息)的形式输出这些文件的信息。

ls -l -h dir

以上命令查看目录dir下的文件,并以long format的形式输出这些文件的信息,其中有一项是文件的大小,-h表示以人们(--human)可读的形式显示文件大小(默认情况下是姨字节为单位的)。

 

25、sed命令(stream editer)

sed命令是stream editer的简称,即sed命令对输入流(从文件读入或从标准输入读入)进行筛选编辑。可以用sed命令筛选出文件中某一行或某几个连续的行的内容。具体使用方法如下:

sed -n 5p filename

以上命令显示文件名为filename的文件中的第5行的内容。

sed -n '5,10p' filename

以上命令显示文件名为filename的文件中的第5行到第10行的内容。


26、wc命令

手册中的描述如下:

NAME       wc - print the number of newlines, words, and bytes in filesSYNOPSIS       wc [OPTION]... [FILE]...DESCRIPTION       Print  newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified.  With       no FILE, or when FILE is -, read standard input.       -c, --bytes              print the byte counts       -m, --chars              print the character counts       -l, --lines              print the newline counts       -L, --max-line-length              print the length of the longest line       -w, --words              print the word counts       --help display this help and exit       --version              output version information and exit

原创粉丝点击