前言
本文详细介绍了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的水平,能够快速查找到最权威的一手资料。