show me the code and talk to me,做的出来更要说的明白

GitHub 项目JavaHouse同步收录

我是布尔bl,你的支持是我分享的动力!

引入

作为一名合格的后端开发人员,我们难免要在 Linux 环境下进入操作,查找问题,配置文件等等操作。因此,我觉得我们需要掌握简单的 Linux 命令。本文简简单单介绍一下 Linux 的常见操作,努力让读者在 Linux 环境下可以进行工作。

目录结构

Linux 大体目录结构如图所示。其中上面的 / 表示的是跟目录。

显示目录位置pwd

[root@iZm5eixsxpdmrg95cpxvmlZ /]# pwd

/

进入目录 cd

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cd usr/
[root@iZm5eixsxpdmrg95cpxvmlZ usr]# pwd
/usr

可以看到我们进入了 usr 目录

显示内容 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)等等详细信息。

进入根目录 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

一般来说一个文件有三种角色

  • 拥有者
  • 拥有组
  • 其他人

权限有三种表示

  • r 表示只可以读文件,可以用数字 4 代替
  • w 表示只可以写文件,可以用数字 2 代替
  • x 表示只可以执行文件,可以用数字 1 代替

其中数字可以累加

  • 5 表示可读可执行
  • 6 表示可读可写
  • 7 表示可读可写可执行

举个例子

chmod 754 a.txt

该命令表示

  • 拥有者可读可写可执行
  • 拥有组可读写可执行
  • 其他者可读

可见三个数字是表示三种不同角色。

查找目录

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实时运行状态,内存空间

通过pid终止进程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 编辑器

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

简简单单之Linux命令入门的更多相关文章

  1. Linux命令入门

    // 查看日历cal // 修改密码passwd // 查看目录和文件ls -lls // 查看当前用户信息whoami // 查看当前在线用户userswho 在Linux中,可以使用 vi 编辑器 ...

  2. linux 命令入门

    1 linux 中,一切皆文件. 图片.MP3和视频,它们都是文件. 目录,是一种特殊的文件,其中包含其他文件的信息.磁盘驱动器则是真正的大文件了. 网络连接也是文件,甚至运行中的进程都是文件.这些都 ...

  3. 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户

    Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...

  4. 20165223 Linux安装及命令入门

    预备作业3:Linux安装及命令入门 一.VirtualBox和Ubuntu的安装 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,我开始学习虚拟机的安装,根据教程一步步试着安装. ...

  5. 20165221 Linux安装及命令入门学习

    安装过程 按照图文教程,进行操作,遇到如下问题. 1.安装ubuntu时从官网下载不成功. 最后在同学的帮助下,通过中文版网址入口进入,完成下载. 2.BIOS未恢复出厂设置,导致不能选择64-bit ...

  6. 20165321预备作业3:Linux安装及命令入门

    Linux安装 在老师给的VirtualBox的网站上面,我下载了VirtualBox的最新版本,安装成功后,我又下载了Ubuntu.但是,发现无论是哪个版本的Ubuntu都无法在VirtualBox ...

  7. linux常用命令大全(linux基础命令入门到精通+命令备忘录+面试复习+实例)

    作者:蓝藻(罗蓝国度) 创建时间:2018.7.3 编辑时间:2019.4.29 前言 本文特点 授之以渔:了解命令学习方法.用途:不再死记硬背,拒绝漫无目的: 准确无误:所有命令执行通过(环境为ce ...

  8. 20155327预备作业3:Linux安装及命令入门

    20155327预备作业3:Linux安装及命令入门 安装Linux操作系统 由于之前安装过所以这里就不再赘述了 掌握Linux命令的学习方法 学习路径: 常用Ubuntu快捷键: CTRL+ALT+ ...

  9. 20165320 预备作业3 :Linux安装及命令入门

    一.VirtualBox与Linux的安装 我是按照老师给的链接下的最新版本的VirtualBox5.26,然后Ubuntu软件(版本是16.04,最新的是17)是自己在网上找的旧版本下好的,因为我在 ...

随机推荐

  1. CODE FESTIVAL 2017 qual B C 3 Steps(补题)

    总感觉这题是个题意杀,理解错题目了,看了好久才发现题目意思:操作是让,只要两点没有直接相连,而且只要有一条路的距离3,就可以把这两点连接起来. 按照题解中讲的,可以把图分为二分图和非二分图来解.不过题 ...

  2. H3C Easy IP配置举例

  3. Mysql5.5升级到5.7的过程已经踩到的坑

    https://blog.csdn.net/u014534986/article/details/79699750 故事是这样子的,我们公司有几台老的mysql版本是5.5的,最近项目做了一些升级增加 ...

  4. SQL 常见出现错误(附件、保存表、脱机、自增序列号 )

    一.问题如图所示: 当填了某些数据,按“保存”时出现这个问题怎么解决? 1.打开“工具”-“选项”-“Designers” , 2.选择如下去勾: 二.当附加数据库的时候出现如下错误: 在附件文件上选 ...

  5. 【t085】Sramoc问题

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] Sramoc(K,M)表示用数字0,1,2,...,K-1组成的自然数中能被M整除的最小数.给定K,M ...

  6. linux清理函数

    每个非试验性的模块也要求有一个清理函数, 它注销接口, 在模块被去除之前返回所有资 源给系统. 这个函数定义为: static void   exit cleanup_function(void) { ...

  7. 【js】vue 2.5.1 源码学习 (九) 响应数组对象的变

    大体思路(八) 本节内容: 1.Observe 如何响应数组的变化 代理原型 数组变异方法 shell cacheArrProto methods 新添加的数组需要加到显示系统里面,拦截 push等的 ...

  8. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(13)之会员登录注册

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 会员中心,是我们与用户交 ...

  9. Linux 内核/sbin/hotplug 工具

    如同本章中前面提过的, 无论何时一个设备从系统中增删, 都产生一个"热插拔事件". 这 意味着内核调用用户空间程序 /sbin/hotplug. 这个程序典型地是一个非常小的 ba ...

  10. C# 循环的判断会进来几次

    最近有小伙伴告诉我,在循环的判断条件只会计算一次,本金鱼不相信,于是就做了测试,本文记录我做的测试. 先来写一个简单的代码, 就一个循环,循环的判断是从一个函数获取值 class Program { ...