常用的linux基础命令

常用的linux基础命令

1、ls 显示目录属性

-l:(也可以简写成ll),列表显示权限等属性

-a:显示所有文件包括隐藏文件等

-d:只列出目录本身

2、chgrp 改变档案所属群组

eg:chgrp users install.log/

3、chown 改变档案拥有者

eg:chown emily install.log ; chown Emily:users install.log

-R : 迚行递归(recursive)的持续变更,亦即连同次目彔下的所有档案都变更/

4、chmod 修改权限,r=4,w=2,e=1

eg:把.bashrc这个档案的权限修改回-rw-r--r--的指令chmod 644 .bashrc或者chmod

-R 修改文件夹及其子文件的权限

5、cd 变换目录

cd代表回到当前用户的家目录,等同于cd ~

..回到上一级目录

.当前目录

~家目录

-之前的目录,上一个目录

6、pwd 显示当前目录

-P:表示显示确实的路径,例如var/mail,mail是个链接档,加上-P会显示mail的实际路径var/spool/mail

7、mkdir 建立一个新的目录mkdir test

-p递归创建子目录,例如test/test1/test2  ;  -m 不使用默认权限,创建目录的时候加权限

8、rmdir 删除一个空的目录 rmdir test

-p:删除上层目录

9、cp 复制cp -rf file /tmp

cp:复制指定文件到另一文件或目录

用法: cp [-abrifLP] [source] [dest]

-a:尽可能的将文件的属性、权限的内容都照原状复制

-b:如果目的文件存在,就创造一个备份

-r:若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录

-i:若目的地有重复的文件,询问是否覆盖

-f:若目的地有重复的文件,则覆盖原有文件

-L:复制符号链接,自动修改链接以保证链接有效

eg:cp -rf a.txt /tmp

10、rm 删除档案或目录rm -rf a.txt

rm:用来删除文件或目录

用法:rm [-ifr] name

-r:删除目录及子目录,目录下如果有子目录及文件也会被删除

-f:不询问直接删除

-i:删除前逐一询问确认

注意: 删除的文件非常难恢复,没有windows的回收站

eg:删除/tmp/logs下所有文件

rm -rf /tmp/logs/*

11、mv 移动mv file /tmp

mv:用来为文件或目录改名,或者将文件由一个目录移入另一个目录中

用法:mv[options] 源文件或目录目标文件或目录

-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。

-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。

eg:将/usr/local/tomcat下所有文件移动到 /tmp/tomcat下

mv /usr/local/tomcat/* /tem/tomcat

将a.txt改名为b.txt

mv a.txt b.txt

12、cat  由第一行开始显示档案内容cat test.txt

13、tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

14、nl 显示的时候,顺道输出行号!

15、more 一页一页的显示档案内容 more 档案名

空格键 (space):代表向下翻一页

Enter :代表向下翻『一行』;

字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;

:f :立刻显示出文件名以及目前显示的行数;

q :代表立刻离开 more ,不再显示该档案内容。

b 或 [ctrl]-b :代表往回翻页,不过这么做只对档案有用,对管线无用。

16、less  和more 类似,但是比 more 更好的是,他可以往前翻页, 可以用PgUp/PgDn

17、head 只看头几行

18、tail 动态查看文件内容 tail -f error.log

tail:查看文件末尾内容

用法:tail [参数] [文件]

主要参数:

-f 动态读取

eg:动态查看日志 tail -f err.log

查看末尾10行日志 tail -10 err.log

动态查看末尾5行日志 tail -5f err.log

19、od 以二进制的方式读取档案内容

常用的linux基础命令

20、touch 修改档案时间或建新档

常用的linux基础命令

21、df 列出文件系统整体磁盘使用量

-h:以M/G的形式显示大小

-i:列出可用的inode的使用量和剩余量 df –ih

eg:df –h /etc   将/etc 底下的可用的磁盘容量以易读的容量格式显示

df –aT将系统内的所有特殊文件的格式及名称列出来

22、ps 查看某个进程情况

eg:ps –ef|grep java

23、du 列出目前目录下所有档案容量

du:文件和目录的磁盘使用空间

用法:du [选项][文件]

-s或--summarize 仅显示总计,只列出最后加总的值

-h或--human-readable 以K,M,G为单位,提高信息的 可读性

-k或--kilobytes 以KB(1024bytes)为单位输出

-m或--megabytes 以MB为单位输出

-S或--separate-dirs 显示个别目录的大小时,并不含其子 目录的大小

eg:du –sm /* 检查根目录地下每个目录所占用的容量

24、gzip 压缩文件

Gzip:压缩和解压缩

命令格式:

gzip –[1…9] [trv] file

gunzip file

-1:表示压缩速度最快,压缩比最低

-9:表示压缩速度最慢,压缩比最高

-t:表示校验压缩文件的完整性

-r:表示压缩时包含子目录中的内容

-v:表示压缩时显示正在压缩的文件名和压缩比等资料

eg:gzip -1trv test.txt

gunzip test.txt.gz

25、tar 打包

tar:文件打包

用法 :tar[参数] 目标文件 源目录或文件

主要参数:

-c:创建新文档

-x:解压缩归档文件

-f 文件名:使用归档文件

-j:使用bzip2解压缩

-z:使用gzip解压缩

-v:详细输出模式

eg:tar zcvf test.tar test#压缩

tar zxvf test.tar #解压缩

eg:tar –cv –f etc.tar etc  打包

tar –xv –f ect.tar   解包

tar –zpvc –f /root/etc.tar.gz   打包并压缩

tar –jpvc –f /root/etc/tar.bz2   打包并压缩

tar –zxv –f /root/etc.tar.gz  解包解压缩

tar –jxv –f /root/etc.tar.bz2  解包解压缩

26、zip压缩、unzip解压缩

功能:压缩zip包和解压缩以.zip结尾压缩文件

命令格式:

zip [选项] 压缩文件名 需要压缩的文档列表

-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩

-x “文件列表” 压缩时排除文件列表中指定的文件

-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中

- 压缩级别 压缩级别是一个1~9的数字

可以不加任何参数使用

unzip [选项] 压缩文件名

-x "文件列表" 解压文件,但不包含文件列表中指定的文件

-t 测试压缩文件有无损坏,并不解压

-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压

-n 解压时不覆盖已经存在的文件

-o 解压时覆盖已经存在的文件,并且不要求用户确认

-d 目录名 把压缩文件解压到指定目录下

可以不加任何参数

eg:zip -9r /opt/etc.zip /etc #把/etc下所有文件和文件夹压缩到/opt下的etc.zip

zip –r /opt/var.zip /var –x “*.log”#把/var下所有的文件和文件夹除了以.log结尾的都压缩到/opt目录的var.zip中

unzip –o /opt/etc.zip –d /etc #把/opt/etc.zip解压到 /etc目录下

27、find查找目录下的文件

find:查找目录下的文件

用法: find 目标目录 搜索参数 操作参数

主要参数:

-name 文件名:可以跟通配符

-amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后

-atime 天数:文件最后访问时间为指定天数之前,负数表示之后

-cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后

-ctime 天数:文件最后修改时间为指定天数之前,负数表示之后

-user 用户名:属于用户的目录和文件

-type 文件类型

eg:find / -name test

28、vi 编辑文件

光标定位

M 移动光标到页面*

L移动光标到页面尾处

H移动光标到页面开始处

Ctrl+f向后翻页

Ctrl+b向前翻页

0移动光标到行首

$移动光标到行尾

/:从上往下开始查找

?:从下往上开始查找

撤销和重复

u复原前一个动作

. 重复前一个动作

复制 粘贴 删除

nyy  复制光标所在的向下n行内容

yw复制光标后的单词,以空格为分界

p在光标处粘贴复制的内容

ndd删除光标所在向下n行的内容

ctrl + d:往下翻半屏内容

ctrl + u:往上翻半屏内容

shift + g:到文件末尾

r:替换当前位置字符

x:删除当前位置字符

dd:删除整行

set number:显示行号

set nonu:取消显示行号

:1,3y 复制第一行到第三行

:1,3d 删除第一行到第三行

:1,3s/str/str_new/g 替换第一行到第三行中的字符串

:1,3s/str/str_new    替换第一行到第三行中的字符串第一个字符

:1,3 g/str /d 删除第一行到第三行中含有这个字符串的行

搜索字符串

输入/+要查找的字符串

/test

按n键重新查找下一个

N查找上一个

退出vi

q 退出vi

q! 不保存退出

wq 保存退出

e!不保存修改的文件

w 保存

!强制,后面加叹号的话表示强制

29、rpm安装

rpm –ivh 包名

一次安装多个软件  rpm –ivh a.i386.rpm b.i386.rpm *.rpm

直接由网络上某个档案安装  rpm –ivh http://website/path/a.i386.rpm

查看安装软件  rpm –q 名 eg:rpm –q zip

--nodeps 忽略依赖安装

rpm -qa | grep jdk 检查是否安装了jdk

rpm –e jdk 卸载

如果卸载的时候提示有软件依赖它,卸载时需要加上 --nodeps

eg: rpm -e glibc –nodeps

rpm查询已安装的软件包

rpm –qa >list.txt 把已经安装软件包都输出到list.txt这个文件中

注:可以用前面介绍的grep命令查找

rpm -qa:查询已安装的所有软件包

rpm –q glibc:检察glibc包的版本

示例:rpm -qa|grep httpd

30、yum安装

yum install 名

-y系统自动给出yes响应

yum 移除软件 yum remove 名

yum 清理缓存   yum clean all

yum info 名 eg:yum info zip 会列出软件是否安装、名称、版本、档案容量等信息(rpm –qi zip)

eg:

yum install httpd#安装Apache

yum -y install httpd#如果有选项全部同意安装

yum list|grep httpd#从yum列表中查找你需要的软件

yum update httpd #yum升级Apache

yum list installed |grep mysql#查询是否安装mysql

yum remove mysql#卸载yum安装的mysql

31、top查看内存使用情况(动态)

常用的linux基础命令

常用的linux基础命令

q退出(动态的)

按用户查看 top –u 用户名

top -H查看线程,-H表示一行一个线程

PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

32、ps 查看进程(某个时间点,静态的)

ps:显示瞬间进程 (process) 的动态,使用权限是所有使用者。

主要参数: ps的参数非常多, 此出仅列出几个常用的参数

-A或-e:列出所有的进程。

-l:显示长列表。

-m:显示内存信息。

-w:显示加宽可以显示较多的信息。

-f:显示不同进程之间的关系。

a:显示终端上的所有进程,包括其它用户的进程。

-au:显示较详细的信息。

-aux:显示所有包含其它使用者的进程。

常用的参数是-aux和-ef

可以用管道符连接其他命令使用

eg:ps -ef |grep httpd #查询Apache相关进

查看某个进程情况  ps
–ef|grep java

ps
xH查看所有存在的线程

ps-mp pid查看一个进程起的线程数

33、Free观察内存使用情况

常用的linux基础命令

34、netstat –anp|grep
 ‘80’ 查看80端口占用情况   netstat -nlpt|grep 80

netstat –anp | grep mysql 查看程序端口

35、lsof –i:3306  查看端口占用情况

lsof:列出当前系统打开文件的工具

用法:lsof [options]
filename

常用参数:

lsof filename 显示打开指定文件的所有进程

lsof -c string 显示COMMAND列中包含指定字符的进程所有打 开的文件

lsof -u username 显示所属user进程打开的文件

lsof +d DIR/ 显示目录下被进程打开的文件

lsof +D DIR/ 上,但是会搜索目录下的所有目录,时间相对较长

lsof -i :80 查询指定端口打开的文件

Lsof -p pid 查询指定的pid打开的文件

lsof输出说明

COMMAND:进程的名称

PID:进程标识符

USER:进程所有者

FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、 txt等

TYPE:文件类 型,如DIR、REG等

DEVICE:指定磁盘的名称

SIZE:文件的大小

NODE:索引节点(文件在磁盘上的标识)

NAME:打开文件的确切名称

36、系统服务相关命令

chkconfig:chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。

常用参数:

chkconfig --add
test.sh #将test.sh作为一个系统服务,但是test.sh这个脚本必须放在/etc/rc.d/init.d目录下(还有文章,看注释)

chkconfig --del
test.sh #删除一个系统服务

service test.sh
start #运行刚才设置的系统服务

chkconfig
test.sh on 开机启动

chkconfig
test.sh off 取消开机启动

一些常见的系统服务:

iptbles #防火墙

network #网络

httpd #Apache

nginx #nginx

除了刚才那种把做成系统服务,然后做成开机启动,还有一种就是在/etc/rc.d/rc.local文件中加入要开机执行的脚本

例如要开机启动lampp,在/etc/rc.d/rc.local文件中加入/opt/lampp/lampp
start即可

临时关闭防火墙 service
iptables stop,重启后会失效

date命令,显示当前系统时间,后面可以跟日期格式

cal查看日历,后面可以跟年份查看指定年份的日历

whoami查看当前登录用户

who查看当前有多少用户在使用系统

eg: chkconfig --list 查看所有系统服务
      chkconfig iptables off 开机不启动该服务
      chkconfig iptables on 开机不启动该服务
      service httpd stop 停止该系统服务
      service iptables start 启动该服务
      service iptables restart 重启启该服务

37、重定向 > 查出来的内容复制到文件中

例如 rpm –qa > test.txt 把查出来的内容写到文件test.txt中,这种情况如果test.txt中有内容就会被覆盖,如果不想覆盖 可用两个> 例如rpm –qa >> test.txt

重定向还可用于复制文件,test.txt >> test01.txt text.txt中的内容加在text01.txt原有内容后面

38、date +'%Y%m%d
%H:%M:%S'获取系统当前时间

39、su 切换身份

用法: su root 或者 su - root

这两者的区别是su root不会重新加载切换用户的用户变量,su - root会重新加载用户的用户变量

40、sudo获取超级用户权限执行

有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限。

如果普通用户要使用sudo命令,需要在/etc/sudoers文件中配置才可以使用,例如要besttest用户可以使用sudo获取root用户权限,使用root用户编辑/etc/sudoers文件,找到 root ALL=(ALL) ALL 这一行,在它下面加入bestest
ALL=(ALL) NOPASSWD:ALL然后保存即可。NOPASSWD代表该用户使用sudo的时候不用输入密码

41、后台运行jmeter  : nohup
jmeter-server &

42、上传下载rzsz

sz:将选定的文件发送到本地机器

rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到linux服务器

检查是否安装了rzsz,命令:rpm –qa | grep
lrzsz

常用的linux基础命令

如果没有安装执行下面语句安装

yum install –y lrzsz

常用的linux基础命令

使用:

sz filename

把文件test.sql传到本地  sz test.sql

用rz命令以后,会弹出对话框让选择要上传的文件

43、注销

exit用于字符界面,图形界面只退出终端窗口

logout 文本终端

44、重启

reboot

-w:不实际关机,用户登录信息写入/var/log/wtmp

-d:不将用户登录信息写入/var/log/wtmp

-f:强制重启

reboot
可以不接参数

shutdown

shutdown -r 延时分钟数 “提示信息”

shutdown -r now(now表示立即执行)

不能单独用,至少2个参数

45、关机

halt

-w:不实际关机,用户登录信息写入/var/log/wtmp
 -d:不将用户信息写入/var/log/wtmp

-f:强制关机

-p:关机后,关闭电源
可以不接参数

poweroff

除了无-p参数,其他与halt同

init 0

shutdown

shutdown -h 延时分钟数 “提示信息”

shutdown -h now(now表示立即执行)

不能单独用,至少2个参数

46、添加用户useradd

useradd -d 家目录 -g 组名 -G 组集合(逗号间隔) -p 密码 -s 用户shell程序 用户名

useradd -d
/usr/local/nginx/ -g nginx -G nginx,oracle -p123456 -s /bin/bash test4

若没有使用-p,可以使用命令加密:passwd 用户名

passwd test4

可以不加参数直接useradd test5,添加一个用户,默认使用bash
shell,家目录在/home/下

47、修改用户 usermod

usermod -l 新用户名 -d 新家目录 旧用户名

usermod –l tom –d
/usr/local/tomcat test4

家目录要存在,且为绝对路径

Usermod中同样可以使用useradd参数

48、删除用户userdel

userdel -r 用户名

userdel –r test3

-r用于删除家目录及其所有文件

49、增加组groupadd

groupadd -g 组ID -r 组名

Groupadd –g 451 –r besttest

-r:建立系统组,组ID小于499

新组ID在500-60000之间,小于500的为系统组

所有参数均可省(除了组名)

goroupadd dba

50、修改组groupmod

groupmod -g 组新id -n 组新名 组旧名

groupmod -g 561 -n testtest test

51、删除组groupdel

groupdel 组名

groupdel test

52、查看ip地址ifconfig

53、重启、启动、停止网络命令 service
network restart/start/stop

54、查看历史命令history

55、清屏clear

56、显示文件匹配的行grep命令

grep:显示文件中的匹配行

用法:grep [参数] 字符串 文件名

主要参数:

无参:显示匹配行

-c:显示匹配行数

-e 字符串:匹配特殊字符串,如-开头

-i:忽略大小写

-v:输出不匹配行

-w:匹配指定字符串

可以和别的命令通过"|"管道符连接使用

eg:grep -c “foo” a.txt

ps
-ef|grep httpd |grep -v "grep"

57、kill终止进程

kill:用来终止指定的进程

命令格式:kill [参数][进程号]

主要参数:

-l 
信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

-p 
指定kill 命令只打印相关进程的进程号,而不发送任何信号

-s 
指定发送信号

-u 
指定用户

-9 强制终止进程

可以不加任何参数直接使用

可以后面跟多个pid

eg:kill -9 2321

kill -9
2312 2819

kill 8321

58、设置环境变量

Linux中系统变量是在/etc/profile目录下的,用户的环境变量则在用户的家目录下的.bash_profile文件中,系统环境变量会在开机的时候全部加载,用户的环境变量之后在用户登录时加载

比如说没有mysql命令,我们的mysql客户端是在/opt/lammp/bin目录下,那就可以把/opt/lammp/bin加入到/etc/profile就可以使用mysql命令了 export
LAMPP=/opt/lampp/bin,然后再source /etc/profile 重新加载一下就可以生效了

上一篇:基于 Angularjs&Node.js 云编辑器架构设计及开发实践


下一篇:spring-security3.2.5实现中国式安全管理(转)