show me the code and talk to me,作的出来更要说的明白
GitHub 项目JavaHouse同步收录
我是布尔bl,你的支持是我分享的动力!java
做为一名合格的后端开发人员,咱们不免要在 Linux 环境下进入操做,查找问题,配置文件等等操做。所以,我以为咱们须要掌握简单的 Linux 命令。本文简简单单介绍一下 Linux 的常见操做,努力让读者在 Linux 环境下能够进行工做。mysql
Linux 大致目录结构如图所示。其中上面的 / 表示的是跟目录。linux
pwd
[root@iZm5eixsxpdmrg95cpxvmlZ /]# pwd /
cd
[root@iZm5eixsxpdmrg95cpxvmlZ /]# cd usr/ [root@iZm5eixsxpdmrg95cpxvmlZ usr]# pwd /usr
能够看到咱们进入了 usr 目录git
ll
[root@iZm5eixsxpdmrg95cpxvmlZ usr]# ll total 136 dr-xr-xr-x. 2 root root 32768 Jan 6 21:00 bin drwxr-xr-x. 2 root root 4096 Apr 11 2018 etc drwxr-xr-x. 2 root root 4096 Apr 11 2018 games drwxr-xr-x. 69 root root 12288 Dec 4 11:16 include drwxr-xr-x 3 root root 4096 Dec 4 11:27 java dr-xr-xr-x. 33 root root 4096 Jan 6 21:02 lib dr-xr-xr-x. 49 root root 36864 Jan 6 21:00 lib64 drwxr-xr-x. 24 root root 4096 Dec 4 11:16 libexec drwxr-xr-x. 21 root root 4096 Jan 6 21:02 local dr-xr-xr-x. 2 root root 16384 Jan 6 21:02 sbin drwxr-xr-x. 104 root root 4096 Jan 6 21:00 share drwxr-xr-x. 4 root root 4096 Jul 11 2019 src lrwxrwxrwx. 1 root root 10 Jul 11 2019 tmp -> ../var/tmp
该命令能够显示目录里面全部的文件名称、文件的权限、文件大小(kb)等等详细信息。github
cd /
[root@iZm5eixsxpdmrg95cpxvmlZ usr]# cd / [root@iZm5eixsxpdmrg95cpxvmlZ /]# ll total 2097224 lrwxrwxrwx. 1 root root 7 Jul 11 2019 bin -> usr/bin dr-xr-xr-x. 5 root root 4096 Jul 11 2019 boot drwxr-xr-x 6 root root 4096 Dec 15 10:04 data drwxr-xr-x 19 root root 2960 Dec 15 10:05 dev drwxr-xr-x. 82 root root 4096 Jan 6 21:02 etc drwxr-xr-x. 2 root root 4096 Apr 11 2018 home drwxr-xr-x 3 root root 4096 Dec 4 11:04 java lrwxrwxrwx. 1 root root 7 Jul 11 2019 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Jul 11 2019 lib64 -> usr/lib64 drwx------. 2 root root 16384 Jul 11 2019 lost+found drwxr-xr-x. 2 root root 4096 Apr 11 2018 media drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt drwxr-xr-x. 2 root root 4096 Apr 11 2018 opt dr-xr-xr-x 92 root root 0 Dec 15 10:05 proc dr-xr-x---. 5 root root 4096 Jan 10 10:57 root drwxr-xr-x 24 root root 720 Jan 6 21:00 run lrwxrwxrwx. 1 root root 8 Jul 11 2019 sbin -> usr/sbin drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv -rw------- 1 root root 2147483648 Dec 4 11:13 swapfile dr-xr-xr-x 13 root root 0 Dec 15 15:28 sys drwxrwxrwt. 9 root root 4096 Jan 10 03:15 tmp drwxr-xr-x. 14 root root 4096 Dec 4 11:27 usr drwxr-xr-x. 19 root root 4096 Jul 11 2019 var
cd ..
[root@iZm5eixsxpdmrg95cpxvmlZ /]# cd /usr/ [root@iZm5eixsxpdmrg95cpxvmlZ usr]# cd .. [root@iZm5eixsxpdmrg95cpxvmlZ /]# pwd /
chmod
通常来讲一个文件有三种角色web
权限有三种表示sql
其中数字能够累加apache
举个例子bootstrap
chmod 754 a.txt
该命令表示vim
可见三个数字是表示三种不一样角色。
find 位置 -name 文件名
例子
[root@iZm5eixsxpdmrg95cpxvmlZ /]# find / -name tomcat /usr/local/tomcat /etc/logrotate.d/tomcat /etc/selinux/targeted/active/modules/100/tomcat /etc/rc.d/init.d/tomcat
显然咱们目的是在从目录开始去寻找 tomcat 目录
|
这个命令你们应该很常见,他是 Linux 里面管道,用于链接两个或者多个命令,具体表现为上一个命令的输出内容做为下个命令的输入内容。
例子
[root@iZm5eixsxpdmrg95cpxvmlZ /]# ps aux| grep tomcat root 2292 0.0 0.0 112712 956 pts/0 R+ 11:29 0:00 grep --color tomcat www 6514 0.1 32.8 2993956 618504 ? Sl 2019 45:28 /usr/java/jdk1.8.0_231/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx919m -Dfile.encoding=UTF-8 -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Djava.library.path=/usr/local/apr/lib -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
grep
该命令用于匹配字符串,至关于咱们经常使用的 Ctrl+f.
grep 匹配内容 文件名
例子
[root@iZm5eixsxpdmrg95cpxvmlZ /]# grep asda test.txt asda
sort
sort [-ntkr] 文件名 其中: n:数字排序 t:指定分隔符 k:指定一第几列为标准排序,常与 t 一块儿使用 r:逆序
例子:
[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt a:2 s:6 d:1 a:0 [root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | sort a:0 a:2 d:1 s:6 [root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | sort -t ":" -k 2 a:0 d:1 a:2 s:6 [root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | sort -t ":" -k 2 -r s:6 a:2 d:1 a:0
uniq
uniq [-ic] # -i 忽略大小写 # -c 计算重复行数
常与sort
使用
[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt a:2 a a d s:6 a V d:1 a a:0 a:0 a:0 [root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | uniq a:2 a a d s:6 a V d:1 a a:0 [root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt | uniq -c 1 a:2 a a d 1 s:6 a V 1 d:1 a 3 a:0 [root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt| sort | uniq -c 3 a:0 1 a:2 a a d 1 d:1 a 1 s:6 a V
ps
该命令用于查看某一时刻的进程状态
ps 参数 #-A 列出全部的进程,和-e同样 #aux 显示全部的包含其余使用者的进程
查看tomcat进程是否存在
[root@iZm5eixsxpdmrg95cpxvmlZ /]# ps aux | grep tomcat www 6514 0.1 32.8 2993956 618504 ? Sl 2019 47:29 /usr/java/jdk1.8.0_231/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx919m -Dfile.encoding=UTF-8 -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Djava.library.path=/usr/local/apr/lib -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start root 32062 0.0 0.0 112712 952 pts/0 R+ 17:46 0:00 grep --color tomcat
top
该命令用于查看cpu实时运行状态,内存空间
kill
killall
killall
命令比较安全,能够输出进程名称终止,避免输错数字pid
lsof
改命令查看端口是否被占用
[root@iZm5eixsxpdmrg95cpxvmlZ /]# lsof -i:3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 5437 mysql 30u IPv4 94759 0t0 TCP *:mysql (LISTEN)
vim编辑器是Linux的文本编辑器,至关window的记事本。
/
在vim里面咱们使用 / 关键字
查找关键字
使用 esc
和:wq
组合保存退出vim
awk
awk
默认以空格划分域(列数),所以咱们能够经过 awk
打印特定的列
[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt a:2 a a d s:6 a V d:1 a a:0 a:0 a:0 [root@iZm5eixsxpdmrg95cpxvmlZ /]# awk '{print $1}' test.txt a:2 s:6 d:1 a:0 a:0 a:0
-F 分隔符
若是咱们不须要空格分割,能够指定其余
[root@iZm5eixsxpdmrg95cpxvmlZ /]# cat test.txt a:2 a a d s:6 a V d:1 a a:0 a:0 a:0 [root@iZm5eixsxpdmrg95cpxvmlZ /]# awk -F : '{print $1}' test.txt a s d a a a