Linux那么多命令,一般会让初学者望而生畏。下边是我结合日常工作,以及在公司的内部培训中,针对对Linux不是很熟悉的朋友,精选的一批必需要弄懂的命令集合。

任何一个命令虽然都是可以深入的,例如tail-f和tail-F的区别。我们不去关心,只使用最常见的示例来说明。本文不会教你具体的用法,那是抢man命令的饭碗。这只是个引导篇linux 查看nginx版本命令,力求简练。

学习方法:多敲多打,用条件反射取代脑部记忆—如果你将来或则如今要用它来喝水的话。其中,也有一些难啃的腿骨,关注小妹妹气味陌陌公众号,我们一起用锋利的臼齿,来把它剁碎。

内容:

✔目录操作

✔文本处理

✔压缩

✔日常运维

系统状态概览

✔工作常用

目录操作

工作中linux服务器代维,最常打交道的就是对目录和文件的操作。linux提供了相应的命令去操作他,并将这种命令具象、缩写。

基本操作

可能是这种命令太常用了,多打一个字符都是罪过。所以它们都很短,不用阿拉伯数字,一个剪刀手才能数过来。

linux 查看nginx版本命令_命令查看linux系统版本_命令查看版本

看命令。

mkdir创建目录makedir

cp拷贝文件copy

mv联通文件move

rm删掉文件remove

反例:

 # 创建目录和父目录a,b,c,d
mkdir -p a/b/c/d

# 拷贝文件夹a到/tmp目录
cp -rvf a/ /tmp/

# 移动文件a到/tmp目录,并重命名为b
mv -vf a /tmp/b

# 删除机器上的所有文件
rm -rvf /

漫游

linux上是昏暗的命令行,仍然要面临人生三问:我是谁?我在哪?我要去何方?

ls命令才能看见当前目录的所有内容。ls-l才能看见更多信息,判定你是谁。

pwd命令才能看见当前终端所在的目录。告诉你你在哪。

cd如果你去错了地方,cd命令才能切换到对的目录。

findfind命令通过筛选一些条件,才能找到早已被遗忘的文件。

至于要去何方,可能就是主宰者的意志了。

文本处理

这是是十分特别加分的技能。get到以后,也能节约更多时间来研究面向对象。小妹妹口感早已输出了“最常用的vim、sed、awk方法系列”。下边附上链接。

命令查看版本_命令查看linux系统版本_linux 查看nginx版本命令

查看文件

cat

最常用的就是cat命令了,注意,假若文件很大的话,cat命令的输出结果会疯狂在终端上输出,可以多次按ctrl+c中止。

# 查看文件大小
du -h file

# 查看文件内容
cat file

less

既然cat有这个问题,针对比较大的文件,我们就可以使用less命令打开某个文件。

类似vim,less可以在输入/后步入查找模式,之后按n(N)向上(上)查找。

有许多操作,都和vim类似,你可以类比看下。

tail

大多数做服务端开发的朋友,都了解如此命令。例如,查看nginx的滚动日志。

tail -f access.log

tail命令可以静态的查看某个文件的最后n行,与之对应的,head命令查看文件头n行。但head没有滚动功能,如同尾巴是往外长的,不会反着往里长。

tail -n100 access.log
head -n100 access.log

统计

sort和uniq常常配对使用。

sort可以使用-t指定分隔符,使用-k指定要排序的列。

下边这个命令输出nginx日志的ip和每位ip的pv,pv最高的前10

#2019-06-26T10:01:57+08:00|nginx001.server.ops.pro.dc|100.116.222.80|10.31.150.232:41021|0.014|0.011|0.000|200|200|273|-|/visit|sign=91CD1988CE8B313B8A0454A4BBE930DF|-|-|http|POST|112.4.238.213

awk -F"|" '{print $3}' access.log | sort | uniq -c | sort -nk1 -r | head -n10

其他

grep

命令查看版本_命令查看linux系统版本_linux 查看nginx版本命令

grep拿来对内容进行过滤linux 查看nginx版本命令,带上--color参数,可以在支持的终端可以复印彩色,参数n则输出具体的行数,拿来快速定位。

例如:查看nginx日志中的POST恳求。

grep -rn --color POST access.log

推荐每次都使用这样的参数。

假如我想要看某个异常前后相关的内容,就可以使用ABC参数。它们是几个词组的简写,常常被使用。

Aafter内容后n行

Bbefore内容前n行

Ccount?内容前后n行

如同是这样:

grep -rn --color Exception -A10 -B2   error.log

diff

diff命令拿来比较两个文件是否的差别。其实,在ide中都提供了这个功能,diff只是命令行下的原始折衷。对了,diff和patch还是一些平台源码的打补丁方法,你要是不用,就pass吧。

压缩

为了降低传输文件的大小,通常都开启压缩。linux下常见的压缩文件有tar、bzip2、zip、rar等,7z这些用的相对较少。

linux 查看nginx版本命令_命令查看版本_命令查看linux系统版本

.tar使用tar命令压缩或解压

.bz2使用bzip2命令操作

.gz使用gzip命令操作

.zip使用unzip命令解压

.rar使用unrar命令解压

最常用的就是.tar.gz文件格式了。虽然是经过了tar打包后,再使用gzip压缩。

创建压缩文件

tar cvfz  archive.tar.gz dir/

解压

tar xvfz. archive.tar.gz

快去弄清楚它们的关系吧。

命令查看linux系统版本_命令查看版本_linux 查看nginx版本命令

日常运维

开机是按一下启动按键,死机总不至于是长按启动按键吧。对了,是shutdown命令,不过通常也没权限-.-!。passwd命令可以拿来更改密码,这个权限还是可以有的。

命令查看版本_linux 查看nginx版本命令_命令查看linux系统版本

mount

mount命令可以挂在一些外接设备,例如硬盘,例如iso,例如刚申请的ssd。可以放心的看小影片了。

mount /dev/sdb1 /xiaodianying

chown

chown拿来改变文件的所属用户和所属组。

chmod拿来改变文件的访问权限。

这两个命令,都和linux的文件权限777有关。

示例:

# 毁灭性的命令
chmod 000 -R /

# 修改a目录的用户和组为 xjj
chown -R xjj:xjj a

# 给a.sh文件增加执行权限(这个太常用了)
chmod a+x a.sh

yum

假设你用的是centos,则包管理工具就是yum。假如你的系统没有wget命令,就可以使用如下命令进行安装。

yum install wget -y

systemctl

其实,centos管理后台服务也有一些套路。service命令就是。systemctl兼容了service命令,我们看一下如何重启mysql服务。推荐用下边这个。

service mysql restart
systemctl restart mysqld

对于普通的进程,就要使用kill命令进行愈发详尽的控制了。kill命令有好多讯号,假如你在用kill-9,你一定想要了解kill-15以及kill-3的区别和用途。

su

su拿来切换用户。例如你如今是root,想要用xjj用户做一些勾当,就可以使用su切换。

su xjj
su - xjj

-可以让你干净纯洁的降临另一个帐号,不出意外,推荐。

系统状态概览

登录一台linux机器,有些命令才能帮助你快速找到问题。这种命令囊括显存、cpu、网络、io、磁盘等。如须要更多了解,参考五件套。比较高阶一些。

命令查看版本_linux 查看nginx版本命令_命令查看linux系统版本

uname

uname命令可以输出当前的内核信息,让你了解到用的是哪些机器。

uname -a

ps

ps命令才能看见进程/线程状态。和top有些内容重叠,常用。

# 找到java进程
ps -ef|grep java

top

系统状态一览,主要查看。cpuload负载、cpu占用率。使用显存或则cpu最高的一些进程。下边这个命令可以查看某个进程中的线程状态。

top -H -p pid

free

top也能看显存,但不友好,free是专门拿来查看显存的。包括化学显存和虚拟显存swap。

df

df命令拿来查看系统中c盘的使用量,拿来查看c盘是否早已抵达上限。参数h可以以友好的形式进行展示。

df -h

ifconfig

查看ip地址,不啰嗦,取代品是ipaddr命令。

ping

至于网路通不通,可以使用ping来侦测。(不包括这些禁ping的网站)

netstat

尽管ss命令可以代替netstat了,但现实中netstat一直用的更广泛一些。例如,查看当前的所有tcp联接。

netstat -ant

此命令,在找一些本地起了哪些端口之类的问题上,作用很大。

工作常用

还有一些在工作中时常会用到的命令,它们的出现频度是十分高的,都是些熟脸孔。

命令查看linux系统版本_linux 查看nginx版本命令_命令查看版本

export

好多安装了jdk的朋友找不到java命令,export就可以帮你办到它。export拿来设定一些环境变量,env命令能看见当前系统中所有的环境变量。例如,下边设置的就是jdk的。

export PATH=$PATH:/home/xjj/jdk/bin

有时侯,你想要晓得所执行命令的具体路径。这么就可以使用whereis命令,我是假设了你装了多个版本的jdk。

crontab

这就是linux本地的job工具。不是分布式的,你要不是运维,就不要用了。例如,每10分钟提醒喝酒上公厕。

*/10 * * * * /home/xjj/wc10min

date

date命令拿来输出当前的系统时间,可以使用-s参数指定输出格式。但设置时间涉及到设置硬件,所以有另外一个命令称作hwclock。

xargs

xargs读取输入源,之后逐行处理。这个命令特别有用。举个板栗,删掉目录中的所有class文件。

find . | grep .class$ | xargs rm -rvf

#把所有的rmvb文件拷贝到目录
ls *.rmvb | xargs -n1 -i cp {} /mount/xiaodianying

网路

linux是一个多作业的网路操作系统,所以网路命令有好多好多。工作中,最常和那些打交道。

ssh

这个,就不啰嗦了。你一定希望了解ssh隧洞是哪些。你要是想要详尽的输出过程红旗linux操作系统,记得加参数-v。

scp

scp拿来进行文件传输。也可以拿来传输目录。也有更中级的sftp命令。

scp a.txt 192.168.0.12:/tmp/a.txt
scp -r a_dir 192.168.0.12:/tmp/

wget

你想要在服务器上安装jdk,不会先在本地下载出来,之后使用scp传到服务器上吧(有时侯不得不这样)。wget命令可以让你直接使用命令行下载文件,并支持断点续传。

wget -c http://oracle.fuck/jdk2019.bin

mysql

mysql应用广泛,并不是每位人都有条件用上navicat的。你须要了解mysql的联接形式和基本的操作,在异常情况下才会游刃有余。

mysql -u root -p -h 192.168.1.2

End

不要认为复杂,命令是有限的,但激情无限;就会也不要骄傲,一个vim就够折腾一辈子。捷径就是总结,深入只有探求。白马过隙,终会行云流水,手到擒来。

物是人非,年华易老。惟有岁月,不会辜负。

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复