linux 命令大全

/etc  系统引导所需的配置文件

/lib  C编译程序需要的函数库

/usr  其他的所有内容,如 src ,local。linux内核就在/usr/src下

/var  系统定义表

/tmp  用于临时性的存储

/bin  大多数的命令存放

/home  存放用户账号

/dev  设备文件的特殊文件

/mnt  用于外挂文件系统(挂载系统盘、光盘)

安装vim:apt-get install vim

查看当前目录:ls -l  、ls -lh

x:删除单个字符

dd:删除一行

u:恢复删除

Ctrl+r:取消命令,如:恢复删除之后还可以取消恢复删除的命令。

y:复制

p:粘贴

查找字符::/字符  如: :/a   即为查找文件中a   ,n 下移  N上移

跳转到某一行::n  或者 nG   如 :5 跳转到5行。

设置行号::set number

设置首行缩进::set cindent shifwidth=4

设置tab键空格数量::set tabstop=2

程序编译过程:预编译、编译、优化、汇编、链接

编译文件:gcc  hello.c

执行文件: ./a.out

编译为指定名称的文件: gcc -o test hello.c

执行文件:./test

计算机主机名:hostname

查询ip:hostname -i

永久修改主机名:/etc/sysconfig/network

常用指令

1.说出10个linux常用的指令

  • ls 查看目录中的文件

  • cd /home 进入 ‘/ home’ 目录;cd .. 返回上一级目录;cd ../.. 返回上两级目录

  • mkdir dir1 创建一个叫做 ‘dir1’ 的目录

  • rmdir dir1 删除一个叫做 ‘dir1’ 的目录 (只能删除空目录)

  • rm -f file1 删除一个叫做 ‘file1’ 的文件’,-f 参数,忽略不存在的文件,从不给出提示。

  • rm -rf /mulu  目录下面文件以及子目录下文件

  • cp /test1/file1 /test3/file2   如将/test1目录下的file1复制到/test3目录,并将文件名改为file2

  • mv /test1/file1 /test3/file2  如将/test1目录下的file1移动到/test3 目录,并将文件名改为file2

  • mv * ../ Linux当前目录所有文件移动到上一级目录

  • ps -ef|grep xxx 显示进程pid

  • kill  使用kill命令来终结进程。先使用ps命令找到进程id,使用kill -9命令,终止进程。

  • tar –xvf file.tar  解压 tar包

  • unzip file.zip 解压zip

  • unrar e file.rar 解压rar

  • free -m  查看服务器内存使用情况

ps查看进程

2.如何查看所有java进程

  • grep是搜索关键字

ps -ef | grep java

  • -aux 显示所有状态

ps -aux | grep java

kill 杀掉进程

3.如何杀掉某个服务的进程

  • kill 命令用于终止进程

  • -9 强迫进程立即停止

kill -9 [PID]

这里pid需要用 ps -ef | grep 查询pid

启动服务

4.如何启动服务

以启动Tomcat为例,先cd到启动的.sh文件目录

  1.  
    > cd /java/tomcat/bin
  2.  
    > ./startup.sh

停止Tomcat服务命令

./shutdown.sh

查看日志

5.如何查看测试项目的日志

一般测试的项目里面,有个logs的目录文件,会存放日志文件,有个xxx.out的文件,可以用tail -f 动态实时查看后端日志

先cd 到logs目录(里面有xx.out文件)

tail -f xx.out

这时屏幕上会动态实时显示当前的日志,ctr+c停止

6.如何查看最近1000行日志

tail -1000f xx.out

查看端口

7.LINUX中如何查看某个端口是否被占用

netstat  -anp  | grep   端口号

图中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了

查看82端口的使用情况,如图

netstat  -anp  |grep  82

可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了

查看当前所有已经使用的端口情况,如图:

netstat   -nultp(此处不用加端口号)

find查找文件

8.如何查找一个文件大小超过5M的文件

find . -type f -size +100M

9.如果知道一个文件名称,怎么查这个文件在linux下的哪个目录,如:要查找tnsnames.ora文件

find / -name tnsnames.ora

查到:
/opt/app/oracle/product/10.2/network/admin/tnsnames.ora
/opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora

还可以用locate 来查找

locate tnsnames.ora

结果是:
/opt/app/oracle/product/10.2/hs/admin/tnsnames.ora.sample
/opt/app/oracle/product/10.2/network/admin/tnsnames.ora
/opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora

10.find查找文件

find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
find /etc -name ‘srm‘  #使用通配符(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
find . -name ‘srm‘   #表示当前目录下查找文件名开头是字符串‘srm’的文件

按照文件特征查找     
find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
find / -atime -2   # 查找在系统中最后48小时访问的文件
find / -empty   # 查找在系统中为空的文件或者文件夹
find / -group cat   # 查找在系统中属于 group为cat的文件
find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
find / -mtime -1   #查找在系统中最后24小时里修改过的文件
find / -user fred   #查找在系统中属于fred这个用户的文件
find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
find / -size -1000k   #查找出小于1000KB的文件

查看文件

查看文件内容的命令:

cat     由第一行开始显示内容,并将所有内容输出   (之前公司用的比较多)

tac     从最后一行倒序显示内容,并将所有内容输出

more    根据窗口大小,一页一页的现实文件内容

less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head    只显示头几行

tail    只显示最后几行                             (之前公司用的比较多)

nl      类似于cat -n,显示时输出行号

tailf   类似于tail -f     

查看命令下一步其实就是编辑,但是编辑命令涉及比较多,参考文章:Linux文件编辑命令vi详细说明

1.cat 与 tac

cat的功能是将文件从第一行开始连续的将内容输出在屏幕上。但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只能看到一部分内容。

cat语法:cat [-n]  文件名 (-n : 显示时,连行号一起输出)

tac的功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上。我们可以发现,tac实际上是cat反过来写。这个命令也不常用。

tac语法:tac 文件名。

2.more和less(常用)

more的功能是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | more

more的语法:more 文件名

Enter 向下n行,需要定义,默认为1行; 

Ctrl f 向下滚动一屏; 

空格键 向下滚动一屏; 

Ctrl b 返回上一屏; 

= 输出当前行的行号; 

:f 输出文件名和当前行的行号; 

v 调用vi编辑器; 

! 命令 调用Shell,并执行命令; 

q 退出more

less的功能和more相似,但是使用more无法向前翻页,只能向后翻。

less可以使用【pageup】和【pagedown】键进行前翻页和后翻页,这样看起来更方便。

less的语法:less 文件名

less还有一个功能,可以在文件中进行搜索你想找的内容,假设你想在passwd文件中查找有没有weblogic字符串,那么你可以这样来做:

[root@redhat etc]# less passwd

然后输入:

/weblogic

回车

此时如果有weblogic字符串,linux会把该字符已高亮方式显示。

退出查看页面,请按“q”键。

3.head和tail

head和tail通常使用在只需要读取文件的前几行或者后几行的情况下使用。head的功能是显示文件的前几行内容

head的语法:head [n number] 文件名 (number 显示行数)

tail的功能恰好和head相反,只显示最后几行内容

tail的语法:tail [-n number] 文件名

4.nl

nl的功能和cat -n一样,同样是从第一行输出全部内容,并且把行号显示出来

nl的语法:nl 文件名

5.tailf

 tailf命令几乎等同于tail -f,严格说来应该与tail --follow=name更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件(It is similar to tail -f but does not access the file when it is not growing.  This has the side effect of not updating the access  time for the file, so a filesystem flush does not occur periodically when no log activity is happening.)。tailf特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问嘛(tailf  is extremely useful for monitoring log files on a laptop when logging is infrequent and the user desires that the hard disk spin down to conserve battery life.)。tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令,本文提供了怎么编译安装tailf命令的方法。

文件编辑命令vi详细说明

1、引言

          相信有很多程序员朋友,在长时间不操作linux系统或者初学linux命令时,都有跟我有一样的疑惑。

          这个vim命令与vi命令有什么区别?不都是编辑器么?          

2、vi命令与vim命令

          其实,很好理解:

          首先来说它们两者的共同点:都是文本编辑器。

          接下来是它们两者的不同点:

        【 vi编辑器】:vi是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,

                                它的强大不逊色于任何最新的文本编辑器。他是我们使用Linux系统不能缺少的工具。

        【 vim编辑器】:vim可以当作vi的升级版本,vim最大的特点是具有程序编辑的能力,可以以字体颜色

                                 辨别语法的正确性,方便程序设计。vim里面加入了很多额外的功能,例如支持正则表

                                 达式的搜索、多文件编辑、块复制等等。

          综上所述:

                 由于vi编辑器对于Unix及Linux系统的任何版本,vi编辑器都是完全相同的,

                 所以,我们只需学会vi编辑器,您将在Linux的世界里畅行无阻。

3、vi命令使用        

          vi基本上可以分为三种模式,分别是一般模式、编辑模式和命令行模式,各模式的功能区分如下:

          ①、一般模式:

                      当以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用 

                      上下左右按键来移动光标,你可以使用删除字符或删除整行来处理文件内容,也可以使用

                      复制、粘贴来处理你的文件数据。

          ②、编辑模式:

                      在一般模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到

                      你按下【i, I, o,O, a, A, r, R】等任何一个字母之后才会进入编辑模式。这时候屏幕的左下方

                      会出现【INSERT或 REPLACE】的字样,此时才可以进行编辑。而如果要回到一般模式时,

                      则必须要按下【Esc】即可退出编辑模式。          

          ③、命令行模式:

                      输入【 : / ? 】三个中的任何一个,就可以将光标移动到最底下那一行。在这个模式中,可以

                      提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式中完成的。      

          此为概念的理解以及讲解。下面为命令的讲解。

3.1一般模式 

                 a.移动光标

                           h:控制光标左移一格

                           j :控制光标下移一格

                           k:控制光标上移一格

                           l :控制光标右移一格

                           ctrl+b:屏幕往后移动一页

                           ctrl+f :屏幕往前移动一页

                           ctrl+u:屏幕往后移动半页

                           ctrl+d:屏幕往前移动半页

                           0 :移到文章的开头

                           G:移动到文章的最后

                           $ :移动到光标所在行的行尾

                           ^ :移动到光标所在行的行首

                           w:光标跳到下个字的开头

                           e :光标跳到下个字的字尾

                           b :光标回到上个字的开头

                           #l:光标移到该行的第#个位置,如:5l,56l     

                  b.删除文字

                           x:   每按一次,删除光标所在位置的"后面"一个字符

                           #x: 例如,「6x」表示删除光标所在位置的"后面"6个字符

                           X:  大写X,每按一次,删除光标所在位置的"前面"一个字符

                           #X: 例如,「20X」表示删除光标所在位置的"前面"20个字符

                           dd:  删除光标所在行

                           #dd:从光标所在行开始删除#行

                  c.复制

                           yw:  将光标所在之处到字尾的字符复制到缓冲区中 

                           #yw:复制#个字到缓冲区 yy:复制光标所在行到缓冲区

                           #yy: 例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字 

                             p:   将缓冲区内的字符贴到光标所在位置;

                                     注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能

                  d.替换

                           r :替换光标所在处的字符。

                           R:替换光标所到之处的字符,直到按下「ESC」键为止 

                  e.跳至指定的行

                           ctrl+g:列出光标所在行的行号

                           #G:例如,「15G」,表示移动光标至文章的第15行行首

                  f.更改

                           cw:  更改光标所在处的字到字尾处

                           c#w:例如,「c3w」表示更改3个字

                  g.恢复上一次操作

                           u:如果您误执行一个命令,可以马上按下「u」,回到上一个操作;

                                 按多次"u"可以执行多次回复

3.2编辑模式(重点)        

                  a.进入编辑模式

                           i : 从目前光标所在处插入

                           I : 在目前所在行的第一个非空格符处开始插入

                           a: 从目前光标所在的下一个字符处开始插入

                           A: 从光标所在行的最后一个字符处开始插入

                           o :在目前光标所在的下一行处插入新的一行

                           O:在目前光标所在处的上一行插入新的一行

                           r : 只会取代光标所在的那一个字符一次

                           R:会一直取代光标所在的文字,直到按下 ESC 为止

                           Esc:退出编辑模式,回到一般模式

3.3命令行模式                 

                  注意:如在编辑模式,需按下【Esc】退出编辑模式,回到一般模式

                  a.进入命令行模式 (指令前带 ":",再敲指令前先敲 ":" )

                           :w : 保存编辑的内容

                           :w! :强制写入该文件,但跟你对该文件的权限有关

                           :q :  离开vi

                           :q! : 不想保存修改强制离开

                           :wq :保存后离开

                           :x :   保存后离开

                           ZZ :若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开

                           :w filename :将编辑的数据保存成另一个文件(类似另存)

                           :r filename : 在编辑的数据中,读入另一个文件的数据。

                                                 即将【filename】 这个文件的内容加到光标所在行后面

                           :n1,n2 w filename :将n1到n2的内容保存成filename这个文件

                           :! command :暂时离开vi 到命令行模式下执行command的显示结果;

                                                  例如 【:! ls /home】即可在 vi 当中察看/home底下以ls输出的文件信息

                           :set nu :显示行号

                           :set nonu :与 set nu 相反,为取消行

                  b.查找(指令前带 ":",再敲指令前先敲 ":" )

                           /xxx: 向光标向下寻找一个名称为xxx的字符串

                           ?xxx:向光标向上寻找一个名称为xxx的字符串

                           n:代表重复前一个查找的动作

                           N:与n刚好相反,为【反向】进行行前一个查找动作

                           :n1,n2s/xxx/yyy/g:n1与n2为数字,在第n1与n2行之间查找xxx这个字符串,

                                                          并将该字符串替换为yyy

                           :1,$s/xxx/yyy/g: 从第一行到最后一行查找xxx字符串,并将该字符串替换为yyy

                           :1,$s/xxx/yyy/gc:从第一行到最后一行查找xxx字符串,并将该字符串替换为yyy,

                                                        且在替换前提示用户确认是否进行替换

原文地址:https://www.cnblogs.com/js1314/p/13899499.html