Linux命令总结

Posted ziyaoboke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令总结相关的知识,希望对你有一定的参考价值。

一、Linux基本使用与常用命令

1、清屏命令:clear 或者 ctrl+L ;

2、man命令:输入 man+数字+命令/函数: 即可以查到相关的命令和函数。如man 3 sleep:显示sleep命令手册的库函数;如man sleep:显示sleep命令的手册。

3、help命令:第一条命令:type help //查看help命令的内外类型 help is a shell builtin //可以看到help为内部命令 ;第二条命令:type passwd //查看passwd命令是否在linux系统中存在 passwd is /usr/bin/passwd //可以看到passwd的存储位置,因此为外部命令;第三条命令:type cd //查看cd命令的内外类型 cd is a shell builtin //passwd即为外部命令,那么cd为内部命令 ;(注:type命令可以判断到底为内部命令还是内部命令)。

4、whereis命令:作用是用来查找与某一命令相关的文件的存放位置。

 

二、常用命令

 

 根目录

1、Windows的根目录:c:    d:    e:  

Linux的根目录  /

注:斜杠相反!!!

2、ls -l /

可以看到在根目录下的所有内容 

文件类型:用字符表示

 ‘-‘   代表普通文件

   ‘d‘  directory 目录文件

  ‘l‘   link  链接文件

   ‘b‘  block  块设备文件

   ‘c‘  charactor  字符设备文件

   ‘p‘  pipe   管道文件

举例:

drwxr-xr-x 2 root root 4096 Nov 6 00:04 aa

ls –l (long):列举目录内容的详细信息,包括权限(模式)、所有者、组群、大小、创建日期、文件是否是到系统其它地方的链接,以及链接的指 向。

*total 5:代表当前目录下文件大小的总和为5K(每个目录的大小都按4K算)

*drwxr-xr-x 第一个字符有3种 情况:“-”表示普通文件,“d”代表目录,“l”代表连接文件,“b”代 表设备文件。后面的9个字符每3个为一组,分别代表文件所有者、文件所有者所在用户组其它用户对文件拥 有的权限。每组中3个字符分别代表读、写、执行的权限,若没有 其中的任何一个权限则用“-”表示。执行的权限有两个字符可选“x”代表可执行,“s”代表套接口文件。

* 紧接着的数字2代 表 “aa”这个目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)。如果这个aa是 个普通文件,2就代表这个文件有2个别名(这个文件被人创建了一个硬链接文件)

*再接下来的root代 表这个文件(目录)的属主为:用户root

*再接下来的root代表这个文件(目录)所属的用户组为:组root

*4096 代表文件的大小(字节数),目录的 大小总是为4096字节。

* Nov 6 00:04 代表文件(目录)的修改时间。

*aa代表文件(目录)的名字。

3、其中几个重要的目录: 

l/etc:用于保存系统数据文件、启动文件和脚本等

l/bin:存放普通用户常用的命令

l/sbin:存放系统管理常用命令

l/boot:存放系统核心文件

l/dev:存放与设备有关的文件

l/lib:存放用于编译某些程序时要用的函数库

l/usr:用于存放用户安装的应用程序,类似于windows中的program files目录

l/var:用于存放系统数据文件

l/root:系统管理员(root用户)的“属主”目录

l/home:存放普通用户“属主”目录的目录

l/media:用于系统自动挂载存储设备时(例如光驱、U盘)使用的目录

l/mnt:用于挂载设备时建议使用的目录,由于目前版本的linux都使用自动挂载,所以该目录已很少使用,而被media目录取代了。

4、相对路径

“.”目录表示当前目录,“..”目录表示当前目录的上一层目录

如../../grub

5、属主目录

用 ~ 表示当前用户的属主目录

看到一个~符号,就代表默认登录进去后,都是在本用户的属主目录中

 

vi编辑器

1、vi命令用于编辑文本文件

类似于windows下的notepad,但是功能要强大得多

2、一般模式

当你编辑一个文件时,一进入该文件就是一般模式了

在这个模式下,你可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行

不可以修改某一个字符的

K或者向上方向键 

光标向上移动一个字符 

l或者向右方向键 

光标向右移动一个字符 

Ctrl + f 或者pageDown键 

屏幕向后移动一页 

Ctrl + b 或者pageUp键 

屏幕向前移动一页 

Ctrl + d

屏幕向后移动半页 

Ctrl + u

屏幕向前移动半页 

+

光标移动到非空格符的下一列 

-

光标移动到非空格符的上一列 

n空格(n是数字) 

按下数字n然后按空格,则光标向右移动n个字符,如果该行字符数小于n,则光标继续从下行开始向右移动,一直到n

0(数字0) 

移动到本行行首 

$

即移动到本行行尾 

H

光标移动到当前屏幕的最顶行 

M

光标移动到当前屏幕的中央那一行 

L

光标移动到当前屏幕的最底行 

G

光标移动到文本的最末行 

nGn是数字) 

移动到该文本的第n行 

gg

移动带该文本的首行 

n回车(n是数字) 

光标向下移动n行 

 

一般模式下查找与替换

/word

向光标之后寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜后一个 

?word

想光标之前寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜前一个 

:n1,n2s/word1/word2/g

在n1和n2行间查找word1这个字符串并替换为word2,你也可以把”/”换成”#” 

:1,$s/word1/word2/g

从第一行到最末行,查找word1并替换成word2

:1,$s/word1/word2/gc

加上c的作用是,在替换前需要用户确认 

 

 

一般模式下删除、复制粘贴

nxn为数字) 

向后删除n个字符 

dd

删除光标所在的那一行 

nddn为数字) 

删除光标所在的向下n行 

d1G

删除光标所在行到第一行的所有数据 

dG

删除光标所在行到末行的所有数据 

yy

复制光标所在的那行 

nyy

复制从光标所在行起向下n行 

p,P

p复制的数据从光标下一行粘贴,P则从光标上一行粘贴 

y1G

复制光标所在行到第一行的所有数据 

yG

复制光标所在行到末行的所有数据 

J

讲光标所在行与下一行的数据结合成同一行 

u

还原过去的操作 

3、编辑模式

从一般模式进入编辑模式,只需你按一个键即可(i,I,a,A,o,O,r,R)

进入编辑模式时,会在屏幕的最下一行出现“INSERT”或“REPLACE”的字样

从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。

进入编辑模式 

i

在当前字符前插入字符 

I

在当前行行首插入字符 

a

在当前字符后插入字符 

A

在当前行行末插入字符 

o

在当前行下插入新的一行 

O

在当前行上插入新的一行 

r

替换光标所在的字符,只替换一次 

R

一直替换光标所在的字符,一直到按下ESC

4、命令行模式

在一般模式下,输入“ :”或者“ / ”即可进入命令模式

可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等

vim命令:

与vi完全一样,可以把vim看成vi的加强版。区别在于vim是带颜色的,文档内容显示的更清晰。 

 

文件与目录操作命令

1、cd

cd是change directory的缩写,用于改变当前路径

语法: 

cd [相对路径或绝对路径]

比如需要进入根目录下的etc目录,我们用绝对路径的表示方法是:

cd /etc

如果当前在/root目录下,转到etc目录下,用相对路径表示是:

cd ../etc

如果要回到自己的属主目录:

cd

2、pwd

pwd用于显示当前所在的目录。语法:pwd

3、mkdir

mkdir命令用于创建目录,目录可以是相对路径也可以是绝对路径。语法:

mkdir [-option] 目录名称 

常用参数:

-p:当建立的目录的父目录不存在时,同时建立父目录。

同时建立多个目录:

mkdir test1 test2 test3

4、rmdir

rmdir命令用于删除目录,目录可以是相对路径也可以是绝对路径,但是需要注意,目录必须为空目录。语法:

rmdir 目录名称 

要在当前目录下删除test1,test2,test3这三个目录:

rmdir test1 test2 test3

5、cp

cp命令用于复制文件。语法:

cp [-option] 源 目标 

常用参数:

-r:递归处理,将指定目录下的文件与子目录一并处理。

-u:如果源文件较新,或者没有目标文件,才进行复制,常用于备份。

要把testfile从test的目录下复制到属主目录

cp test/testfile .

后面.表示将指定文件复制到当前目录下

若当前目录是属主目录,就是属主目录;

若当前目录是home目录,则复制到home目录;

前提条件:在属主目录下建了一个test的文件夹,然后下面建了一个文件testfile

复制以后,对文件进行改名

将当前目录下的testfile文件复制到test目录下并改名copy_testfile

cp testfile test/copy_testfile

将一个目录下的文件全部复制到另一个目录下,可以在目录的路径后面加“*”号

将当前目录下的test目录中的所有内容复制到test1目录下:

cp test/* test1

一次将多个目录以及下面的文件都复制到另一个目录下,可以带上参数-r

有一个空的test2目录,现要将test和test1目录以及子目录中的文件一并拷贝到test2目录:

cp -r test test1 test2

6、rm

rm命令用于删除文件。语法:

rm [-option] 文件名 

常用参数: 

-f:force,强制删除,不提示用户是否需要删除的信息

-r:循环删除,常用于目录删除 

删除test目录下的copy_testfile文件

rm test/copy_testfile

会有二次确定提示,再输入y确定删除

删除当前目录下的test1目录以及test1目录下所有文件及子目录。

如果不想出现提示,则需要加上-f参数,这样就可以防止跳出太多的确认提示

rm -rf test1

7、mv

mv命令用于移动文件或目录。语法:

mv 源 目标

将当前目录下的test目录移动到test1目录

mv test test1

mv命令来进行文件或者目录的改名

mv myfile.txt yourfile.txt

8、管道命令竖线(|) 

该命令可以把一个命令的输出送给其他命令作为输入。语法:

command 1 | command 2

把第一个命令command 1执行的结果作为command 2的输入传给command 2

使用ifconfig命令查看IP地址时,如果一屏显示超过,使用less参数可以分屏显示

ifconfig |less

列出当前目录中的任何文档,并把输出送给more命令作为输入,more命令分页显示文件列表

ls -l | more

 

查看文件内容命令 

1、cat

cat是concatenate的简写,用于将一个文件的内容连续输出到屏幕上。语法:

cat [-option] 文件名 

常用参数: 

-n:连行号一起显示在屏幕上 

-b:连行号一起显示在屏幕上,但空行不算。

-v:显示控制符号.

将etc目录下的inittab文件的内容显示出来,并显示行号

cat -n /etc/inittab

2、more

more命令和cat类似,同样是在屏幕上显示文件内容,

但是如果文件内容太多,超过40行,

cat会一闪而过,more则会在显示完一屏内容后停下,等待用户往下翻

语法:

more 文件名

常用参数: 

+n:从笫n行开始显示 

-n:定义屏幕大小为n行

下翻命令可以用回车(单行下翻)、ctrl+f(整页下翻)、空格键(整页下翻)。

如果要退出则按q键。

将etc目录下的inittab文件的内容显示出来

more /etc/inittab

当执行命令后,linux会整屏显示文件内容,隐藏第一行的命令行,

并在整屏的最下方显示文件内容已显示的百分比。

将etc目录下的inittab文件内容显示出来,从第3行开始显示,每页显示5行

more +3 -5 /etc/inittab

3、less

less命令和more一样,唯一区别就是可以使用pagedown和pageup进行上翻和下翻,more 仅能向前移动,却不能向后移动。比more更方便一些。

语法:

less 文件名

常用参数: 

-N 显示每行的行号

在显示的过程中,按q可以退出less 命令;空格键滚动一页;回车键滚动一行。

将etc目录下的inittab文件内容显示出来

less /etc/inittab

当执行命令后,linux会整屏显示文件内容,隐藏第一行的命令行,并在整屏的最下方显示目录和文件名。

此时,按回车或空格继续查看内容,查看到文件末尾,会显示end的信息。若按q则退出回到命令行。

4、head

head命令用于显示文件的头几行内容,如果不加-n参数,则默认显示文件的前10行内容。

语法:head [-option] 文件名

常用参数: 

-n:指定显示多少行

将etc目录下的inittab文件内容显示前3行

head -3 /etc/inittab

5、tail

tail命令用于显示文件的尾几行内容,和head相反。如果不加-n参数,则默认显示文件

的后10行内容。

语法:tail [-option] 文件名

常用参数: 

-n:指定显示多少行

将etc目录下的inittab文件内容显示末尾倒数3行

tail -3 /etc/inittab

 

文件与目录权限

1、chmod

chmod命令用于变更文件及目录的读写执行权限。

语法:chmod [-option] [parameter] 目录或文件名称

常用参数: 

-R:连同目录下所有文件及子目录都进行变更。

修改权限的方法

ugo法

权限属性分为三组,分别是所有者(user)、群组(group)、其他(other),

我们用u、g、o来代表这三个组,还可以用a表示全部。

lovestory文件的权限改为rwxrwxr--

chmod ug=rwx,o=r lovestory

ugo + -法

使用ugo时,可以用“=”来赋值或用“+”、“-”来增加或减少权限

把上个例子中的lovestory文件所属组的读权限去掉,给其他人增加写权限

chmod g-r,o+w lovestory

权限掩码umask

假设某一文件的属性为rwxrw----,则表示成二进制为111 110 000(2),可以表示为八进制数

760(8)。所以可以采用八进制数字对文件或目录进行权限设定

把lovestory文件的权限改为rwxrw----

chmod 760 lovestory

R 读 数值表示4 ;

w写 数值表示为2;

X可执行 数值表示为1;

 

搜索文件或目录

1、grep

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

语法:grep [options]

常用参数: 

-c:只输出匹配行的计数。 

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。 

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。 

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。 

pattern正则表达式主要参数: 

: 忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。 

$: 匹配正则表达式的结束行。 

<:从匹配正则表达式的行开始。 

>:到匹配正则表达式的行结束。 

[ ]:单个字符,如[A]即A符合要求 。 

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 

。:所有的单个字符。 

* :有字符,长度可以为0。 

显示所有以d开头的文件中包含 test的行

grep ‘test‘ d*

或者查dead文件包含test的行grep ‘test‘ dead(文件全名)

显示在aa,bb,cc文件中匹配test的行

grep ‘test‘ aa bb cc

显示aa文件中,所有包含每个字符串至少有5个连续小写字符的字符串的行

grep ‘[a-z]{5}’ aa

打印testfile文件中所有以north开头的单词的行

grep ‘<north‘ testfile

打印testfile文件所有包含单词north的行

grep ‘<north>‘ testfile

2、which

which命令用于查找可执行文件的位置,该命令通过环境变量PATH所设置的路径进行搜索

语法:which 文件名

查找passwd文件在哪里

which passwd

3、whereis

whereis命令同样是根据设定好的目录进行查找。

语法:whereis [-option] 文件名

参数说明: 

-b:只查找二进制文件 

-m:只找说明文件

查找passwd相关的文件

whereis passwd

命令将和passwd文件相关的文件都查找出来

查找二进制文件passwd。使用-b参数

whereis -b passwd

4、find

find命令可以对指定目录以及其所有子目录进行文件搜索

语法:find [path] [-option] 文件名

参数说明:-name file:寻找文件名为file的文件(可用通配符)

查找一个文件,在/etc目录下,不清楚具体某个子目录,名字也记不清了,只知道名字中有httpd这个单词

find /etc -name ‘*httpd*‘

由于find命令在查找数据时比较消耗硬盘(find命令直接查找硬盘数据),可以使用另一个locate命令

5、locate

locate命令查找文件特别快,比find命令要快很多

语法:locate 文件名

使用locate命令查找passwd

执行locate命令时,如果报如下错误:

则先执行updatedb命令手动更新数据库然后再执行locate命令

updatedb

locate passwd

locate效率高的原因

locate的快速是因为从已建立的数据库/var/lib/mlocate中查找数据,而不是直接在硬盘上进行,所以自然很快。但是locate命令也有限制,比如,有时候我们可能会找到一些已经被删除的文件,或者刚刚新建的文件我们找不到。这是由数据库文件的更新机制导致的。基本上Linux每次启动会更新数据库文件,但是我们最新创建或者删除的文件并没有被数据库记录,导致查询结果有问题。针对此,我们也可以updatedb命令手动更新数据库。 

 

Linux的文件打包与压缩

1、bzip2

bzip2是一个压缩工具,压缩后缀为.bz2。

语法:bzip2 [-option] 文件名

常用参数: 

-d:解压被压缩的文件(.bz2为后缀的文件,同样可以支持解压后缀为.bz、.tbz的文件)

-z:压缩指定的文件,压缩后缀为.bz2文件,但不保留原文件。

-k:压缩后保留原文件。 

压缩install.log文件

bzip2 -z install.log

bzip2 -k install.log

解压install.log.bz2文件

bzip2 -d install.log.bz2

2、gzip

gzip压缩后缀为.gz。语法: 

gzip [-option] 文件名 

常用参数: 

-d:解压被压缩的文件(.gz为后缀的文件)

-数字:指定压缩率,1为最低,9为最高。

需要注意的是,虽然1的压缩率最低,但是压缩速度快,

9的压缩率最高(压缩后的文件最小),但是会压缩过程比较长。

默认是6.(即不加任何数字参数)。

压缩install.log文件

gzip -9 install.log

可以看到在当前目录下生成install.log.gz文件

解压install.log.gz文件

gzip -d install.log.gz

3、zip

zip命令用于一个或多个文件压缩为一个压缩包,后缀为.zip。

语法:zip 压缩名 文件列表

在windows下很常见

把install.log和install.log.syslog这两个文件都压缩到ins.zip文件

zip ins.zip install.log install.log.syslog

压缩时,会有压缩率显示

解压上述ins.zip文件

unzip ins.zip

若解压的文件有重名,则会有重名询问,类似Windows下解压文件同名覆盖、替换等

4、tar

tar是一个打包工具。打包和压缩两者并不相同。打包的目的是为了方便归档、管理,压缩的目的是为了减少磁盘空间的消耗。

语法:tar [-option] 打包名 需要打包的文件

常用参数:

-c:建立一个包 

-t:查看包中的文件 

-v:打包过程中显示被打包的文件 

-f:需要打包的内容为文件 

--exclude file:在打包过程中,不要将file文件打包

-x:解开一个包 

-z:同时启用gzip工具进行压缩或解压 

将install.log和install.log.syslog这两个文件打包成ins.tar

tar -cvf ins.tar install.log install.log.syslog

解开ins.tar包

tar -xvf ins.tar

将install.log和install.log.syslog这两个文件打包成ins.tar.gz

tar -zcvf ins.tar.gz install.log install.log.syslog

解压ins.tar.gz包

tar -zxvf ins.tar.gz

 

三、Linux系统管理

 

Linux的关机和重启

1、关机shutdown

shutdown命令用于关机。

语法:shutdown [-option]

常用参数: 

-t 数字:指定多少秒后关机 

-r时间:指定时间关机后立即重新开机

-h 时间:指定时间关机 

-c:取消正在进行的shutdown

17:24分后延迟30秒关机

shutdown -t 30 17:24

今天20:00关机

shutdown -h 20:00

现在就关机

shutdown -h now

再过10分钟后就关机

shutdown -h +10

现在就重启电脑

shutdown -r now

2、重启reboot

reboot命令用于重启电脑。

语法:reboot

作用和shutdown -r now一样

 

用户和组管理

用户账号

passwd和shadow来记录用户信息和用户的密码,都保存在/etc目录下,如果没有这两文件,那将无法登录Linux。

cat /etc/passwd

这个文件中,每一行代表一个账号,有几行就代表在系统中有几个账号;

需要注意的是,其中很多账号本来就是系统必要的,比如bin、daemon、nobody、adm等,不要随意删除。 

了解:查看root这一行: 

每项之间使用“:”分隔出七项,分别是: 

(1)账号名称; 

(2)密码,早期的unix系统的密码放在这个位置,但是不安全,所以后来就把密码移到shadow文件中了,而这里用一个“x”代替; 

(3)UID,也就是用户识别码(ID),通常Linux对UID有几个限制:系统管理员用0,所以root的UID就是0;系统预留1~499,这499个UID给Linux内部使用,比如bin用的就是1;500~65535供一般用户使用,比如我们在passwd文件末尾几行中可以看到我们建立的普通用户,第一个普通用户的UID就是500,后面的用户UID依次增加。 

(4)GID,用户所属群组的识别码,数字的限制和UID类似; 

(5)用户名全称,仅是说明信息,无实际用处; 

(6)用户“属主”目录,也就是用户的个人目录,比如root用户的“属主”目录就是/root,普通用户51testing的“属主”目录就是/home/51testing; 

(7)shell,所谓的Shell就是人机交互的界面,我们通常使用的就是/bin/bash。 

cat /etc/shadow

文件存放的特殊帐号信息和普通账号信息不同;

了解:其结构和passwd文件类似,每一行代表一个用户,每一行也用“:”分隔成9个字段,第二段就是对应用户的密码。但密码是经过加密的,我们没有必要去了解加密的细节。如果密码是“*”开头,则表示该账号不用于登录。 

1、groupadd

groupadd命令用于添加新的组群。

语法:groupadd [-option] 群组名

常用参数:

-g GID:设定创建的群组的GID。

如果不加-g参数,指定GID,则系统自动分配一个,从500开始按顺序排列

添加一个叫testteam的群组,并指定GID为555

groupadd –g 555 testteam

查看添加的效果,使用cat /etc/group命令

2、groupdel

groupdel命令用于删除已存在的群组。

语法:groupdel 群组名

注意:在删除群组前必须先将该群组内的用户删除

删除之前建立的testteam的群组

groupdel testteam

查看删除的效果,使用cat /etc/group命令。

3、useradd

useradd命令用于创建新用户

语法:useradd [-option] 用户名

常用参数: 

-u UID:设定新增用户的UID,如果不指定,则系统自动分配。

-g GID或者groupname:指定新增用户所在的群组,可以用GID或者是群组名。

如果不指定群组,则系统将自动创建一个和用户名同名的群组,并将该用户加入该群组。

-M:不建立“家”目录。如果不使用该参数则默认建立家目录。

-s shell:指定用户登录时启用的shell。如果不指定,一般使用/bin/bash。 

例:创建一个名为testta的用户,并指定他的UID为555,

并指定用户加入testteam群组,指定其使用C-shell

用户创建完后我们可以在/home目录下看到testta目录,这就是系统默认创建的该用户的属主目录。需要注意的是该用户创建完后,暂时是无法登录的,因为还未给用户设定密码,Linux的安全机制是不允许无密码登录的

groupadd testteam

创建群组

useradd -u 555 -g testteam -s /bin/csh testta

cat /etc/passwd

查看创建的用户

4、userdel

userdel命令用于删除已存在的账户。

语法:userdel [-option] 用户名

常用参数:

-r:将该账号的家目录和邮件文件一并删除。

如果不加参数-r,则仅删除账户,但是该用户的属主目录和邮件文件依然保存。

出于减少垃圾文件的目的,我们在使用该命令时一般都使用参数-r。

例:删除刚才创建的testta账户,并删除属主目录

userdel -r testta

ls /home

在home目录下查看是否删除成功

5、usermod

usermod命令用于修改用户的信息、UID、所属组和使用的shell。

语法:usermod [-option] 用户名

常用参数:

-u UID:设定用户的UID。 

-g GID或者groupname:设定用户的所属群组,可以用GID或者是群组名。

-G GID或者groupname:设定用户的附加群组。

-s shell:指定用户登录时启用的shell。 

例:改变一个ws用户的组

useradd ws

添加用户

usermod -g 51testing ws

改变组

id ws

查看ws是否已加入到51testing组

 

用户密码

passwd

passwd命令用于设定用户的密码。

语法:passwd [username]

如果passwd命令后面不跟用户名,则表示修改当前用户的密码。

需要注意的是,只有超级管理员root才能给别的用户指定密码,而普通用户只能修改自己的密码。

例:修改root 用户的密码

passwd

需输入两次密码,如同Windows修改密码,需要输入新密码和确认密码

例:

使用root账户修改51testing用户的密码 

passwd 51testing

 

用户切换

su

su命令用于切换用户身份。

语法:su [-] [username]

例:

从root用户切换到51testing用户,再切换回来,观察系统的提示

su - 51testing

su - root

此时,系统提示需要输入用户密码

如果从root用户切向普通用户,则不需要输入密码,立刻切换。

如果是普通用户向其他用户切换,不管是切向普通用户还是root,都需要输入密码才可以切换

 

用户查询

1、id

id命令用于显示用户的UID、GID以及所拥有的群组。

语法:id [username]

例:用命令id分别查看51testing用户和root用户的UID(用户ID)、GID(组ID)以及所拥有的群组

id 51testing

id root

结果的括号里面是ID对应的名字,类似于:身份证号码(姓名)。

2、groups

groups命令用于显示用户所属的群组信息。

语法:groups [username]

例:用命令groups分别查看root用户和51testing用户的群组

groups 51testing

groups root

结果中:root(用户):root(组名)

 

进程管理

后台工作

1、&

作用是让当前工作放到后台运行。

语法:command &

现在需要全系统查找install.log.syslog文件,但不想让它在前台,那么可以使用命令:

find / -name install.log.syslog &

2、Ctrl+z

作用是暂停某工作

语法:就是在命令执行后,直接按Ctrl+z打断

3、fg

fg命令用于将后台的工作推到前台来,如果后面不加参数,则默认将编号最接近的任务推到前台。

语法:fg [%number]

参数说明: 

%number:表示任务编号

如:fg %1

注:fg后跟的%1,1代表后台的任务1,如果之前暂停时是像下图中的[2]+,那么fg后就跟%2。

4、jobs

jobs命令用于查询所有后台的任务。

语法:jobs

 

系统状态监控

1、ps

ps命令用于显示当前系统中运行的进程。

语法:ps -option

常用参数:

-a:所有进程。 

-u:显示用户。 

-x:列出所有tty进程,tty是当前所使用虚拟终端。

-e:所有进程,与a略有区别,这里不做具体区分。

-f:完整显示进程信息。 

建议掌握最常用的两个:ps aux或者ps -ef

ps aux

列出目前所有的正在内存当中的程序

ps -ef

列出系统中所有的进程

ps -ef |grep java

注: pid是自己的进程号,ppid是父进程号

2、w

w命令用于查看当前系统负载。

语法:w

此命令是Linux管理员最常用的命令

第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。其实,在这些信息当中,最应该关注的是第一行中的?load average:’后面的三个数值。 

第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过你服务器的cpu数量就没有关系,如果你的服务器cpu数量为8,那么这个值若小于8,就说明你的服务器没有压力,否则就要关注一下了。 

3、vmstat

vmstat命令用于监控当前系统状态。

语法:vmstat

通过vmstat就可以知道具体是哪里有压力。

vmstat命令打印的结果共分为6部分:procs、memory、 swap、io、system、cpu。 

4、top

top命令用于动态监控进程所占系统的资源,每隔3秒变一次。

语法:top

此命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面

打印的信息较多,包括系统负载(load average)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况

需关注的项:%CPU%MEM COMMAND

要静态结果(通常用于记录),则可以加上参数top -bn1

查看单个进程 top -p PID

4、free

free命令用于查看内存使用状况。

语法:free [-option]

常用参数: 

-b:用字节做单位 

-k:用KByte作单位

-m:用MByte做单位 

-t:显示total(总计)

显示当前系统的内存使用状况

第一行是系统内存状况,480表示使用了480MB,剩余526MB,其实真实的使用情况是第二行显示的,真正被使用的是131MB,剩余874MB,这是因为系统初始化时,就已经分配出很大一部分内存给缓存,这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲。所以,查看内存使用多少,剩余多少请看第二行的数据。 

free -m -t

5、kill

kill命令用于停止或杀死进程,可以通过进程号pid或任务编号来指定要操作的对象。

语法:kill [-option] PID

常用参数: 

-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

信号:只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略

如:kill -9 PID

如:kill -9 PID1 PID2 PID3

如:kill -9 %1(任务编号)

 

网络管理

1、ifconfig

了解:我们可以看到显示了三块网卡的信息,第一块eth0一般就是我们的网卡;第二块lo为本地环回网卡,也就是决定了为何localhost或者说本地ip是127.0.0.1;virbr0网卡为虚拟网卡,忽略这一个。

ifconfig命令用于显示或设置网卡

语法:ifconfig

仅查看指定的网卡设备

ifconfig eth0

例:修改系统的IP地址为172.16.200.72

ifconfig eth0 172.16.200.72

只是暂时修改下IP地址,网络服务重启或机器重启后,仍然会读配置文件里的IP。

还可以通过up和down来启用和禁用网卡:

ifconfig eth0 down //禁用eth0网卡

ifconfig eth0 up //启用eth0网卡

2、netstat

netstat命令用于显示网络状况。

语法:netstat [-option]

netstat -lnp用于显示当前系统启用哪些端口

netstat -an用于显示网络连接状况

例:检查一下系统是否有程序占用了22端口

可用命令:netstat -an|grep 22

3、ping

ping命令用于测试目标与本机的连接状况

语法:ping [-option] 目标

常用参数: 

-c 数字:用于指定测试多少次,如果不设置该参数,将会无休止的进行测试,可以用Ctrl+c强行停止。 

例:测试172.16.1.209这台机器和我们的linux系统连接是否正常

ping -c 5 172.16.1.209

表示ping 5次停止

以上是关于Linux命令总结的主要内容,如果未能解决你的问题,请参考以下文章

Yarn 命令总结

ADB命令安装APK常见错误总结

Linux常用命令总结

Linux学习总结(73)——Linux高频命令大总结

Linux学习总结(73)——Linux高频命令大总结

Linux命令大总结