作为开发者,公司职务分的不是很明确,开发有时候也得去linux上搞搞版本上线,环境搭建,部署系统之类的,所以下面是个人经历过,遇到在linux上经常用到什么命令,记录下来

进入文件夹命令

<pre class="brush:bash;toolbar:false">cd + 文件夹名字

列出文件夹下面的文件:

<pre class="brush:bash;toolbar:false">ll

或者

<pre class="brush:bash;toolbar:false">ls

ll和ls的区别是一个更加详细一些,可以看到权限,文件大小,文件时间之类的
效果如图:


 title=

当然还有ls 还可以加参数,常用过的也就是下面

<pre class="brush:bash;toolbar:false">ls -lth

 title=

统计当前文件夹文件个数

<pre class="brush:bash;toolbar:false">ls | wc -l

查看进程

一般用于查看某个项目是否在运行状态

<pre class="brush:bash;toolbar:false">ps -ef | grep + 进程名,一般是项目名
#可以过滤多个文件夹名字,比如:
ps -ef | grep java | grep cmis

 title=

上面查出进程,可以通过命令杀死进程,通过进程id杀进程,上面的818和864就是进程id,命令如下:

<pre class="brush:bash;toolbar:false">kill -9 + 进程id

根据端口结束进程

lsof -i:端口号
根据pid结束掉

<pre class="brush:bash;toolbar:false">[root@VM_0_8_centos ~]# lsof -i:3001
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    21583 root   19u  IPv6 119642      0t0  TCP *:origo-native (LISTEN)
[root@VM_0_8_centos ~]# kill -9 21583
[root@VM_0_8_centos ~]# lsof -i:3001
[root@VM_0_8_centos ~]#

查看文件命令

查看小文件内容,可用cat命令:

<pre class="brush:bash;toolbar:false">cat + 文件名

查看日志文件可用veiw命令:

<pre class="brush:bash;toolbar:false">view + 文件名

根据端口结束进程

lsof -i:端口号
根据pid结束掉

<pre class="brush:bash;toolbar:false">[root@VM_0_8_centos ~]# lsof -i:3001
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    21583 root   19u  IPv6 119642      0t0  TCP *:origo-native (LISTEN)
[root@VM_0_8_centos ~]# kill -9 21583
[root@VM_0_8_centos ~]# lsof -i:3001
[root@VM_0_8_centos ~]#

查看文件命令

查看小文件内容,可用cat命令:

<pre class="brush:bash;toolbar:false">cat + 文件名

查看日志文件可用veiw命令:

<pre class="brush:bash;toolbar:false">view + 文件名

在view打开文件下查询文件内容:
输入/即可查询

<pre class="brush:bash;toolbar:false">/ 关键字

选择下一个关键字只需要点击键盘n键,选择上一个关键字键盘大写N键:

<pre class="brush:bash;toolbar:false">n 下一个关键字
N 上一个关键字

翻页用快捷键是:

<pre class="brush:bash;toolbar:false">Ctrl + f 下翻
ctrl + b 上翻

如果文件太大可以改用more命令,这个命令是一页一页的显示出来的,对于查找会比较不方便,但是对于查看文件效率高一些

查找文件:find

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索

特定用户属主的文件。

常用用法:

命令 含义

find ./ -name test.sh 查找当前目录下所有名为test.sh的文件

find ./ -name '.sh’ 查找当前目录下所有后缀为.sh的文件

find ./ -name "[A-Z]" 查找当前目录下所有以大写字母开头的文件

find /tmp -size 2M 查找在/tmp 目录下等于2M的文件

find /tmp -size +2M 查找在/tmp 目录下大于2M的文件

find /tmp -size -2M 查找在/tmp 目录下小于2M的文件

find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件

find ./ -perm 777 查找当前目录下权限为 777 的文件或目录

vi命令

用于在linux下编辑一些配置文件用的,操作如下:

<pre class="brush:bash;toolbar:false">vi + 文件名
#也可以用下面的,但是部分系统没有vim
vim + 文件名

命令模式:
yy:复制 光标所在的这一行
4yy:复制 光标所在行开始向下的4行

<pre class="brush:bash;toolbar:false">p: 粘贴

dd:剪切 光标所在的这一行
2dd:剪切 光标所在行 向下 2行
D:从当前的光标开始剪切,一直到行末
d0:从当前的光标开始剪切,一直到行首
x:删除当前的光标,每次只会删除一个
X:删除当前光标前面的那个,每次只会删除一个

h左 j下 k上 l右

H:当前屏幕的上方
M:当前屏幕的中间
L:当前屏幕的下方

ctrl+f--->向下翻一页代码
ctrl+b--->向上翻一页代码

ctrl+d--->向下翻半页代码
ctrl+u--->向上翻半页代码


20G:快速的定位到第2行代码
G:快速的回到 整个代码的最后一行
gg:快速回到 整个代码的第1行

w:向后跳一个单词的长度,即调到下一个单词的开始出
b:向前跳一个单词的长度,即调到上一个单词的开始出

u:撤销刚刚的操作
ctrl+r:反撤销

选中一片代码
v:
V:

>>:向右移动代码
<<:向左移动代码

.:重复执行上一次的命令

r:替换一个字符
R:替换光标以及后面的字符

shift+zz:相当于wq

末行模式:
w:保存
q:退出
q!:强行退出,不保存内容
wq:保存并且退出
x:保存退出
新增
退出vim的快捷键,不需要进入命令编辑模式
按住shift
zz 保存退出
zq 不保存退出,q表示放弃

在vim命令模式下查找文件内容

输入:号,然后在输入/+要查找的内容然后点击enter即可

 title=

压缩解压

x是解压的意思
v是让你看过程
f是指定文件
不带z或者j就是用tar格式压缩,z是gzip格式,j是bzip格式

tar命令
<pre class="brush:bash;toolbar:false">  解包:
  #第一种,  .tar.gz或.tar后缀名的压缩包
  tar zxvf FileName.tar
  
  #第二种,根据后缀名去区分,解压.tar.xz的
  tar xJf node-v12.14.0-linux-x64.tar.xz

  打包:tar czvf FileName.tar DirName
zip命令

安装zip工具

<pre class="brush:bash;toolbar:false"> yum install -y unzip zip

使用:

<pre class="brush:bash;toolbar:false">压缩:zip -r file_backup.zip   文件夹名字
解压 :unzip xahot.zip

查看动态日志文件

一般是查看tomcat下的logs文件夹里的catalina.out文件
进入到logs文件夹下,使用以下命令:

<pre class="brush:bash;toolbar:false">tail -f catalina.out

如果想查看前面多少条日志,可以加上-n 和条数:
下面是查看基于当前往回找1500行日志

<pre class="brush:bash;toolbar:false">tail -f -n 1500 catalina.out

修改(添加)环境变量

改的是 etc目录下的profile文件,命令如下:

<pre class="brush:bash;toolbar:false">vim /etc/profile

例如添加java环境,jdk解压在opt目录:
注意点:等号两边不能有空格,不然会报错:bash: export: `=’: 不是有效的标识符

<pre class="brush:bash;toolbar:false">#jdk1.7 setting
export JAVA_HOME=/opt/jdk1.7.0_80
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

保存退出后,让/etc/profile文件修改后立即生效,需要执行以下命令:

<pre class="brush:bash;toolbar:false">source /etc/profile

然后检查效果,输入java -version就知道了

<pre class="brush:bash;toolbar:false">[root@localhost ~]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@localhost ~]#

wget命令使用

该命令是用来下载文件的,比如下载maven文件
我们可以在window上找到官方文件的下载地址,然后复制地址到linux用wget下载到linux下面:
下面是window下的网页打开看到maven文件下载地址:

 title=

linux下面使用命令下载该文件,地址加上文件名:

<pre class="brush:bash;toolbar:false"> wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz

执行效果如下,在哪个目录下输入这个下载命令就是下载到那个目录下的:

<pre class="brush:bash;toolbar:false">[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
--2018-06-14 16:29:54--  http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
正在解析主机 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
正在连接 mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:8799579 (8.4M) [application/octet-stream]
正在保存至: “apache-maven-3.5.3-bin.tar.gz”

100%[=============================================>] 8,799,579   1.37MB/s 用时 7.1s   

2018-06-14 16:30:01 (1.17 MB/s) - 已保存 “apache-maven-3.5.3-bin.tar.gz” [8799579/8799579])

创建文件

touch 文件名

<pre class="brush:bash;toolbar:false">touch aa.txt

复制文件或者重命名文件

cp命令

用cp来重命名,原文件依然存在,不过这个命令是用来拷贝文件的,可以拷贝到其他地方去,文件名可以是带路径的

<pre class="brush:bash;toolbar:false">cp 文件名1 文件名2
mv命令

这样重命名,原文件就没了

<pre class="brush:bash;toolbar:false"> mv test.txt wbk.txt

创建目录

<pre class="brush:bash;toolbar:false">mkdir -p 目录名称,可以是多级目录比如 /home/test

改变目录权限

hadoop:hadoop是用户和用户组

<pre class="brush:bash;toolbar:false">chown -R hadoop:hadoop 目录名

操作实例:

<pre class="brush:bash;toolbar:false">[root@master apache-tomcat-7.0.90]# cd ..
[root@master tomcat]# chown -R hadoop:hadoop apache-tomcat-7.0.90
[root@master tomcat]# ll
总用量 8884
drwxr-xr-x 9 hadoop hadoop     220 9月   5 17:43 apache-tomcat-7.0.90
-rw-r--r-- 1 root   root   9094712 7月   3 01:30 apache-tomcat-7.0.90.tar.gz
[root@master tomcat]#

数字类型改变档案权限

Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限

举例:档案的权限字符为 -rwxrwxrwx 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4 w:2 x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others= — = 0+0+0 = 0

所以我们设定权限的变更时,该档案的权限数字就是770啦!变更权限的指令chmod的语法是这样的:

<pre class="brush:bash;toolbar:false">[root@www ~]# chmod [-R] xyz 档案或目录 
选项与参数: 
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。 
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都会变更

实例:

<pre class="brush:bash;toolbar:false">[root@www ~]# ls -al .bashrc 
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc 
[root@www ~]# chmod 777 .bashrc 
[root@www ~]# ls -al .bashrc 
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

删除日志

 title=

<pre class="brush:bash;toolbar:false">rm -f *.2017-03*  就是删除包含2017-03的文件名 
rm -f zx-200.22-20090[1-7]*.log  删除09年一到七月的

其他命令删除文件
一、cd命令进入这个linux文件夹目录。
二、打:

<pre class="brush:bash;toolbar:false">find . -type f -name *.log -mtime +x -exec rm -fv { } \;

命令作用:在当前目录下查找x天前的后缀为log的文件并且删除。
例:

<pre class="brush:bash;toolbar:false">find . -type f -name *.log -mtime +300 -exec rm -fv { } \;

查找300天前的后缀名为log的文件并且删除。

命令详细解释:

. 在当前目录下查找,如果要全盘查找的话,可以把.换成/,这样前面的cd命令就不需要了。

-type f 查找的是普通文件,而不是文件夹

*-name .log 查找后缀为log的文件

-mtime +x 查找x天以前的文件,所以需要把这个x换成你自己需要查找的天数,比如30.你要删除20090808以前的,就需要计算一下,它距离现在多少天。

-exec rm -fv { } ; 把查找的文件强制删除

如果权限不足,请以root身份运行命令。

如果是ubuntu,前面可以加sudo即可。

找到安装后的程序在哪个文件夹

用的命令是whereis +你的程序名

<pre class="brush:bash;toolbar:false">[root@VM_0_8_centos ~]# whereis git
git: /usr/bin/git /usr/local/git /usr/local/git/bin/git /usr/share/man/man1/git.1.gz
[root@VM_0_8_centos ~]# whereis java
java: /usr/local/soft/jdk1.8.0_221/bin/java /usr/local/soft/jdk1.8.0_221/jre/bin/java
[root@VM_0_8_centos ~]#

标签: 命令, linux, 文件, root, tar, 常用, 查找, maven, 程序员

相关文章推荐

添加新评论,含*的栏目为必填