linux命令汇总

本节摘要:最近频繁的去生产环境部署和发布项目,用了不少的linux命令,把这些用到的命令做一下总结和记录。

linux命令汇总:

先做几点声明:

(1).这些命令是在redhat linux上运行的,在IBM AIX上使用可能有些就不行;

(2).我并不会去介绍所有的命令,每个命令我也并不会去介绍所有的参数,我只介绍我用到并且是常用的;

(3).介绍不分顺序,我只是对近一段时间用到的命令做一下回顾和总结;

(4).我用root用户登录linux系统,然后在根目录下建了一个pantp目录,后面截图为黑底白字的操作都是在这个目录下进行;

(5).命令下的(1)、(2)表示该命令常用的几种形式;

.ls---显示当前目录的文件

常用的有以下两种:

(1).ls

显示当前目录pantp的文件

image

(2).ls –alt

显示当前目录pantp的所有文件(包含.开头的隐藏文件)的详细列表信息,并且按时间排序

image

.hostname

(1)hostname

查看计算机名称

image

(2)hostname –i

查看计算机的IP地址

image

.whoami

查看当前登录用户

image

.cp

复制文件或目录

(1)复制文件

image

(2)复制目录

image

.scp

远程复制文件或目录(把文件或目录从一台主机复制到另一台主机) 我在虚拟机中装了一个linux系统,这个我没法截图,只把语法写出来,这里只把从本机复制到远程主机列出来,另外一个从远程主机复制到本机就不列出了;

(1)复制文件

先切换到本机需要复制的文件所在的目录(当然也可以写绝对路径,也可以根据情况写相对路径)

scp 本机文件名 远程主机登录的用户名@远程主机IP地址:远程主机的目录

这里列出一个实际的例子:

image

(2)复制目录

先切换到本机需要复制目录的上层(当然也可以写绝对路径,也可以根据情况写相对路径)

scp -r 本机目录名 远程主机登录的用户名@远程主机IP地址:远程主机的目录

image

.mv

移动文件或目录,类似windows系统中的剪切;

(1)移动文件

把文件old.txt移动到dir1目录下

image

(2)移动目录

把目录dir3移动到dir1目录下

image

(3)为文件重命名

把old.txt命名为new.txt

image

.vi

命令模式、编辑模式、底行模式

命令模式:

按esc键切换到命令行模式,此模式常用的就是删除

x 删除当前光标所在字符

dd 删除光标所在的当前行

编辑模式:

按a、i、o进入编辑模式

a 光标会向后移动一位,在当前光标后插入

i 在当前光标前插入,当前光标所在的字符会后移

o 换一行后插入

现在按照以下步骤按照以上三个方式分别插入pantp字符:

步骤如下:

1.打开文件 vi new.txt

2.把光标放在第一行的第二个字符,按下字母a,然后输入pantp

3.按esc切换到命令行模式

4.把光标放在第二行的第二个字符,按下字母i,然后输入pantp

5.按esc切换到命令行模式

6.把光标放在第三行的第二个字符,按下字母o,然后输入pantp

7.按esc切换到命令行模式

8. 输入 :wq 保存并退出

原始文件内容如下:

image

按照上述步骤编辑以后,文件内容如下:

image

退出及保存

(1)切换到命令行模式

(2):q 不存盘退出vi

:wq 保存并退出vi

:q! 不存盘强制退出vi

.more

分屏显示文件,只有文件大小超过一定长度才有效,超过一定长度后,会显示百分比信息;否则此命令的效果和cat类似;

more 文件名

.cat

显示文件的所有内容,一次性显示该文件的所有内容;

cat 文件名

.tail

显示文件的最新内容

(1).tail –f 文件名

动态显示文件增长的内容;

(2).tail –1000f 文件名

动态显示文件增长的最后1000行的内容;

.history

(1).history

显示所有的历史命令

image

(2).history 2

显示最近的两个命令

image

.chmod

改变文件的模式 x(执行)、w(写)、r(读)

搜狗截图_2012-07-10_09-49-59

红色部分一共有十个字符,

第一个字符表示是文件还是目录,d是目录,- 是文件

第二三四个字符分别表示当前文件所属用户root的读、写、执行的权限;

第五六七个字符分别表示当前文件所属组root的用户读、写、执行的权限;

第八九十个字符分别表示当前文件其他组用户的读、写、执行的权限;

(1).chmod g+x 文件名

给sed.txt当前文件所属组用户加上w权限;

搜狗截图_2012-07-10_09-57-25

(2).chmod 777 文件名

给sed.txt.cp当前文件所属组用户加上w权限;此种采用二进制来表示,有该权限就写1,无就写0,然后算出总数;

更改前:

110 100 100----->6 4 4

需要更改为:

110 110 100----->6 6 4

搜狗截图_2012-07-10_10-03-52

.chown

改表文件或目录的所属用户和所属组;(我虚拟机上装的linux只有一个root用户一个root组,我先建一个test组,并在该组下建一个test用户,密码也为test;新建用户和组的操作这里就不介绍了,作为一个开发人员这样的操作很少)

image

(1)chown 用户名 文件名/目录

改变文件或目录的所属用户

把目录dir1所属用户由root改为test

搜狗截图_2012-07-10_18-58-25

(2).改变dir1所属组由root改为test

搜狗截图_2012-07-10_19-39-41

.crontab

crontab 是用来让使用者在固定时间或固定间隔执行程序之用;

为了下面crontab命令的演示,我在pantp目录下建一个执行脚本,crontab.sh

image

(1).建立定时执行任务

我需要crontab.sh脚本每隔一分钟钟执行一次,并把文件输出到pantp目录下的log.txt

为了使此效果明显,我把crontab.sh文件做了一下更改,修改后的文件为:

image

先介绍一下crontab中时程表的格式

时程表的格式如下 :
f1 f2 f3 f4 f5 program

其中 f1 是表示分钟(0-59),f2 表示小时(0-23),f3 表示一个月份中的第几日(1-31),f4 表示月份(1-12),f5 表示一个星期中的第几天(0-6 0表示星期日)。program 表示要执行的程序。
当 f1 为 时表示每分钟都要执行 program,f2 为 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 /n 时表示每 n 分钟个时间间隔执行一次,f2 为 /n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推;

输入crontab -e,然后输入如下部分,输入完成以后,按 :wq 退出;

image

(2).查看定制任务

image

我们可以查看log.txt查看运行结果:

image

(3)删除定制任务

-r 删除当前用户的crontab文件

image

这个是命令慎用,这个会删除当前用户所有的定制任务,我们可以直接crontab –e 进入,然后把不需要的给删除;

.sed

利用script来处理文本文件

把sed.txt和sed.txt.cp中的Abc都替换为pantp

执行sed命令前:

image

(1)第一种方式:sed -e 's/Abc/pantp/' a.txt

-e表示命令以命令行的方式执行;参数s,表示执行替换操作,会把执行后的结果给显示出来;

image

注意此种情况只会把执行后的结果给显示出来,但是文件的本身还没变

(2)第二种情况:sed -i 's/Abc/pantp/' a.txt

参数-i,表示直接操作修改文件,不输出,文件本身已经变了

image

.ssh

(1)登陆到某台机器,默认以当前用户登陆

image

(2)采用指定的用户登陆到某台机器:

搜狗截图_2012-07-10_21-09-46

.ps

(1).ps –ef

ps

通过以上命令,我一般就是查看某个进程是否存在,有时需要根据进程好来杀进程,这时配合kill命令使用,我一般用kill –3 进程号,用这个命令可以生成core文件。

(2).ps –aux

aux这三个选项也会配合起来使用,不过我不常用就不总结在这里了。

.rm

删除文件或目录;

rm –rf 文件名或目录名

.tar

(1)打tar包,把目录a打包为a.tar

tar –cvf a.tar a

(2)解压tar包,把a.tar包解压

tar –xvf a.tar

.jar

(1)打包,把目录a打包成a.jar

jar –cvf a.jar a

(2)解压包,把a.jar解压

jar –xvf a.jar

(3)查看jar包中的文件列表

jar –tvf a.jar

.grep

只介绍两个常用的选项,c 统计数据 i 忽略大小写

查找文件中某个字符出现的数量,统计的是字符出现的行数,如果要查找的字符在一行中出现超过一次,也只会统计一次;

grep –c 字符 文件名

image

.find

常用如下:

(1)查看某个目录下的文件及目录

find system

image

(2)按文件名匹配需要的文件

find 路径 –name 匹配选项

image

.wc

-l 输出当前文件的行数

-c 输出当前文件的字节数

-w 输出当前文件的字数

(1)wc 文件名

image

(2)配合其他命令使用,比如cat

image

.clear

清除屏幕;

.pwd

查看当前所在的目录;

.su

.切换到指定用户

su – tyjk

.切换到root用户

su

.logout/exit

退出当前会话框;

shutdown 这个命令在实际生产环境中一般查证问题不会使用;

关机:shutdown now

重启:shutdown –r now

reboot

add 2012/09/11

top

top命令就是linux系统中的资源管理器,可以显示当前CPU、内存的使用量、剩余量等。

uname

uname -a 查看linux系统的版本