Home » 常用Linux命令

常用Linux命令

vi查找

在vi中进行查找,进入命令模式(按下Shift+:进入),输入/,后边跟要查找的字符,如/disabled进行查找disabled这个单词,按下n跳转到下一个,按下N(也即一般输入法中的Shift+n)跳转上一个。也可以使用一个特殊字符进行精确查找,如:

  • 匹配行首,字符串以^开头
  • 匹配行尾,字符串以$结尾
  • 匹配任意字符,在字符位置键入一个.

vi复制

复制当前行:yy

复制包括当前行在内的往下n行:nyy

复制从光标处到字(词)尾的所有字符:yw

复制从光标处到字(词)首的所有字符:y0(是数字0123的0,不是字母o)

vi粘贴

从光标处往E5标处往后粘贴:p(小写p),需要重复多n次则是np

从光标处往前粘贴:P(大写P),需要重复多次则是nP

vi删除

删除光标所在位置字符:x

删除光标位置往右的剩下单词部分:dw

删除光标位置往右的当前行所有剩下部分:d$

删除光标位置往左的剩下单词部分:d0(数字0123的0)

删除渔村位置往左的当前行所有剩下部分:d^

删除当前行:dd

删除包括光标所在行的往下n行:ndd

vi其他

进入编辑模式:i当前行进入,o另起行进入

快速跳转到文件末尾:G(一般是按下Shift+g)

快速跳转到第n行:nG(一般是按下n+Shift+g)

快速跳转到文件头部:gg

撤销:u

设置行号:进入命令模式(Shift+:)执行set nu

列出文件

列出文件使用ls(平铺)和ll(详细信息),一般是ll使用得多,一般添加如下参数:-a全部,-h人性化显示大小,-t最后修改时间倒序,-S文件大小倒序。

设置文件及目录权限

为文件和目录设置权限,使用命令chmod [option] mode files|path。比如将themes目录递归的设置为全部权限:chmod -R 777 themes。

PHP相关

查看php版本信息:php -v

查看已加载了的扩展:php -m

查看加载的php.ini文件位置:php –ini

输出phpinfo()信息:php -i,由于信息过多,一般配合|grep 进行筛选,如php -i |grep mysql

查看文件及目录大小

使用命令:du [option] filename|path。如du -ah,以友好的方式显示当前目录下所有文件及文件夹的大小。

查看磁盘信息

使用命令:df [option]。如df -h [/log],以友好方式查看所有已挂载磁盘的信息,可以指定具体目录。

查看内存使用信息

使用命令:free [option]。如free -m,以MB单位显示内存信息。

查看运行中的进程信息

使用命令ps [option]。常见的有ps aux和ps -ef。

文件查找

find

文件查找最常用的是find命令:find [目录] [条件] [动作]。

  • 目录。要查找的目录及其子所有目录,默认当前目录及其所有子目录。
  • 条件。所要搜索的文件的特征,也就是筛选依据。
  • 动作。对结果进行特定处理来。

find ./ -name ‘mysql*’,在当前目录下搜索名称为mysql开头的文件。

find ./ -name ‘mysql*’ ls,在当前目录下搜索名称为mysql开头的文件,并显示它们的详细信息。

find ./ -type f -mmin 10,搜索当前目录下过去10分钟更新过的普通文件。如果不加-type f,则搜索普通文件+特殊文件+目录。

locate

locate其他是”find -name”的另一种写法,但要比后者快得多。原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

locate /etc/sh,搜索etc目录下所有以sh开头的文件。

locate ~/m,搜索用户主目录下,所有以m开头的文件。

locate -i ~/m,搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

whereis

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。如whereis php。

which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。如which grep。

type

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。如type cd,显示cd is a shell builtin。若是type wget,显示wget is /usr/bin/wget。

文件查找部分参考自:《Linux的五个查找命令》

查看硬件信息

查看硬件信息可以使用lscpu命令显示CPU的统计信息,也可以查看/proc/cpuinfo文件获得更具体的信息,如cat /proc/cpuinfo。

时间与

使用date [option]命令。如date,显示当前格式化后的时间。date -R,显示当前,注意是大写的R。

解压文件

命令的参数众多,不具体说每个参数是什么意思,记住一般用法即可。

对于tar.gz文件,一般使用:tar -zxvf 文件名,会解压至当前目录(一般这种文件内部会一层文件夹)。其中x:解压,v:输出过程,f:对普通文件操作,j: 解压gzip(gz)类型包,z: 解压bzip2(bz2)类型包。

对于zip文件,一般使用:unzip 文件名,会解压到当前目录。对于rar格式Linux是不支持的。

yum相关

列出已安装的软件:yum list installed。要进行筛选,添加|grep。

安装软件:yum install 包名称。如yum install lrzsz。(使用rz命令上传文件)

查看一个yum包信息;yum info 包名称。如yum info redis。

卸载一个yum包:yum remove 包名称。如yum remove php-redis。

apt-get相关

卸载包:apt-get autoremove –purge 包名称。如:apt-get autoremove –purge mysql-client|mysql-server。

deb包相关

安装包:sudo dpkg -i package_file.deb。

卸载包:sudo dpkg -r package_name。

查看端口占用

使用命令:netstat -apn(-tpl、-upl)。

查看网卡信息

使用命令:ifconfig。

查看Linux发行版信息

使用命令:uname -a,或者cat /etc/issue。

杀死进程

一般用法:kill -9 [进程号]。若要批量,通过ps -aux看到的最后一列的关键词都可以用于搜索,比如”swoole”在最后一列,想全部杀掉包含这个关键词的,使用:pkill -f “swoole”。

grep相关

或操作:

grep -E ‘123|abc’ filename // 找出文件(filename)中包含123或者包含abc的行
egrep ‘123|abc’ filename // 用egrep同样可以实现
awk ‘/123|abc/’ filename // awk 的实现方式

与操作:

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行

非操作:

grep -v ‘css’ //匹配不包含’css’的行

在tail -f中添加grep -v,若发现没有输出,可能需要为grep添加–line-buffer,见这里

其他操作:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行。

修改时区

以下针对CenOS:

显示时区:date -R,默认是标准0时区,在国内一般使用东八区。执行:”cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime” 覆盖之即可。

查看进程开始时间与运行时间

使用命令: ps -eo pid,lstart,etime,args |grep -E “12150|19402|27238″,最后的是进程号。运行时间格式:[[天数-]小时:]分钟:秒数。

参考链接:
http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/default.html

添加系统变量

编辑 /etc/profile 文件,在末尾添加可执行程序所在目录,如 export PATH=/usr/local/php71/bin:$PATH,这样就把一个目录放到了最前边,执行某个命令的时候就做优先在这个目录里边寻找可执行文件了。这里执行php的时候就找到php7的版本,如果要执行旧的版本,把旧的可执行文件复制一份假如为php54,那么执行php54就是旧的。修改完后执行 source /etc/profile 使更改立刻生效。