阿里云linux命令入门考试,简简单单之Linux命令入门

引入#

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

目录结构#

20200110163309.png

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

显示目录位置pwd#

Copy

[root@iZm5eixsxpdmrg95cpxvmlZ /]# pwd

/

进入目录 cd#

Copy

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cd usr/

[root@iZm5eixsxpdmrg95cpxvmlZ usr]# pwd

/usr

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

显示内容 ll#

Copy

[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 /#

Copy

[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 ..#

Copy

[root@iZm5eixsxpdmrg95cpxvmlZ /]# cd /usr/

[root@iZm5eixsxpdmrg95cpxvmlZ usr]# cd ..

[root@iZm5eixsxpdmrg95cpxvmlZ /]# pwd

/

文件权限chmod#

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

拥有者

拥有组

其他人

权限有三种表示

r 表示只可以读文件,可以用数字 4 代替

w 表示只可以写文件,可以用数字 2 代替

x 表示只可以执行文件,可以用数字 1 代替

其中数字可以累加

5 表示可读可执行

6 表示可读可写

7 表示可读可写可执行

举个例子

Copy

chmod 754 a.txt

该命令表示

拥有者可读可写可执行

拥有组可读写可执行

其他者可读

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

查找目录#

Copy

find 位置 -name 文件名

例子

Copy

[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 里面管道,用于连接两个或者多个命令,具体表现为上一个命令的输出内容作为下个命令的输入内容。

例子

Copy

[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.

Copy

grep 匹配内容 文件名

例子

Copy

[root@iZm5eixsxpdmrg95cpxvmlZ /]# grep asda test.txt

asda

排序sort#

Copy

sort [-ntkr] 文件名

其中:

n:数字排序

t:指定分隔符

k:指定一第几列为标准排序,常与 t 一起使用

r:逆序

例子:

Copy

[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#

Copy

uniq [-ic]

# -i 忽略大小写

# -c 计算重复行数

常与sort使用

Copy

[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#

该命令用于查看某一时刻的进程状态

Copy

ps 参数

#-A 列出所有的进程,和-e一样

#aux 显示所有的包含其他使用者的进程

查看tomcat进程是否存在

Copy

[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#

改命令查看端口是否被占用

Copy

[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打印特定的列

Copy

[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 分隔符#

如果我们不需要空格分割,可以指定其他

Copy

[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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值