目前,公司的项目实施中用到的操作系统多数为Linux,因此,为了增加大家对Linux的了解,快速熟悉常用的Linux命令,特编写本文档。
 
1. 文件操作
#切换当前目录到/web
cd /web 
 
#显示当前目录的全路径
pwd 
 
#显示当前目录下的文件和目录
ls 
 
#显示当前目录下的所有文件和目录,包括隐藏文件和目录
ls -a 
 
#以列表形式显示当前目录下的文件和目录,能够查看文件的权限状况、拥有者、大小及最后修改时间
ls -l 
 
#创建文件
>1.txt
 
#创建目录
mkdir test
 
#重命名
mv 1.txt 2.txt
 
#移动文件到/tmp目录下
mv 1.txt /tmp/
 
#将1.txt复制成2.txt
cp 1.txt /tmp/2.txt
 
#删除文件,删除之前会要求确认
rm 1.txt
 
#删除目录,会递归删除目录下的子目录及文件,删除前会要求确认
rm -r test
 
#直接删除1.txt
rm -f 1.txt 
 
#直接删除目录及目录下的子目录、文件
rm -rf test 
 
 
#递归列出当前目录的所有子目录及文件
find .  #输出结果以.开头
 
#递归列出/web目录的所有子目录及文件
find /web #输出结果为全路径
 
#查找/web目录下文件名以.sql结尾的文件
find /web -name '*.sql'
 
#查找当前目录下100天之内修改过的文件
find . -mtime -100 
 
#删除所有.sql文件
find .-name '*.sql'|xargs rm -rf
 
2. 文本显示
#显示文本文件内容,进入命令后,回车显示下一行,空格显示下一屏
more 1.txt 
 
#从第2000行开始显示文本文件,在操作日志时很有用
more +2000 1.txt 
 
在输入more命令显示文本文件后,可以输入如下字符执行相应操作:
h :获得帮助
/ : 执行正则表达式搜索,例如输入/zving,则会从当前行开始搜索zving,如果有搜索到,则跳到相应行
= : 显示当前行号
 
#显示文件的后10行
tail 1.txt
 
#显示文件的后100行
tail -n 100 1.txt
 
#显示文件的末尾,如果文件有追加内容,则自动输出追加的内容,常用于监视日志文件
tail -f catalina.out
 
#将1.txt中含有zving的行输出
grep zving 1.txt
 
#将1.sql中以create开头的行输出,不区分大小写
grep -i ^create 1.sql
 
#查找结果分屏显示
grep zving 1.txt|more
 
#查找结果输出到临时文件
grep Exception catalina.out>tmp.txt
 
#统计文本文件的行数
wc -l 1.txt
 
#统计查找结果
grep zving 1.txgt|wc -l
 
 
3. 文本编辑
#编辑文本文件
vi 1.txt
进入vi后,默认是指令模式,在指令模式中按i可以进入输入模式,在输入模式下按ESC可以进入指令模式。两种模式下都可以用上下左右移动光标。
输入模式操作很简单,就是在当前光标位置输入文本,按退格键删除文本。
指令模式下则有很多命令,常用的有:
dd #删除当前行
/pattern #从光标开始处向文件尾搜索pattern(正则表达式)
?pattern #从光标开始处向文件首搜索pattern(正则表达式)
n #在同一方向重复上一次搜索命令
N #在反方向上重复上一次搜索命令
:s/p1/p2/g #将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g #将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g #将文件中所有p1均用p2替换
:w #保存
:x #保存并退出
:q #退出
:q! #不保存强制退出
 
 
4. 用户和权限操作
       所有项目包括泽元自己的服务器都不允许直接使用root操作,即使得到root密码后也要建立zving账号,并为zving账号授权。常见的操作有:
#增加zving账号
useradd zving 
 
#删除zving账号
userdel zving
 
#修改zving密码
passwd zving
 
#将tomcat的目录的拥有者设为zving
chown -R zving /usr/tomcat 
 
#将项目web目录的拥有者设为zving
chown -R zving /web/zcms
 
#某些项目使用了apache或者nginx做http服务器,为了使zving用户也能修改相应的配置文件,需要修改文件拥有者
chown -R zving /etc/httpd 
 
#给文件加可执行权限,shell脚本需要加可执行权限后才能执行
chmod +x startup.sh
 
#给目录下及其子目录下的所有文件加可执行权限
chmod -R +x test 
 
以上命令中的目录名需要根据实际情况灵活调整,参数-R表示递归设置
 
#当前用户切换成zving,如果是root用户则不需要输入zving密码,其他用户则需要输入密码才能切换
su zving  #exit命令可以返回原来的用户
 
#切换成oracle用户,环境变量和工作目录都切换成oracle用户的
su -l oracle
 
5. 第三方软件
#启动apache
apachectl -k start
 
#关闭apache
apachectl -k stop
 
#重启apache
apachectl -k restart
 
#启动tomcat,注意,不能使用root用户启动,要求新建zving用户,使用zving用户来启动tomcat
/usr/tomcat/bin/startup.sh 
 
#关闭tomcat
/usr/tomcat/bin/shutdown.sh
有时候shutdown.sh不能正常关闭tomcat,需要先使用ps aux|grep java找到tomcat对应的pid,然后使用kill -9 pid强制关掉进程
要注意不要在server.conf中有指向webapps目录下的context节点,否则会导致文件访问冲突,解决方式是将应用从webapps下移到外面,并修改server.conf
 
#启动mysql
/etc/init.d/mysqld start  #有些系统上是mysqld得换成mysql
 
#停止mysql
/etc/init.d/mysqld stop  #有些系统上是mysqld得换成mysql
 
#重启mysql
/etc/init.d/mysqld restart  #有些系统上是mysqld得换成mysql
 
#oracle的sqlplus操作,一般需要切换到oracle用户(使用su -l oracle)
sqlplus /as sysdba  #以dba身份进入oracle
进入sqlplus后使用startup启动数据库,shutdown immediate关闭数据库
 
#oracle监听器操作
lsnrctl  #进入命令后可以使用status查看监听了哪些实例
 
6. 系统命令
#显示所有进程
ps aux
 
#显示所有java进程
ps aux|grep java
ps命令输出结果的第2列即为进程的pid
 
#杀掉进程
kill -9 pid
 
#让java进程输出线程信息
kill -3 pid
 
#显示test目录下的所有文件的大小的合计
du -hs test
 
#显示所有分区的使用情况
df -h
 
#动态显示所有进程的资源使用情况
top
 
#内存\CPU\进程统计信息
vmstat
其中第1列"r"表示有多个进程正在进行,第二列"b"表示有多少进程被阻塞,"us"列表示用户进程使用的cpu比例,"sy"表示系统进程使用的cpu比例
 
#每隔2秒统计一次,连续统计一万次
vmstat 2 10000
 
#释放可释放的内存并显示内存使用情况,需要注意的是有多少可用内存需要看第二行的free列结果
free
 
#列出打开文件
lsof
#列出/usr/tomcat未关闭的文件
lsof|grep /usr/tomcat
 
#显示环境变量
env
 
#重启系统
reboot 或 shutdown -r now
 
#显示命令的帮助文档
man ls
 
 
7.其他
       自动完成:在输入命令到需要指定文件名或者目录时,输入文件或者目录的前几个字母后可以按tab键自动完成,如果有多个可能的选项,则会在按两次tab键后列出所有可能的文件和目录。
       命令管道:Linux中上一个命令的输出可以作为下一个命令的输入,两个命令之间以竖线隔开。例如:ps aux|grep java。
 
       说明:Linux的命令功能很强大,本文只是列出了最常用的用法,还不够完善、严谨,大家还可以进行深度发掘。每个命令最好都亲自敲一遍。