玩转shell命令 | Linux常用命令大全

2024-08-08 17:26:31 浏览数 (3)

前言

本文详细介绍了Linux的基本知识和一些基本指令,这些指令是使用Linux的基本技能。在介绍命令的同时,把相关的一些Linux知识也进行了扩展,比如在讲解文件的权限命令时,介绍了文件详细信息中各个位的含义,通过权限掩码怎么求8进制数字权限,在比如在讲解建立软硬链接命令的同时,对软硬链接的本质和区别进行了分析等等。另外,还给出了一些初用Linux时可能会遇到的问题及解决方法,比如Linux时间和本地时间不一致问题的解决、CentOS 6无法使用yum安装的解决方法等等。本文讲解的命令全部都在目录中一一列出,如果只是想了解某个命令的使用,可以直接在目录跳转(这也是为什么使用每个命令做目录的原因)。

一、常用命令

(1)tab键命令补全

按一下tab键可以补全命令,如果有多个命令可以匹配,那么按两下tab键可以提示匹配的命令。

比如要查看某个文件dm_exit.c,输入cat dm按两次tab键出现提示,直到唯一匹配的时候,tab键会把命令自动补全。

(2)查询历史命令

查询历史命令有两种方法,一个是使用history命令,第二个方法是直接按上下键。history会列出所有的历史命令,上下键是一条一条的列出上一条或下一条命令(按一次显示一条)。

(3)清屏

代码语言:javascript复制
clear

clear命令可以清除当前屏幕,如果使用鼠标往上滚动还是可以看到以前的输出的。

(4)echo输出变量或字符串

直接输出一个字符串:

输出一个变量:$代表的是环境变量,下面的命令用于查看当前使用的shell是什么。

(5)ls命令、Linux的目录结构、绝对/相对路径

1° ls命令 ls查看目录下的文件(Linux中一切皆文件)。 ① ls -al 显示所有文件及详细信息,隐藏文件也会显示, -l 表示显示详细信息(用户、权限、大小、时间等,将在后面命令中介绍), -a表示显示所有文件。

其中 . 表示当前目录 .. 表示上一级目录,前面带一个 . 的文件都是隐藏文件,如果不加 -a 选项就无法看到,比如下面我们建一个隐藏文件,分别用不带 -a 选项和带 -a 选项查看

② ls -R 选项,递归显示子目录,他会把子目录和子目录的子目录全部显示出来。

③ ls -lrt 按时间顺序显示,且显示详细信息,文件会按照最后访问时间进行排序显示出来。

④ 使用通配符 * 和 ? *号可以代表任意个字符,下面命令表示显示所有.c文件

代码语言:javascript复制
ls *.c

?只能表示一个字符

更多的选项可以通过man命令查看, man ls

2° Linux目录结构

目录

用途

/

根目录

bin

存放了系统可执行程序

boot

存放了内核和启动程序的相关文件

lib

库目录,存放了系统的动态共享库

media

挂载设备媒体、U盘、光驱等,比如我们插入U盘拷贝数据的时候,U盘就会被自动识别为media

usr

一般会将很多应用安装在此目录,/usr/local 用户自己安装文件的目录

sbin

超级管理员root的执行程序

proc

系统内存映射,会保留一些进程运行信息

etc

系统软件启动和配置目录

dev

设备文件目录

home

用户家目录,其实就是 ~

3° 绝对路径与相对路径 绝对路径是指 ==/==开头的路径,比如 /home/qq/dm01_cmd/

使用绝对路径,不管当前目录是什么,都能根据绝对路径到达目的路径。 相对路径就是以 . 开头以及 . . 开头的路径,前面说过,一个点表示当前目录,两个点表示上一级目录,比如现在dm01_cmd目录下有aa和bb两个目录,当前在aa目录中,通过 cd …/bb 就以相对路径(上一级目录的bb目录中)的方式进入了bb目录。

(6)pwd查看当前目录

通过pwd命令可以查看当前在那个目录。

(7)man查看帮助手册

man man 查看man的帮助手册,进入man帮助手册后,可以按上下键一行一行的移动,enter键和下键一样,也是按行滚动,使用空格键可以一页一页(一个屏幕)的滚动翻页。按q就可以退出man帮助手册。

上面几个数字是比较有用的,比如 2 System Calls 代表系统调用,当我们查找系统调用函数的帮助手册时可以加这个参数,比如 man 2 fork 查看fork函数的帮助手册。

(8)date查看系统时间,以及时间校准方法

可以直接date获取时间,也可以按照自己需要的格式获得系统时间,各种格式的说明可以通过man date获得。

如果你的时间不准确可以通过下面方法解决: 首先安装时间同步服务,执行下面的命令

代码语言:javascript复制
yum install ntp -y

然后执行下面命令即可同步网络时间

代码语言:javascript复制
ntpdate cn.ntp.org.cn

再次查看时间,如果发现时间和实际时间还是不一致,应该考虑时区设置问题,查看系统时区是不是本地时区,使用vim编辑器打开 /etc/sysconfig/clock

代码语言:javascript复制
vim /etc/sysconfig/clock

ZONE后面显示的就是时区

我们把之前的时区屏蔽,修改为本地时区,比如我所在位置为"Asia/Shanghai",然后关闭硬件时钟与UTC时间一致功能

代码语言:javascript复制
ZONE="Asia/Shanghai"
UTC=false
ARC=false

设置linux时区为上海,在命令行输入

代码语言:javascript复制
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

同步时间,如果没有ntpdate需要根据前面介绍先安装ntp服务

代码语言:javascript复制
ntpdate time.nist.gov

然后在根目录下执行命令设置硬件时间和系统时间一致

代码语言:javascript复制
./sbin/hwclock --systohc

再次执行date查看时间并对比本地时间,可以发现时间正常。

(9)alias命令重命名或自定义命令

这个命令可以帮助我们把一个很长的命令自定义为一个简短的名字,或者把一些常用的复杂操作重命名为一个方便使用的命令。 查看当前已有的命令别名:

自定义一个命令,比如我们学习Linux的时候,每次开机都要进入到一个存放自己练习文件的目录,我是在下面路径中,所以每次开机都要敲一遍这个路径

代码语言:javascript复制
cd /home/qq/dm01_cmd

通过alias可以把它命名为一个简单的命令

代码语言:javascript复制
alias gotest='cd /home/qq/dm01_cmd'

直接执行gotest就可以达到 cd /home/qq/dm01_cmd的效果

这里 cd ~ 是回到家目录的意思。 使用unalias可以删除命令别名

可以看到别名gotest没有了。 另外也可以在家目录(~目录,通过 cd ~进入)下的 .bashrc文件中进行配置

(10)bc计算器

bc命令可以进入计算器,进行一些简单计算,输入要计算的表达式后,按回车输出结果

按 quit 退出,不能简写为q

二、目录操作相关命令

(1)tree命令安装及使用

Linux中的目录都是树状的,一层一层的,使用tree命令可以树形显示目录,并递归显示子目录。如果没有安装过tree的话需要使用yum命令安装一下(我用的CentOS操作系统)

代码语言:javascript复制
yum install tree

如果是Ubuntu系统应该使用apt-get命令

代码语言:javascript复制
sudo apt-get install tree

这里提示一下,如果你使用的是CentOS 6,那么你的yum命令可能会报错

代码语言:javascript复制
错误:Cannot find a valid baseurl for repo: base

这是因为CentOS 6已经停止更新了,我曾因为yum这个错误疯狂尝试各种方法,最后查资料看到CentOS 6已经停止更新,这里有一个解决方法,在shell下输入下面的命令

代码语言:javascript复制
sed -i.old -e 's/^mirrorlist/#mirrorlist/g' -e 's/^#baseurl=http://mirror.centos.org/centos/$releasever//baseurl=http://vault.centos.org/centos/6//g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all

然后再次使用yum命令就发现yum可以正常使用了。这时可以安装tree了

代码语言:javascript复制
yum install tree

tree命令可以看到目录的层级结构,非常好用。

(2)cd切换目录

① 有关目录的一点小知识 一般来说我们在命令中写路径的时候都会在后面加一个 / ,比如我们写一条切换到某路径的命令

代码语言:javascript复制
cd /home/qq/dm/dm_gcc/main/

对这条命令中的目录进行分析,首先第一个 / 代表根目录, home/ 代表家目录, qq/ 代表qq目录,dm/ 代表dm目录,dm_gcc/ 代表dm_gcc目录, main/ 代表main目录,这条命令就是切换到main目录中的意思。

如果我们要去上一级目录中的某个目录,应该这样

代码语言:javascript复制
cd ../header/

代表去上一级目录下的header目录,其中 …/ 就表示上一级目录,如果是当前目录用 ./ ,说这些的目的是为了告诉大家,我们在写目录的时候会在后面加一个 / 来表示这是目录,大家不要写了这么多命令还不知道命令中的 / 是什么意思。有时候,如果路径只有一层,可以不加 /

② 回到家目录home的4种方式

代码语言:javascript复制
cd ~  
cd - 
cd /home
cd $HOME

(3)mkdir创建目录

mkdir cc/dd 在已有目录cc下创建dd,如果当前cc目录不存在就要加一个 -p 选项,该选项的意思是递归创建目录。

(4)rmdir删除目录

rmdir命令只能删除空目录(只有 .. . 的目录),不能删除非空目录,非空目录要加 -p 选项递归删除子目录。

如果子目录太多(目录层次太深)这个命令就不好用了,可以用rm命令删除

一般使用rm比较好,因为他还用于删除文件,在后面会详细介绍。

(5)which查看路径

which可以查看一个命令所在的路径

可以看到这些命令都在 /bin 目录下,但是也有例外

这是因为 cd命令是BASH shell本身自带的命令,不在任何目录中。

三、文件相关命令

1. 文件操作命令

(1)touch创建文件

touch+不存在的文件名,创建一个文件。

如果touch后面是一个已经存在的文件,那么将会更改文件的最后访问时间。

(2)rm删除文件

Linux下一切皆文件! 删除目录的时候一般要加上 -r 选项,表示递归删除子目录(因为Linux中的目录是树状的)

-f选项表示强制删除

代码语言:javascript复制
rm -rf *

这条命令表示强制删除当前目录的所有内容( * 适配任意个字符)。 删除多个文件,直接在rm命令后写上多个文件的文件名即可

代码语言:javascript复制
rm -f 1.c 2.c 3.c 

更多的选项可以通过 man rm 查看。

(3)cp拷贝命令

cp命令的使用要分为几种情况:

  • 目标文件存在和目标文件不存在;
  • 目标文件是文件还是目录;

① 首先目标文件不存在的情况,会直接把源文件拷贝一份并命名为目标文件名;

② 目标文件已存在,源文件会覆盖目标文件,并重命名为目标文件名;

③ 目标文件是目录,会把源文件拷贝到目标目录中,如果源文件目录有子目录,需要加 -r选项递归拷贝子目录。

(4)mv文件移动

和cp命令一样,也要考虑情况: ① 目标文件不存在,相当于给源文件重命名,和cp的区别是,cp之后源文件依然存在,但是mv之后源文件就没了。

② 目标文件存在,将覆盖目标文件,并且源文件消失(区别于cp命令)

③ 目标文件为路径,会将源文件移动到目标路径下面。

2. 文件内容相关

(1)cat查看内容

查看文件的内容,加 -n 选项可以显示行号。

(2)more按屏查看内容

more可以只显示一屏的文件内容,并且在屏幕下方会显示百分比,按enter将一行一行的滚动翻页,按空格可以一屏一屏的滚动翻页,当显示到100%会自动结束,more不能向上翻页。

(3)less按屏查看

less比more功能更多一些,less可以使用上下键翻页,每次滚动一行,enter按行向下滚动,空格按屏向下滚动,上键按行向上滚动(more不可以上翻),并且less显示到末尾不会自动退出,按q键手动退出。

(4)head查看文件头部

如果不加选项参数,默认显示文件的前十行,通过 -n选项可以指定显示行数

(5)tail查看文件尾部

如果不加选项参数,默认显示文件的后十行,通过 -n选项可以指定显示行数

tail通常的用法是通过 -f 选项一直显示文件尾,通过该选项可以不停的显示文件尾部信息,如果文件尾部信息发生变化,那么tail会立马显示出来,通过 tail -f 可以用于追踪日志变化,比如在通信中,我们通过日志打印连接情况,这样就可以在终端不停的显示最新的连接情况。通过SecureCRT克隆会话功能,可以实现一个会话用于通信中的各种操作,另一个会话通过 tail -f 追踪日志变化。

3. 文件权限与用户属性

当我们使用 ls -l 查看详细信息的时候,会看到文件的详细信息,每部分的含义请看下图

说明:目录都是具有可执行权限的,如果把目录权限修改为不可执行,那么目录将无法进入;目录大小一般都是4096字节,也就是4kb。

  • 文件类型介绍:

文件类型

含义

d

目录文件

-

普通文件

l

软连接(符号链接)

b

块设备

p

pipe管道设备

s

本地套接字

c

字符设备

  • 文件权限介绍

权限

含义

r

读权限

w

写权限

x

执行权限

权限位是按照 读权限-写权限-执行权限 顺序排列的,第一位表示读权限,有则写 r,无则为 - ;第二位是写权限,有则写 w ,无则为 - ;第三位是执行权限,有则写 x ;无则为 - 。对应的权限位数字表示法为,有权限为1,无权限为0。下面举例说明:

(1)umask查看8进制文件掩码

umask可以查看文件权限的掩码,那么什么是权限掩码呢?这应该分文件和目录两种情况来考虑,因为二者的默认权限是不同的。 ① 目录 以上面看到的aa目录为例,它的权限为 rwxr-xr-x 用数字表示是0755,那么用umask查看它的8进制权限掩码为0022

目录默认的满权限为0777,用掩码0022对满权限0777取反得0755,再用0755&0777,得到0755这就是目录aa的权限。或者直接 0777-0022=0755 也可。 ② 文件 文件默认满权限是0666,所以应将文件掩码对0666取反再相与,或0666减去掩码,比如文件3.c,0666-0022=0666 对应 rw-r–r–。

4. 修改用户权限

我们在命令行的时候可以看到最前面有一个 # 或者 $ 他们分别代表超级用户root和普通用户。 # :超级用户root,管理员用户

$:普通用户

我的前面是一个 # 说明我当前用的是root超级用户。 我们通常会有用户和用户组,用户组的存在方便了对用户的管理,比如对一个文件,我给某个用户组相应权限,其他用户没有权限,那么这个用户组就可以方便的对文件进行相应操作。注意,root是超级用户,它不属于任何一个组,且具有最高权限。

(1)whoami我是谁

查看当前用户

(2)chmod修改用户权限

① 直接增删权限 chmod [u/g/o/a] [ /-] [r/w/x] u:用户,修改当前用户的权限 g:组,修改当前用户组的权限 o:其他用户,修改其他用户的权限 a:所有用户,修改所有用户权限 :增加权限 -:去除权限 r:读权限 w:写权限 x:执行权限 通过上面的组合来达到修改权限的目的。举例:

比如上面的1111.txt文件,我们要去除它的用户写权限,应该使用的命令组合是

代码语言:javascript复制
chmod u-w 1111.txt

然后我们要给所有用户增加写权限,应使用

代码语言:javascript复制
chmod a w 1111.txt

② 使用8进制数字权限修改文件权限 比如,我们给1111.txt当前用户和用户组只有写权限,无读权限,无可执行权限,其他用户没有任何权限,那么这个权限的8进制数字表示为 0220,可以使用命令

代码语言:javascript复制
chmod 0220 1111.txt

可以看到,1111.txt原先的 rw-rw-rw- 变成了 -w–w----。 第一种方法适用于对一个用户(或用户组)增减删除某个权限,如果需要要修改的权限位比较多的话,使用8进制数字修改更为方便。

(3)chown修改文件归属用户

需要管理员权限

代码语言:javascript复制
sudo chown qq:qq1 1111.txt

该命令是让1111.txt归属于qq用户组的qq1用户。

(4)chgrp修改文件所属组

需要管理员权限

代码语言:javascript复制
sudo chgrp qq2 1111.txt

该命令是让1111.txt归属于qq2用户组。

5. 软链接和硬链接

首先介绍以下什么是软链接,什么是硬链接。 ① 硬链接 硬链接是指通过索引节点来进行链接。在Linux文件系统中,存放在磁盘中的文件都会有一个索引节点号(inode index),硬链接就是多个文件名对应同一个索引节点,硬链接就是指向一个磁盘文件的有效路径名,硬链接文件和源文件是同一个文件。 ② 软链接 软链接也叫符号链接,它是一个文件,文件中保存了指向文件的位置信息。

通过 ll 命令查看源文件,软链接和硬链接如上图所示,可以看到硬链接和源文件大小一致,而软链接不同,并且在软链接后面还有个箭头标志 -> 指向了源文件。并且可以看到硬链接和源文件的链接数都是2,而软链接的链接数是1。 实际上,对于软硬连接的本质可以这么理解: 软链接其实是新建立了一个文件,会新建一个inode节点,这个文件保存了源文件的位置,也就是指向了源文件,你可以把它理解为Windows下面的快捷方式,或者理解为C语言中的指针,如果删除软链接,源文件不会受到任何影响,因为软链接和硬链接是两个不同的文件,但是如果删除源文件,虽然软链接不会受影响,但是他就失去了意义,可以对比C语言指针去理解。 硬链接不会建立新的inode节点,和它源文件是同一个文件,只是将链接计数加1,所以硬链接不可以跨文件系统,可以把硬链接理解为C 中的引用,如果我们修改了源文件,那么硬链接的内容也会相应修改,软链接就是源文件的别名而已。当我们删除硬链接的时候,链接计数就会减一,当链接计数为0的时候,源文件就被删除了,对于硬链接就按照C 引用去理解。 我们可以通过 ls -i 选项来查看文件i节点来验证

硬链接和源文件具有相同的i节点,说明他俩是同一个文件,硬链接不会建立新的i节点,只是将链接数加1,而软链接有自己的i节点,说明软链接是一个单独的文件,和源文件不是一回事。那么硬链接和copy有什么关系呢,copy得到的是一个单独的文件,修改它对源文件无任何影响,所以硬链接和copy无任何关系,硬链接是指,两个连接引用同一块磁盘空间(拷贝是拷贝了一块内存空间,总共两个不同的空间)。

(1)ln建立软硬连接

建立软链接的时候要加一个 -s 选项

(2)unlink删除链接

unlink可以删除软链接或硬链接,unlink每次删除一个硬链接,文件的链接计数就会减1,当链接计数为0时,文件被删除(所有链接被删除,磁盘空间就无法找到了)。

如果使用 rm 删除源文件,那么软链接失效,硬链接计数减1。

可以看到硬链接计数减一,软链接变成红色失效了。

四、查看空间占用相关命令

(1)wc统计

选项: -w :统计单词数 -l :统计行数 -c :统计字节数

查看2.txt的单词数、行数、字节数分别为2、2、6。

(2)du查看占用空间大小

① 查看当前目录占用空间情况

② 查看某一个目录占用空间情况

③ -h选项,按照适合程序员观看的方式显示(显示单位K)

④ 多级子目录只显示一级 –max-depth=1 选项,指定子目录递归最大深度

(3)df查看磁盘使用情况

显示磁盘使用情况,以及按照GB单位显示

更多选项可以通过man获取。

五、查找及检索相关命令

(1)find查找

① 按名称查找 -name 选项,比如查找所有C文件,可以用 * 适配名称。

② 按类型查找 -type 选项,这里的类型是指 f 普通文件 d 目录 ,可通过man查看。比如查找所有目录文件:

③ 按大小查找 -size 选项,比如查找大于0M,小于3M的文件

④ 指定最深路径 -maxdepth

(2)-exec、-ok选项和xargs

① -exec 选项 exec函数族会在Linux进程编程讲解,这里使用exec是把前面的执行结果传给后面的指令去执行,比如我们执行这样一条命令:

代码语言:javascript复制
find -maxdepth 1 -size -1M -exec ls -l {} ;

这个命令的意思是,递归一层子目录查找小于1M的文件并显示详细信息 ,exec的作用是把 find -maxdepth 1 -size -1M 指令的结果传递给后面的指令 ls -l 去执行。 ② -ok 选项

代码语言:javascript复制
find -maxdepth 1 -size -1M -ok ls -l {} ;

-ok和 -exec 的作用一样,都是把前面指令的结果传递给后面的指令去执行,只不过 -ok 是一种安全模式,每一条都会询问。这个选项在删除时应优先使用,可以防止误删重要文件。

代码语言:javascript复制
find -maxdepth 1 -size -1M -ok rm -r {} ;

③ 使用管道 | 管道配合xargs实现查找并显示详细信息

代码语言:javascript复制
find -maxdepth 1 -size -1M | xargs ls -l

这里注意,exec是把前面的结果一下子全部传给后面去执行,如果前面的结果太多,可能会造成后面指令溢出,使用xargs会把前面的结果分成很多部分,按块传给后面的指令。

(3)grep筛选

① 筛选信息 比如在aa目录及所有子目录中筛选"main",并显示"main"所在的行号

② cat 3.c | grep main 查看3.c文件并筛选出main

② cat 3.c | grep -v main 查看3.c文件并排除出main

可以看到,在查看3.c文件的同时把 int main() 这句话排除掉了。 ③ 搭配find使用 比如查找普通文件并且筛选出txt类型的文件

六、压缩文件管理相关命令

(1)zip压缩与unzip解压

zip和unzip命令对应的是 .zip 类型的压缩包。 zip -r 压缩并递归压缩子目录,比如

代码语言:javascript复制
zip -r 1.zip aa 1111.txt

会把aa以及aa的所有子目录和1111.txt一块压缩为1.zip。

压缩后得到一个 .zip 压缩文件

解压命令

代码语言:javascript复制
unzip 1.zip

(2)gzip压缩和gunzip解压

gzip和gunzip命令对应的是 .gz 类型的压缩包,它的特点是只能压缩文件,不能压缩目录。

(3)tar命令

这是最常用的压缩解压缩命令,推荐优先使用。 ① 首先介绍选项参数:

-c 压缩文件

-x 解压文件

-f 指定压缩文件名

-v 显示信息

-z 压缩为 .gz 格式,默认压缩为 .tar 格式

② 压缩一个文件

③ 压缩为gz格式并解压

因为 -v 的存在,在压缩时会显示压缩信息。 解压gz文件

④ -j 压缩为bzip2 格式

(4)rar压缩包

a 压缩 x 解压缩

代码语言:javascript复制
rar a -r 1111 1111.txt

把1111.txt压缩为1111并自动添加后缀名。

代码语言:javascript复制
rar x 1111

解压压缩包。

七、软件安装与卸载命令

(1)apt-get命令

需要连网并直到软件名,用于Ubuntu等

代码语言:javascript复制
#安装tree软件
apt-get install tree
#卸载tree软件
apt-get remove tree
#更新源,即更新/etc/apt下的sources.list文件
sudo apt-get update
#清理包
sudo apt-get clean

(2)yum命令

如果是CentOS操作系统,要用 yum 命令安装软件,同样需要连网,直接通过软件名下载安装。 如果遇到这个错误,可以通过命令行输入下面的命令解决

代码语言:javascript复制
sed -i.old -e 's/^mirrorlist/#mirrorlist/g' -e 's/^#baseurl=http://mirror.centos.org/centos/$releasever//baseurl=http://vault.centos.org/centos/6//g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all

具体请见第二章,(1)tree命令安装及使用,有详细说明。

代码语言:javascript复制
#安装软件
yum install tree
#卸载软件
yum remove tree

(3)dbkg根据安装包安装

dbkg 命令不需要连网,只要有 deb 安装包即可

代码语言:javascript复制
#根据安装包安装软件
sudo dbkg -i tree.deb
#移除软件包
sudo dbkg -r tree.deb

(4)源码安装

一般步骤如下: ① 解压源码包; ② cd dir 进入目录; ③ ./configure 执行配置文件,检测文件是否缺少,创建Makefile,检测编译环境; ④ make 编译源码,生成可执行文件和库; ⑤ sudo make install 执行安装; ⑥ sudo make distclean 删除与卸载软件;

八、进程管理与网络命令

1. 进程管理命令

更多进程的信息将会在进程编程篇讲解。

(1)who查看登陆设备

查看登陆设备

(2)ps查看进程信息

ps aux 和 ps ajx

(3)kill杀死进程

代码语言:javascript复制
#pid表示进程号
kill -9 pid

(4)env环境变量

(5)top查看系统信息

按 q 键退出

2. 网络命令

(1)ifconfig

ifconfig是我们最常用的网络命令之一,可以查看IP等信息,其中 eth0 表示本地第一块网卡。

图中标出的就是本机的IP,如果需要远程登陆本机或者与本机通信就用这个IP。

(2)ping

这也是一个常用的网络命令,可以测试网络是否连通,可以直接加域名测试网络是否连通

下面一直在发东西,说明网络连通了,但是他会一直发,除非手动 ctrl c 终止,或者通过 -c 选项限制次数,比如只ping4次,4次后他就会自动停止

也可以ping一个IP,来测试两台主机是否连通

代码语言:javascript复制
ping 192.168.80.0

(3)nslookup

通过域名得到IP

(4)netstat

查看网络连接状态

九、用户管理命令

1、用户管理

这里的命令都要加 sudo 管理员权限

(1)useradd增加用户

选项: -g :指定组

-d :指定用户家目录

-m :家目录不存在时自动创建

我们现在增加一个用户Q

(2)groupadd增加组

增加一个Q用户组

代码语言:javascript复制
sudo groupadd Q

(3)passwd设置密码

passwd修改密码

(4)su切换用户

将root用户切换为新建的Q用户,并使用 whoami 查看当前用户,可以看到 @ 前面的root也变成了Q,说明现在是Q用户。

切换到用户Q并带有环境变量

代码语言:javascript复制
sudo - Q

切换到root用户

代码语言:javascript复制
sudo su

如果在做这些操作的时候不是在root用户下,那么就要输入密码进行操作。

(5)userdel删除用户

代码语言:javascript复制
#删除用户Q
sudo userdel Q
#删除用户Q以及它的家目录
sudo userdel -r Q

2、关机命令

关机开机挺麻烦的,这里的命令就不演示了,直接摆上命令。

(1)shutdown关机

立即关机

代码语言:javascript复制
shutdown -h now

(2)poweroff关机

代码语言:javascript复制
poweroff

(3)init 0关机

代码语言:javascript复制
init 0

(4)reboot重启

代码语言:javascript复制
reboot

总结

Linux基础命令篇结束,Linux命令要多用多查,学习Linux命令最好的资料就是man,学会如何有效利用man会大大提高Linux的水平,能够快速查找到最权威的一手资料。

0 人点赞