linux实践操作

2017-12-14  本文已影响0人  Hammon

1.基本命令

命令 解释
cd 进D盘 cd /d;cd /文件夹名
pwd 查当前路径
ls 目录文件按行排列
ls -l 目录文件按列排
ls -al 目录所有文件列排序
cat 查看文件全部内容;cat 文件名
mkdir 新建文件夹;mkdir 文件夹名
vi 新建文件(直接进入文件编辑);vi 文件名;
touch 新建文件(不进入文件);touch 文件名

文件名都是要带后缀的。

文件编译命令
命令 解释
esc 退出编辑模式回到命令模式
进入末行模式(在最后一行写命令)
i 进入编辑模式(末行会出现插入或者insert)
H L J K 左右下上移动光标
a 追加命令在光标后一位追加
i 在光标处加
r 替换,先按r在输入替换后的内容
o 进入编辑模式并新起一行
:wq 保存并退出
:q! 退出不保存
^ 移动到行首
$ 移动到行位
w 一个单词一个单词移动光标;5w下移动五个单词
x 删除一个字符;5x就一下删除5个字符
u 回退之前操作相当于Word 中ctrl+z
ctrl+r 撤销刚刚的回退
:%s/n/N/g 将所有的n替换为N;s是替换意思g是全部替换,没有g就只替换一个
:set nu 显示行编号
/a 查找a;在末行输入/查找zifu点回车,然后n正序查下一个N倒序查下一个

所有移动删除(h、j、k、l、x、w)都支持加数字快速操作

2.查找文件操作

1.在电脑E盘建一个文件夹(mkdir test);里面复制一个日志文件例如 catalina.2017-11-24.log
1.查找E盘下所有catalina开头 .log结尾的文件,find /e -name 'catalina*.log'

$ find /e -name 'catalina*.log'
/e/test/catalina.2017-11-24.log

2.查找D盘下,以“catalina”开头,“.log”结尾的文件,find /d -name 'catalina*.log'

/d/program/apache-tomcat-7.0.79/logs/catalina.2017-11-24.log
/d/program/apache-tomcat-7.0.79/logs/catalina.2017-11-27.log
/d/program/apache-tomcat-7.0.79/logs/catalina.2017-11-28.log
/d/program/apache-tomcat-7.0.79/logs/catalina.2017-12-11.log
/d/program/apache-tomcat-7.0.79/logs/catalina.2017-12-14.log

3.统计catalina.2017-11-24.log文件大小 wc catalina.2017-11-24.log

命令:
Administrator@SKY-20170927UML MINGW64 /e/test
$ wc catalina.2017-11-24.log
结果:
 1031  5418 78712 catalina.2017-11-24.log
解释:1031行,5418单词,18712字节

4将catalina.2017-11-24.log分成10个小文件

命令:(按行分一个小文件100行,分后新文件文件名以new_开头)
Administrator@SKY-20170927UML MINGW64 /e/test
$ split -l 100 catalina.2017-11-24.log new_
查看结果:
Administrator@SKY-20170927UML MINGW64 /e/test
$ ls
a.log  c.log                    new_aa  new_ac  new_ae  new_ag  new_ai  new_ak
b.log  catalina.2017-11-24.log  new_ab  new_ad  new_af  new_ah  new_aj  

5.重新合并拆分后的文件

命令:(new_*要合并的文件名,“*”是通配符,hebing.out合并后的新文件名)
Administrator@SKY-20170927UML MINGW64 /e/test
$ cat new_*> hebing.out

Administrator@SKY-20170927UML MINGW64 /e/test
$ ls
a.log  catalina.2017-11-24.log  new_ab  new_ae  new_ah  new_ak
b.log  hebing.out               new_ac  new_af  new_ai  xin.log
c.log  new_aa                   new_ad  new_ag  new_aj

6.随机找一个拆分的文件里面添加自己手机号,保存并退出。

Administrator@SKY-20170927UML MINGW64 /e/test
$ vi new_ac

7.找出手机号所在的文件以及在哪一行。

命令:grep -rn --text '13333610638' ./
grep:全局查询打印命令。
-r:递归查询,也就是遇到子文件夹,会查询子文件夹。
-n:打印行号。
--text:以文本形式查询。
‘13333610638’:要查询的字段,可写正则表达式。
./:“.”当前目录,也可以指定从其他目录,即从指定文件夹查询。
Administrator@SKY-20170927UML MINGW64 /e/test
$ grep -rn --text '13333610638' ./
结果:/new_ac:59所在文件夹59行
./new_ac:59:ʮһ▒▒ 24, 2017 11:43:55 ▒▒▒▒13333610638 org.apache.catalina.startup.HostConfig deployDirectory

8.打开手机号所在文件夹

命令:
Administrator@SKY-20170927UML MINGW64 /e/test
$ vi new_ac
进入之后
/13333610638(找手机号)
点回车之后n下一个,N上一个
或者
:set nu(显示行号)
59j(直接光标下移到59行)

9.more从前往后,一页一页的往后翻

 命令1:
more new_ac
## 最下方会显示已看百分比:
--More--(0%)
 命令2:“/”查询,类似vi,也类似windows的ctrl f
/13333610638

10.业务重现,从日文件查询最新的日志

命令1:(找到D盘的启动程序)
Administrator@SKY-20170927UML MINGW64 /e/test
$ find /d -name startup.sh
/d/program/apache-tomcat-7.0.79/bin/startup.sh
/d/program/MyEclipse14/plugins/com.genuitec.eclipse.easie.tomcat.myeclipse_11.0.0.me201211151802/tomcat/bin/startup.sh
/d/program/MyEclipse14/plugins/com.genuitec.eclipse.easie.tomcat7.myeclipse_11.5.0.me201310302042/tomcat/bin/startup.sh
命令2:启动tomcat
Administrator@SKY-20170927UML MINGW64 /e/test
$ /d/program/apache-tomcat-7.0.79/bin/startup.sh
Using CATALINA_BASE:   /d/program/apache-tomcat-7.0.79
Using CATALINA_HOME:   /d/program/apache-tomcat-7.0.79
Using CATALINA_TMPDIR: /d/program/apache-tomcat-7.0.79/temp
Using JRE_HOME:        C:\Program Files\Java\jdk1.8.0_144
Using CLASSPATH:       /d/program/apache-tomcat-7.0.79/bin/bootstrap.jar:/d/program/apache-tomcat-7.0.79/bin/tomcat-juli.jar
Tomcat started.(以启动)
命令3:找到日志
Administrator@SKY-20170927UML MINGW64 /e/test
$ find /d -name catalina.out
/d/program/apache-tomcat-7.0.79/logs/catalina.out
命令4:打开日志(最后200行 tail -行数f)
Administrator@SKY-20170927UML MINGW64 /e/test
$ tail -200f /d/program/apache-tomcat-7.0.79/logs/catalina.out

打包和压缩

常见压缩包 打包/压缩命令 解压命令 注释
.tar tar cvf filename.tar dirname tar xvf filename.tar 1.filename打包后的文件名,dirname要打包的文件名,2.打包后源文件和包都存在,只是打包没有压缩和源文件一样大
.gz gizp dirname gunizp dirname.gz 1.dirname要压缩的文件2.压缩后源文件不在只有包,3.压缩后文件变小
.tar.gz和.tgz tar zcvf filename.tar.gz dirname tar zxvf filename.tar.gz 1.filename压缩后的文件名,dirname要压缩的文件名,2.打包后源文件和包都存在,压缩后文件变小
.zip zip filename.zip dirname unzip.filename.zip linux命令只能解压不能压缩,压缩要在windows系统下操作
.rar 一般不用只能在window读取
批量删除打包操作

1.将new_开头的文件夹全部打包成一个文件

命令:可以用正则表达式批量给文件打包
$ tar cvf package.tar new_*(打tar包)
$tar zcvf package.tar.gz new_*(打.tar.gz)

2.删除所有的new_开头的文件夹

命令:
rm -rf new_*

查看进程

1.进程含义:
操作系统,将内存、cpu等资源,打包给应用使用,是分配资源的基本单元
查看进程命令:

命令:
Administrator@SKY-20170927UML MINGW64 /e/test
$ ps -ef
结果:
     UID     PID    PPID  TTY        STIME COMMAND
Administ    3048    3224 pty0     09:27:06 /usr/bin/bash
Administ    9048    3048 pty0     21:57:32 /usr/bin/ps
Administ    3224       1 ?        09:27:06 /usr/bin/mintty

2.使用管道符(|)对进程信息筛选
用管道符筛选刚查到的进程

命令1:查看所有进程
Administrator@SKY-20170927UML MINGW64 /e/test
$ ps -ef
结果:
     UID     PID    PPID  TTY        STIME COMMAND
Administ    3048    3224 pty0     09:27:06 /usr/bin/bash
Administ    8708    3048 pty0     22:03:07 /usr/bin/ps
Administ    3224       1 ?        09:27:06 /usr/bin/mintty
命令2:筛选usr进程
Administrator@SKY-20170927UML MINGW64 /e/test
$ ps -ef | grep usr
结果:
Administ    3048    3224 pty0     09:27:06 /usr/bin/bash
Administ    7964    3048 pty0     22:03:36 /usr/bin/ps
Administ    3224       1 ?        09:27:06 /usr/bin/mintty
Administ    7160    3048 pty0     22:03:36 /usr/bin/bash
命令3:筛选usr里面PS
Administrator@SKY-20170927UML MINGW64 /e/test
$ ps -ef | grep usr | grep ps
结果:
Administ    8356    3048 pty0     22:08:14 /usr/bin/ps

重定向

作用:将获取的信息存到文件
1.将test目录中含有g的文件筛选出来

命令:
Administrator@SKY-20170927UML MINGW64 /e/test
$ ls |grep g
结果:
a.log
b.log
c.log
catalina.2017-11-24.log
hebing.out.gz
hebing.zip
logs.tar.gz
news.log
package.tar
xin.log
ys.tar.gz

2.将找到的结果保存到d.log

命令1:(将test目录中含有g的文件筛选出来,重定向,就是把筛选出来的有g的文件重新放进d.log)
Administrator@SKY-20170927UML MINGW64 /e/test
$ ls | grep g > d.log
命令2:(查看d.log的内容)
Administrator@SKY-20170927UML MINGW64 /e/test
$ cat d.log
结果:
a.log
b.log
c.log
catalina.2017-11-24.log
d.log
hebing.out.gz
hebing.zip
logs.tar.gz
news.log
package.tar
xin.log
ys.tar.gz

3.查出含“tar”的文件,并重定向到d.log

命令1:(查出含“tar”的文件,并重定向到d.log)
Administrator@SKY-20170927UML MINGW64 /e/test
$ ls | grep tar > d.log
命令2:(查看d.log里面文件)
Administrator@SKY-20170927UML MINGW64 /e/test
$ cat d.log
结果:
logs.tar.gz
package.tar
qqq.tar
yasuobao.tar
ys.tar.gz
原先的内容没了,一个>是覆盖的方式写入

4.追加重定向>>

命令1:(追加重定向,追加含“g”的文件进入d.log)
Administrator@SKY-20170927UML MINGW64 /e/test
$ ls | grep g >> d.log
命令2:(查看d.log里面文件)
Administrator@SKY-20170927UML MINGW64 /e/test
结果:
$ cat d.log
logs.tar.gz
package.tar
qqq.tar
yasuobao.tar
ys.tar.gz
a.log
b.log
c.log
catalina.2017-11-24.log
d.log
hebing.out.gz
hebing.zip
logs.tar.gz
news.log
package.tar
xin.log
ys.tar.gz
两次重定向加在一起进入一个文件d.log

杀进程

命令:kill -9 进程号

[shccs01 ~]$ps -ef | grep shccs01 | grep tomcat | grep ux

shccs01 18839(进程号) 1 0 Dec11 ? 00:02:09 /usr/lib/jvm/jdk1.8.0_11/bin/java -Djava.util.logging.config.file=/unibss/users/shccs01/server/tomcat/ux/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m -classpath /unibss/users/shccs01/server/tomcat/ux/bin/bootstrap.jar:/unibss/users/shccs01/server/tomcat/ux/bin/tomcat-juli.jar -Dcatalina.base=/unibss/users/shccs01/server/tomcat/ux -Dcatalina.home=/unibss/users/shccs01/server/tomcat/ux -Djava.io.tmpdir=/unibss/users/shccs01/server/tomcat/ux/temp org.apache.catalina.startup.Bootstrap start

[shccs01 ~]$kill -9 18839

查看端口

查询10000端口对应的进程号

命令:(netstat -ano查看所有端口 findstr "10000"筛选10000端口)
C:\Users\Administrator>netstat -ano | findstr "10000"
  TCP    0.0.0.0:10000          0.0.0.0:0              LISTENING       3936
  TCP    127.0.0.1:10000        0.0.0.0:0              LISTENING       7876

查看2488进程对应的应用程序

命令:(tasklist查看所有端口的应用程序)
C:\Users\Administrator>tasklist | findstr "7876"
结果:
yundetectservice.exe          7876 Console                    1      9,200 K
命令:(按照进程号杀程序)
C:\Users\Administrator>taskkill /pid 7876 /f
成功: 已终止 PID 为 7876 的进程。
对比linux和cmd
对比项 linux cmd
查端口 netstat netstat
查进程 ps -ef tasklist
管道符 竖线 竖线
查询包含指定串的行 grep '查询串' findstr '查询串'
杀进程 kill -9 进程号 taskkill /pid 进程号/f
上一篇 下一篇

猜你喜欢

热点阅读