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 |
光标移动到文本的最末行 |
nG(n是数字) |
移动到该文本的第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的作用是,在替换前需要用户确认 |
一般模式下删除、复制粘贴
nx(n为数字) |
向后删除n个字符 |
dd |
删除光标所在的那一行 |
ndd(n为数字) |
删除光标所在的向下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命令总结的主要内容,如果未能解决你的问题,请参考以下文章