一:HCSA-VM-Linux安装虚拟机后的基础命令
1.代码命令
1.查看本机IP地址:
ip addr 或者 ip a
[fox@bogon ~]$ ip addre
[fox@bogon ~]$ ip a1:<Loopback,U,LOWER-UP> 为环回2网卡
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP>为虚拟机自身网卡
2.测试网络联通性:
[fox@bogon ~]$ ping www.baidu.com
强制终止进程 Ctrl + C
3.关闭安全软件-关闭防火墙
[fox@bogon ~]$ systemctl stop firewalld # 临时关闭防火墙(重启设备后将再次自行启动) [fox@bogon ~]$ systemctl disable firewalld # 取消开机启动(重启设备后将不会自行启动) Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service". Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
在此如果登陆的是用户账号需要输入管理员账号密码
4.关闭SELinux
[fox@bogon ~]$ setenforce 0 (临时关闭)
5.修改主机名
[root@bogon ~]# hostnamectl set-hostname server 设置新名字为server
[root@bogon ~]# hostname 查看主机名
只有重启以后名字才会正式显示
6.重启设备
[root@bogon ~]# reboot
7.修改源yum为国内阿里源
1.使用XShell远程登陆
方法一:
使用XShell来远程来链接Linux系统
第一步:双击打开XShell然后修改名称,输入需要链接的设备IP,然后选择连接。
第二步:第一次登陆需要选择接受并保存
第三步:选择用户并输入密码
此时就已经完成远程登录
方法二:
SSH root@IP地址
例:下图所输入的命令为:SSH root@192.168.17.128
最后若想要注销则需要输入 Ctrl + D
2.启动Xftp实现上传下载
第一步:点击绿色选项打开Xftp
第二步: Xftp左边是Windows窗口,右边是Linux窗口,三点为返回上一级。
3.yum定义及下载
yum是REDHAT系统默认下载软件工具,默认下载仓库网址服务器在境外,传输速度较慢,需要将系统自带的vum仓库服务器地址更改为国内阿里yum仓库服务器地址,以保证下载软件速度稳放
原理:
oyum的配置文件必须放在/etc/yum.repos.d目录中打开该文件查看是否存在 [root@node2 ~]# cd /etc/yum.repos.d
cd: 进入(进入)文件夹(许多设备一开始没有该文件)若有则经行一下操作
进入上一级直接删除文件 [root@node2 ~]# cd /etc
删除yum.repos.d目录 [root@server etc]# rm -rf yum.repos.drm -rf 删除文件夹,rm -f 删除文件
在重新建立该目录 [root@server etc]# mkdir yum.repos.d
将之前准备好的阿里的yum配置文件通过xftp上传到/etc/yum.repos.d目录中
第一步:使用xftp将配置文件上传到/etc/yum.repos.d目录中
在Xftp中的Windos窗口找到对应文件,在Linux窗口将文件打开到 /etc/yum.repos.d
然后将文件直接从Windos窗口拖拽到Linux窗口,即下载完成
第二步:查看文件是否完成上传
4.制作yum缓存 ,使 yum文件生效
第一步:制作yum缓存,使yum文件生效
[root@server ~]# yum makecache
此时阿里云已经更新完成。
5.下载软件进行测试
下载软件进行测试 gcc为 C++的编译器
[root@server ~]# yum install gcc 即如图中途需要输入Y才能使安装继续进行
[root@server ~]# yum install gcc -y 中途不用输入Y就能使安装继续进行
8.快照制作
快照是VMware的功能,因此该命令因在VMware上进行操作
名称修改为 初始
在左下角进度没有到达100%之前不要经行任何操作
9.正确的关机和重启
[root@bogon ~]# reboot 重启
[root@server ~]# shutdown now 关机
2.快捷键
1.放大中端字体字体 Ctrl + Shift + =
缩小中端字体字体 Ctrl + Shift + -
2.将鼠标在虚拟机与电脑之间相互切换 Ctrl + Alt
3.可以使用上下箭头来返回上一句配置命令
4.清空屏幕 Ctrl + L
5.强制终止进程 Ctrl + C
6.单词补全 tab
7.复制 Ctrl + insert
8.粘贴Shift + insert
9.在Xshell上进行注销当前链接 Ctrl + D
二.: VM-Linux基础操作命令
基础知识:
Linux的组成
Linux内核:内核是系统的核心,是运行程序和管理像磁 盘和打印机等硬件设备的核心程序。 文件系统: 文件存放在磁盘等存储设备上的组织方法。 Linux能支持多种目前浒的文件系统,如ext4、FAT、 VFAT、ISO9660、NFS、SMB等。
Shell:Shell是系统的用户界面,提供了用户与内核进行 交互操作的一种接口。
应用程序:包括文本编辑器、编程语言、X Window、办 公套件、Internet工具、数据库等。
Linux的操作界面常称为Shell,Shell是操作系统提供给用 户使用的界面(图形、字符),它提供了用户与内核进行 交互操作的一种接口。当用户发出指令(命令或鼠标操 作),先将这些指令发送给Shell,由Shell将用户的指令翻 译后传送给内核,再由内核来控制硬件的工作。然后内核 将硬件的工作情况发送给Shell,并由Shell返回硬件的工 作信息和情况。
Shell的分类: 图形界面的Shell :KDE、GNOME 字符界面的Shell:bash等
命令执行的本质:
当输入命令(单词)后敲击回车的那一刻。它就会立刻到以下图片,变量中的文件中去找对应的可执行文件
此路径又叫环境变量
通配符:
通配符:模糊查找的代表字符
*:住意内容任意个数
?:任意内容1个
终端
终端:也称为终端设备,是处于计算机网络中最外围的设 备,主要用于用户信息的输入输出等
图形化终端:活动->终端
命令行终端:系统默认共有6个终端界面,相互不影响, 这些终端都是虚拟的终端,使用ctrl+alt+F(1、2、3、 4、5、6)快捷键进入
1.命令提示符
默认:[root@localhost ~]#
root:现已登录的账户名,可以通过su 普通账户 命令进 行切换查看
@:分隔符
localhost:当前主机名
~:该位置表示当前工作目录,
~ 表示/root
# : 该位置有2种符号
# 表示以root身份登录,
$表示以 普通账户身份登录
1.2.命令格式
主命令 参数 操作对象 主命令:为命令的词组
参数:
短格式:
以减号(-)开头,参数字母
长格式:
以2个减号(--)后跟上完整的参数单词
例一:查看内核
[root@server ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.1 (Plow)
企业发行版本 当前版本 (当前版本代号)
例二: 查看内核版本
[root@server ~]# uname -r
5:主版本号
14:主修订版本号
0-162:次要版本号
6.1:补丁版本
el9:红帽9
x86——64:使用平台
例三:查看shell类型
例四:查看IP地址
命令: ip a ip addr ifconfig 三条命令都可以使用
2.cd命令
命令含义:更改当前工作目录,即切换目录
2.1格式:
cd -参数 路劲 路径:
绝对路径:从/(根)目录开始描述,推荐
相对路径:从当前工作目录开始描述
命令摘要:
[root@server ~]# cd / 切换到根目录
[root@server /]# cd /root 切换到管理员家目录,可以简化为 [root@server ~]# cd ~
注意: cd ~在不同的账户中代表的含义不同,当在fox账户时代表
[root@server ~]# cd /etc 切换到根目录下的etc
[ root@server etc]# cd .. 返回上一级 ”..“本质就是目录
2.2pwd
查看当前工作目录的绝对路径
[root@server system-connections]# pwd
图片中的实例为Linux当前网卡的配置文件
3.查看帮助命令
3.1man命令:
[root@server ~]# man cd
[root@server ~]# q 浏览完之后用q命令退出
3.2 info:解锁命令相关手册
[root@server ~]# info cd
[root@server ~]#
[root@server ~]# q 浏览完之后用q命令退出
4.查看当前文件所在的绝对路径
[root@server ~]# cd /etc/yum.repos.d 首先随便进入一个文件
[root@server yum.repos.d]# pwd 使用 命令查看
/etc/yum.repos.d
[root@server yum.repos.d]#
5.ls----浏览当前目录下的内容
ls :即list列表的意思。浏览当前目录下的内容,以列表的形式展开。一般与命令cd相互配合。
5.1 参数:
5.2 例:
例:[root@server ~]# ls -l
-rw-r--r--.drwxr-xr-x 1 root root 0 9月13 2023 b1 第一个位置“-”表示该文件的类型
"rw"表示该文件的归属者,所属工作组以及其他人对该文件拥有的读写执行权限
硬链接数 归属的账户 归属的工作组 文件在磁盘上占用的流量 新建时间 文件名 查看当前工作目录信息:[root@server ~]# ls -dl /root
查看隐藏文件:[root@server ~]# ls -a
例如:“ .bash_logout”就是隐藏文件 ”.“代表当前位置 ”..“代表上一级 排序查看 [root@server ~]# ls -s
5.3 ls浏览时文件颜色的含义
6.切换用户即修改密码 ---su passwd
6.1 切换账户到fox然后切回root
[root@server ~]# su fox
[fox@server root]$ su root低级账户切入高级账户时需要输入密码认证
6.2 更改用户 root 的密码
[root@server ~]# passwd root
更改用户 root 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
注:修改用户账号时方法一样,且管理员账户可以修改任何账户的密码。
7.与时间相关的命令
7.1date
date意义:用于显示和设置系统的时间或日期
[root@server ~]# date
格式:
date -参数 +显示的日期或者时间格式 例如:
在此处强调一下:双引号使用问题,只有所描述的语句中含有空格时。才需要双引号引起,以表示该语句为一个整体。
常见的日期时间格式:
在实际工作中备份的文件必须在后边加入备份时间例如:
[root@server q1]# cp b2 b3`date +%Y-%m-%d-%H:%M:%S` 注意:此处使用的不是单引号,而是反引号哦。
修改时间
[root@server q1]# date -s 2023-09-14
注意:只要单独修改日期那么,时间将会变为全零。显示俩天后的日期 [root@server q1]# date -d "+2 day" +%d
7.2 timedatectl
意义:设置系统的时间和时区
格式:
timedatectl -参数 命令 [root@server q1]# timedatectl
将时区设置为上海 [root@server q1]# timedatectl set-timezone Asia/Shanghai
修改时间
[root@server q1]# timedatectl set-time 2023-9-11
注意:执行此操作前必须先关闭时间同步功能,否则会报错如下:
原因:如何Linux系统安装时都会默认装有(NTP)一个时间同步服务。
关闭命令: [root@server q1]# timedatectl set-ntp no
7.3 显示日历的命令 cal
[root@server q1]# cal
[root@server q1]# cal 2023
cal 后直接加具体年会调出这一年的日历
[root@server q1]# cal 05 2023 此时会调出该年的该月日历
三.:根目录下文件名对应的含义
文件名 | 描述 |
/ | Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录 |
/boot | 存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动 |
/root | 超级用户的个人目录,普通用户没有权限访问 |
/home | 存放一般用户的个人目录 |
/bin | Binary的缩写存放普通用户可执行的程序或命令 |
/sbin | 和/bin类似,这些文件往往用来进行系统管理,只有root可使用 |
/lib | 是库(library)英文缩写,存放系统的各种库文件 |
/lib64 | 存放系统本身需要用到64位程序的共享函数库(library) |
/usr | 一般用户程序安装所在的目录,用于安装各种应用程序 |
/opt | 该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、CorelWordPerfect,这可避免将文件分散至整个文件系统 |
/etc | 存放了系统管理时要用到的各种配置文件和子目录 |
/var | 通常各种系统日志文件放在这里 |
/run | 保存自系统启动以来描述系统信息的文件 |
/dev | dev 是设备 (device)的英文缩写。包含所有的设备文件 |
/mnt 和/media | 可以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点 |
/tmp | 用来存放不同程序执行时产生的临时文件 |
/srv | srv 是服务(server)的简写,服务启动之后需要访问的数据目录 |
/sys | 本目录是将内核的一些信息映射文件,以供应用程序所用 |
/proc | 可以在这个目录下获取系统信息。这些信息是在内存中由系统自己产生的 |
四:从命令行管理文件(一)
1.linux系统中软连接硬链接
硬连接
1.1.原理
linux系统中允许多个文件指向同一个inode,即允许一个文件拥有多个有效的路径名和文件名。理解:硬连接就是指向原始文件的inode指针
格式 ln 源文件名 硬连接名
证明一:
创建一个文件t1 查看他的硬链接数
创建一个硬链接 [root@server q1]# ln t1 t2
在将hello word 转储进t1 同时 查看t2
结论:硬连接就是指向原始文件的inode指针
证明二:
创捷m1.txt 并与m2.txt建立硬链接
[root@server q1]# touch m1.txt
[root@server q1]# ln m1.txt m2.txt观察他们的的(Inode)索引号
[root@server q1]# stat m1.txt
[root@server q1]# stat m2.txt结论:他们的inode号都一样,因此硬连接就是指向原始文件的inode指针
注:硬链接不可以给目录建
新建一个目录n1查看硬链接数
会发现其有来个硬链接。也就是说目录从创建起,就会自动生成一个硬链接,也就是隐藏目录“.”目录
他们的Inode号相同。
注意:
不可以在不同的文件系统中建立硬连接,由于inode是当前文件所在本文件系统的索引值即只能在本分区使用,则硬连接不能跨越文件系统
用途:硬连接一般用于数据的备份
软连接
1.2.1 原理
软连接本质是一种符号连接,类似于Windows的快捷方式,存储对应文件的路劲
1.2.2 软连接的建立
格式 1 n -s 源文件(绝对路径) 软连接名称
[root@server q1]# ln -s /etc/NetworkManager/system-connections/ens160.nmconnection nic
软连接只能写绝对路径,且无法查看链接个数
修改软连接名字:
[root@server q1]# ln -snf /etc/NetworkManager/system-connections/ens160.nmconnection NIC
查看他们的Inode号
发现他们的Inode号 不同,因此软连接和硬链接具有本质区别
软硬链接的区别:
1.软连接的指向关系可以通过命令查看(I 或者 ),硬连接不可以查看执行关系,只能查看连接
硬连接数(或者 stat)2.软连接数不会增加,硬连接数会增加
3.文件大小不一样,硬连接文件容量相同是同一个文件,软连接只是一个快捷方式,容量较小
4.软连接可以跨越文件系统 (分区),任何用户都可以建立指向目录的软连接
2.创建目录
格式
mkdir -参数 路径/目录名
参数
-p:快速创建多级目录 (递归目录)
-v:显示创建目录的详细过程
例一:
快速创建多级目录 (递归目录) [root@server q1]# mkdir -p k1/k2/k3
3.创捷文件
新建文件的方法一:
touch用法一:
touch 加文件名
如果文件已存在,则更新文件的三个时间,可以通过stat命令创建时间。
实例如下:
touch用法二:
若要一次性创建多个不一样的文件则:
若要一次性创建多个一样的文件则:
若要创建n多个一样的文件
[root@server q1]# touch p{起始..终止}.txt
新建文件的方法二:
利用另存为 搭配重复定向符 [root@server q1]# echo "hello word" > b2
新建文件的方法三:
利用vim去打开,若不存在就会新建
[root@server q1]# vim b3该方法会直接进入文本编辑器
此时我们在英文输入法下,按 按键“I”然后进行输入,最后按“Esc"键将光标定位到最后一行
然后回车就会返回终端。
4.创建一个大容量文件
作用
制作指定容量的空文件格式
dd if=来源 of=新文件名 count=数据块个数 bs=块容量
dd if=来源 of=新文件名 count=数据块个数 bs=块容量 分析
if=/dev/zero,zero 文件是一种特殊文件,可以向其它文件填充无穷个数字0。of=新文件名,创建的新大文件的存储路径及名称
count=,新文件由及格数据块构成
bs= 一个数据块的容量
例一:
创建一个大小为1G的空文件
[root@server q1]# dd if=/dev/zero of=/temp1 count=2 bs=512MB
查看文件,会发现该文件没有内容。
5.tree命令
作用:显示树林拓扑结构图,利于查看文件夹的宏观架构、
格式 tree -参数 路径
参数:
-a: 显示所有文件结构及信息 -f: 列出文件的完整路径 -d: 只显示目录 -L: 设置显示的最大深度: 如: tree -f -L 2
例一:
[root@server q1]# tree
扩展:
只有RHEL9安装了tree其余版本都要自行安装。
步骤如下:
5.1在Linux中做光盘镜像
[root@server q1]# dd if=/dev/sr0 of=/RHEL9.iso
如上图则成功。
若在执行命令时自行中断,则需要切换到虚拟机点击图中按键查看镜像是否挂载
若没有挂载则需要手动切换到VM终端进行手动挂载
6.删除文件
格式:
rm -参数 文件名 用法:
删除文件: rm 文件名
删除文件不确认: rm -f文件名
删除目录 :rm-r 目录名
[root@server ~]# rm -rf /* 删除电脑根目录下所有文件 (慎用)
注意
1.删除前必须确认
2.删除时文件的名称及扩展名必须写全
五: 从命令行管理文件(二)
1.数据流和重定向
1.2数据流
标准输入 (standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入
标准输出(standard output,简称stdout): 默认情况下,命令执行所回传正确的信息会输出到屏幕上
标准错误输出(standard error output,简称stderr): 默认情况下,标准错误输出可理解为命令执行失败后,所回传的错误信息会输出到屏幕上
不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去,而分别传送所用的特殊字符如下所示:
标准输入 (stdin):代码为0 0代表输入(键盘)
标准输出 (stdout):代码为1 1代表输出(屏幕)
标准错误输出(stderr) : 代码为2 2代表错误(输出错误提示)[root@server q1]# ll /dev 显示系统中该命令的存放位置
1.2重定向操作符
重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。、
重定向操作符本身不是命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号.
1.2.2符号
输出重定向操作符: > >>
“>”默认是覆盖,覆盖原有内容 “>>”默认是追加,在原有内之后添加内容
输入重定向操作符:< <<“<” 输入重定向
"<<"表示输入的终止符用哪一种,一般在<<后直接加输入终止符
[root@server q1]# cat > t1.txt << aaa
自我理解:以看的形式给t1.txt输入内容,当遇到aaa时输入终止三种文件存储方式:echo "hello word" > t1.txt
cat > file3 << end
cat > t5.txt
1.2.3用法
命令 >文件 或 命令 1>文件 : 将命令执行后的结果不在默认的屏幕上显示,而是以覆盖的方式写入到指定立件中,若指定的文件不存在,则自动创建该文件
命令 2>文件 :将命令执行后所产生的错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 2>/dev/nu11 : 将命令执行后所产生的错误信息不在默认的屏幕上显示,而是写入到空设备命令文件(黑洞)中(相当于Vin的回收站),即将输出的错误信息丢弃掉
命令&>文件 命令>&文件 : 将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示,而是以罗盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件
命令 >>文件 : 将命令执行后的正确输出信息以追加的方式写入到指定的文件中,不覆盖原文件内容,若指定的文件不存在,则自动创建该文件
命令 <文件 : 使命令从指定的文件中读取数据作为输入命令 <<结束标识字符串 : 在命令行读取数据作为输入,直到遇到指定的结束标识字符串
输出重定向具体命令用法:
>符号的用法,覆盖
>> 符号的用法,追加
注意:若命令echo输入错误,则会导致文件内容的丢失。例:
因此>覆盖也可以删除文件
将错误提示,输入到文件夹中:在>之前加数字2
[root@server q1]# ehco "xixihaha" 2> ni.txt
将正确和错误的信息都转储到文件中
[root@server q1]# echo "xixihaha" &> ni.txt
隐藏脚本执行的过度信息:
[root@server q1]# yum makecache > n1.txt缺点:n1.txt文件会越执行越大
因此优化 [root@server q1]# yum makecache > /dev/null 该命令为不显示也不储存
使脚本后台静默安装,安装过程不保存
合并文件:[root@server q1]# cat t1.txt t2.txt >t3.txt
输入重定向具体命令用法:
符号:< <<
将字符串test输入重定向到文件file中 [root@server q1]# echo test > file
"<<"表示输入的终止符用哪一种,一般在<<后直接加输入终止符
以看的形式给file3输入内容,当遇到end时输入终止
[root@server q1]# cat > file3 << end
以看的形式给t1.txt输入内容,当遇到aaa时输入终止
第二种输入法:[root@server q1]# cat > t5.txt
该输入发较难使用,最后结束要组合按键Ctrl + D 删除输入错的同行字母时要用组合按键
Ctrl + Backspace
以上命令都只能更改/删除同一行,不能更改/删除上一行
1.3 echo
1.3.1.作用
向终端设备上输出字符串或变量的存储数据(像屏幕终端输出)
1.3.2.格式
echo "字符串"
注意:单引号' $PATH'是原样输出"$PATH"含义是保留部分字符含义
echo $变量名($提取变量的值)
2.tee
2.1 作用
读取标准输入数据,将结果输出到文件中同时输出到屏幕上
2.2 格式
tee -参数 文件名
2.3 参数
-a:加数据,即--apped。
-i:忽略终端信号·
--help:帮助信息
2.4 用法:
[root@server ~]# tee test.txt用法与[root@server q1]# cat > t.testxt相似
3.管道符
3.1.作用
用于两个命令或多个命令相连接,将左侧命令的结果作为右侧命令的数据输入
3.2.格式
命令1 | 命令2 | 命令3 .....
3.3使用:
查看passwd这个文件有多少行,
[root@server q1]# cat /etc/passwd | wc -l 将左侧查看的数据交给右侧来处理
过滤出 ip a 命令中的ip地址,即图中红框中的内容
grep 关键字 意义:按照右边的关键字对文本进行过滤
tr -s 替换
[root@server q1]# ip a | grep ens160 | grep inet | tr -s " " | cut -d " " -f3
4.vi/vim文本编辑器的使用
有于vi是vim的加强版因此在此处着重讲解Vim
4.1 vim三种编辑器模式
概念:
命令模式:也成为了阅读模式,可以控制光标移动,对文 本进行查看、删除、复制粘贴等操作(默认)
编辑模式:也称为插入模式,可以对文本进行编辑
末行模式:保存、退出、设置编辑环境
进入的顺序 刚打开文件后进入的为命令模式(默认)
命令模式点击'i'键进入输入模式,点击Esc返回命令模式
命令模式中点击冒号进入末行模式,点击Esc返回
输入模式与末行模式不可以相互进入
结构图:
4.2 命令模式的快捷键
4.2.1. 光标跳转按键
4.2.2. 复制、粘贴、删除
4.3 编辑模式的快捷键
可通过如下任意一种功能键从命令模式切换到编辑模式
按esc键可从编辑模式切换到 命令模式
4.4 末行模式的快捷键
按:或者 / 可从命令模式切换到末行模式
按Esc键可从末行模式切换到命令模式。
4.4.1. 查找关键字并替换
4.4.2 保存退出
4.5.3. 其他操作
4.6. vim的配置文件
[root@server ~]# vim /etc/vimrc # 输入以下 内容
set nu # 永久设置行号
4.7. vim的异常处理
当我们在Vim模式编辑代码时,vim异常终止,当我们重新打开时,会发现文本变成一下内容:
此时我们一直按”↓“ 直到出现一下文字,根据文字做出回应
然后会到下图所示界面:按提示点击Enter键 ,此时我们就会回到原来的界面。
但当我们按wq保存并退出后,我们再次进入时,还会有如上提示,
若我们想在看到如上提示,我们一个直接删除交换文件
也就是第一幅图显示的 .ps.swp 方法如下:
此时,当我们再次用Vim打开ps文件编辑时,就不会在弹出一开始的界面了
4.8. 示例
使用vim编写c程序,实现编译运行
第一步:安装编译器:gcc
[root@server ~]# yum install gcc -y
第二步:编写c程序
[root@server ~]# vim test.c # 输入以下程序
#include <stdio.h>
int main(void)
{
int i,j;
for(i=1;i<10;i++)
printf("%d\t",i);
printf("\n");
for(i=1;i<66;i++)
printf("-");
printf("\n");
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
if(i>=j)
printf("%d\t",i*j);
printf("\n");
}
}
第三步:编译c源文件
[root@server ~]# gcc test.c
第四步:查看结果
[root@server ~]# ./a.out
六: 文件内容显示
1.浏览普通文件
1.1. 文件内容查看
1.1.1. cat 命令
作用:查看文件内容,适合数据量较少
格式:cat -参数 文件名
参数:
-n:显示行号,加上
-b:文件中所有非空行增加行号,编号从1开始
例:
查看主机域名映射文件: [root@server ~]# cat /etc/hosts
127.0.0.1 为回环地址
::1 为IPV6格式
扩展:win10系统的本地的域名映射文件
查看硬盘分区表以及挂载信息: [root@server ~]# cat /etc/hosts
使用参数 -n:显示行号(所有行都加),(命令作用显示全局性,局部性警告信息)
[root@server ~]# cat -n /etc/sos/sos.conf
使用参数 -b:文件中所有非空行增加行号,编号从1开始
[root@server ~]# cat -b /etc/sos/sos.conf
通过cat来实现文件的拷贝:
[root@server ~]# cat /etc/fstab > /root/q1/f1.txt
[root@server ~]# cat /root/q1/f1.txt通过cat来实现文件的追加:
[root@server ~]# cat /etc/passwd >> /root/q1/f1.txt
[root@server ~]# cat /root/q1/f1.txt通过cat来合并文件
1.1.2 扩展tac命令:
[root@server q1]# tac r3 将文本内容倒置输出:
1.1.3. more 命令
作用:翻页查看文件内容,适合内容较多的文件查看
格式:more 文件名
注意:使用回车则一行一行查看,使用空格则整页查看,点击q键退出查看
[root@server q1]# more -sp /etc/passwd # -sp 减少空白行,先清屏后输出
[root@server q1]# more /var/log/messages 查看日志
1.1.4. less命令
作用:同more命令
格式:less 文件名
注意:可以使用上下键进行浏览,点击q退出浏览
1.1.5. head命令
作用: 查看文档前n行的内容
格式:head -数字 文件名
例:[root@server q1]# head /etc/passwd # 默认查看文档前10行内容
[root@server q1]# head -5 /etc/passwd
1.1.6. tail命令
作用:查看文档后n行内容
格式:tail -参数 文件名
参数
-数字:查看倒数行数
-f:动态刷新, 实时显示日志文件并且能动态更新
例: [root@server q1]# tail /etc/passwd # 默认查看文档后10行内容
查看一行内容 :
[root@server ~]# tail -f /var/log/messages # 监视日志
[root@server ~]# head -6 /etc/passwd | tail -1 # 查看/etc/passwd第6行
1.2. 文件属性信息查看
1.2.1. file 命令
作用:查看文件类型
格式:file -参数 文件名
文件类型: ASCII
file :ASCII 文本字符文件
empty:空文件
block special :块设备文件
character special :字符设备文件
diretory:目录
1.2.2. stat 命令
作用:显示文件属性信息
格式:stat 文件名
注意:一般通过该命令查看大小、Inode、硬链接、软连接
2. 文件内容过滤显示—grep
作用: 在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用
格式: grep -参数 查找条件 文件名
2.1 参数
2.1.2例:
在passwd中检索包含root的行信息,并且带有行号
[root@server ~]# grep -n root /etc/passwd
在passwd检索不能登录的信息
[root@server ~]# grep -n /sbin/nologin /etc/passwd
# 在passwd中检索可以登录的账户信息
[root@server ~]# grep -nv "/sbin/nologin" /etc/passwd (反向)
# 检索包含“halt”的行及下3行信息
[root@server ~]# grep -nA3 "halt" /etc/passwd
# 检索包含“sshd”的行及上5行信息
[root@server ~]# grep -nB5 “sshd” /etc/passwd
# 检索包含“ftp”的行及上下2行
[root@server ~]# grep -nC2 “ftp” /etc/passwd
# 检索不能登录的账户个数
[root@server ~]# grep -c “/sbin/nologin” /etc/passwd
# 相当于 grep -n “/sbin/nologin” /etc/passwd | wc -l
# 检索包含大小写字母d的行信息
[root@server ~]# grep -ni "d" /etc/passwd
2.2. /etc/passwd文件含义
作用:
记录用户账户信息:共分为7段,使用冒号分割
含义:
文件内容意义:账户名:密码代号x:UID:GID:注释:家目录:SHELL
第7列/sbin/nologin:不允许登录
[root@server ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bashroot : x : 0 : 0 : root : /root : /bin/bash
账户名:密码代号x:UID:GID:注释:家目录:SHELL
密码代号x:密码加密后的代号
UID:账户ID
GID:工作组编号
SHELL:命令解释器。只要配有命令解释器/bin/bash就是可以登陆的账户
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 该解释器就是不可登陆的
[root@server ~]# tail -2 /etc/passwd
fox:x:1000:1000::/home/fox:/bin/bash::俩冒号中间没有任何内容代表,该普通账户没有任何注释。
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
2.2.3. 使用特殊符号匹配
2.2.3.4 例:
定位行首以a开头的(^后还可以加完整单词)
[root@server ~]# grep -n "^a" /etc/passwd
检索以“.”结尾的行
[root@server ~]# grep -n "\.$" /etc/fstab "\.$" $必须加在右侧
"\" (转义符 ) :将右侧的字符,赋予新功能或者回复到原有功能
由于“.”具有特殊含义,因此需要转义字符进行转义
过滤所有空白行:
[root@server ~]# grep -n "^$" /etc/sos/sos.conf
检索含有数字的行
[root@server ~]# grep -n [0-9] /etc/passwd
(精确匹配)就此处含义为数字范围1-9
[root@server ~]# grep -nw [1-9] /etc/passwd
检索含有字母的行
[root@server ~]# grep -n [A-Z] /etc/passwd
[root@server ~]# grep -ni [A-Z] /etc/passwd
[root@server ~]# grep -n [a-zA-Z] /etc/passwd (此处含义为忽略大小写)
3. 切割显示-cut
3.1. 作用:
cut命令用于按列提取文本内容
3.2. 格式 :
cut -d "分隔符" -f列数字 文件名
分隔符:分割的具体依据
3.3.
例:提取文件下的所有账户名
[root@server ~]# cut -d ":" -f1 /etc/passwd
例:提取IP地址
确定IP位置
[root@server ~]# ip a | grep ens160 | grep inet | cut -d "/" -f1 | cut -d " " -f6
# 注意空格
例:提取内核版本号:
[root@server ~]# uname -a | cut -d " " -f3
4. 排序显示-sort
4.1. 作用
sort命令用于对文本内容进行排序显示
4.2. 格式:
sort -参数 文件名
4.3. 参数
5. 去重显示-uniq
5.1. 作用
uniq命令用于去除文本中连续的重复行
5.2. 格式
uniq -参数 文件名
6. 文件中字符替换显示-tr
6.1. 作用
tr 指令从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出
6.2. 格式
tr -参数 替换内容 新内容
6.3. 参数
-c :反选设定字符,符合 “替换内容” 的部份不做处理,不符合的剩余部份才进行转换
-d :删除指令字符
-s :缩减连续重复的字符成指定的单个字符
6.4. 示例
小写字母全部转换成大写字母
[root@server ~]# cat /etc/passwd | tr a-z A-Z
七: 文件的其他操作命令
1. 文本内容统计wc
1.1. 作用
wc命令用于统计指定文本文件的行数、字数或字节数
1.2. 格式
wc -参数 文件名
1.3. 参数
1.4. 示例
统计所有
38 89 2136 /etc/passwd
行数· 单词数 字节数
配合管道符计算
显示文件数
2. 复制、移动文件
2.1. 复制文件或目录
2.1.1. 格式
cp -参数 源文件 目标文件
2.1.2. 参数
2.2. 移动文件或目录
2.2.1. 作用
mv命令用于剪切或重命名文件
2.2.2. 格式
mv [选项] 源文件名称 目标文件名称
2.2.3. 注意
1.剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。
2.如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作。
证明注意一:
[root@server q1]# ls f1.txt m1 r2 r3 t1 [root@server q1]# mv t1 /root/q1/m1/ [root@server q1]# ls f1.txt m1 r2 r3 [root@server q1]#
证明注意二:
[root@server q1]# cd m1 [root@server m1]# ls t1 [root@server m1]# mv t1 t5 [root@server m1]# ls t5 [root@server m1]#
3. 查找文件
3.1. 查找文件路径
3.1.1. whereis命令
作用:可以搜索系统命令的可执行文件路径和说明文档
格式:whereis 命令名
例:
3.1.2. which命令
作用:搜索系统命令的可执行文件
格式: which 命令名
例:
3.2. 查找文件-find
3.2.1. 作用
按照文件名、大小、时间、权限、类型、所属者、所属组 来搜索文件
3.2.2. 格式
find 查找路径 查找条件 具体条件 操作
3.2.3. 注意
1.find命令默认的操作是print输出
2.find是检索文件的,grep是过滤文件中字符串
3.2.4. 参数
3.2.5. 示例
1. 按照文件名搜索
-name:按照文件名搜索
-iname:按照文件名搜索,不区分文件名大小写
-inum:按照 inode 号搜索
没有那个文件或目录:find命令在执行时,在内存中自己产生的临时文件,执行完既消失
注意:搜索位置越大,消耗系统资源越多,在生产服务器上搜索的时候,尽量不在根目录下搜索,把 搜索的范围尽量控制在最小
# /目录下检索名为passwd的文件
[root@server q1]# find / -name "passwd" -print
# /etc下检索host开头的文件
[root@server ~]# find /etc -name "host*" -print
#在/目录查找以a开头文件
[root@server ~]# find / -name "a*"
# 在/目录中查找以b开头的不区分大小写的文件
[root@server ~]# find / -iname "b*"
# 在/etc目录下检索以b开头共4个字符的文件
[root@server ~]# find /etc -name "b???"
# 在/etc目录下检索第二个字母为c的文件
[root@server ~]# find /etc -name "?c*"
# /目录下检索扩展名为.cfg的文件
[root@server ~]# find / -name "*.cfg"
# /目录下检索扩展名为.txt的文件并统计个数
[root@server ~]# find / -name "*.txt" | wc -l
2. 按照文件大小搜索
-size [+|-]大小: 按照指定大小搜索文件,“+”的意思是搜索比指定大小还要大的文件, “-”的意思是 搜索比指定大小还要小的文件
单位:可以通过man find 查看size参数的单位
# 默认单位,如果单位为b或不写单位,则按照512 Byte搜索。
' b':for 512-byte blocks(this is the default if no suffix is used)
#搜索单位是c,按照字节搜索。
'c':for bytes
#搜索单位是w,按照双字节(中文)搜索。'w':for two-byte words
#按照KB单位搜索,必须是小写的k。
'k':for Kilobytes(units of 1024 bytes)
#按照MB单位搜索,必须是大写的M
'M':for Megabytes(units of 1048576 bytes)
#按照GB单位搜索,必须是大写的G
' G':for Gigabytes(units of 1073741824 bytes)
[root@server ~]# find / -size -1k |wc -l
[root@server ~]# find / -size +100M |wc -l
[root@server ~]# find . -empty | wc -l # 空文件 | 个数
3. 按照修改时间搜索
-atime [+|-]时间: 按照文件访问时间搜索
-mtime [+|-]时间: 按照文件数据修改时间搜索
-ctime [+|-]时间: 按照文件状态修改 时间搜索
-newer file: 把比file修改时间更新的文件列出来
注意:时间范围问题
-5:代表 5 天内修改的文件。
5:代表前 5~6 天那一天修改的文件。
+5:代表 6 天前修改的文件。
[root@master ~]# find / -mtime -10 -empty 10天以内的空文件
4. 按照权限搜索
-perm 权限模式: 查找文件权限刚好等于“权限模式”的文件 ,常用
-perm -权限模式: 查找文件权限全部包含“权限模式”的文件
-perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件
如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:
[root@server ~]# find . perm 755
[root@server ~]# find / -perm -4000
5. 按照所有者和所属组搜索
-uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件
-gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件
-user 用户名: 按照用户名查找所有者是指定用户的文件
-group 组名: 按照组名查找所属组是指定用户组的文件
-nouser: 查找没有所有者的文件 ,常用,主要用于查找垃圾文件,还有一种情况就是外来文件,比如 光盘和U盘中的文件如果是由Windows复制来的(也就是文件是由windows建立的),在Linux中查 看就是没有所有者的文件;再比如手工源码包安装的文件,也有可能没有所有者(由其他系统打的源 码包)
[root@server ~]# find . -user root
[root@server ~]# find / -nouser # 查看无所有者的文件
6. 按照文件类型搜索
-type d: 查找目录
-type f: 查找普通文件
-type l: 查找软链接文件
例:
[root@server ~]# find /dev -type b
[root@server ~]# find ~ -type d
[root@server ~]# find /dev -type c -size -10k
7.逻辑运算符
-a: and 逻辑与
-o: or 逻辑或
-not: not 逻辑非
优先级:与>或>非
[root@server ~]# find / -size +10k -a -size -50k | wc -l
[root@server ~]# find /etc -name "e*" -o -name "f*" | wc -l
[root@server ~]# find /etc -name "d*" -user root | wc -l # 默认为and
8. -exec参数
作用:
用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,类似于管道符,该参数必须 为带减号的长参数。
使用-exec命令结尾必须为\;
# 将/root 目录下的属于root账户的文件检索出来后拷贝到/目录下的find1目录中
[root@server ~]# find ~ -user root -exec cp -a {} /find1/ \;
4. 压缩和解压缩
4.1. zip和unzip命令
4.1.1. 格式:
zip FILE # 压缩
unzip FILE # 解压缩
例:
例1: 使用zip压缩文件test1.txt
[root@server test]# zip test1.zip test1.txt
# 压缩率为最高压缩test2.txt,-1 : 最快压缩,压缩率最差,-9 : 最大压缩,压缩率最佳 [root@server test]# zip -9 test2.zip test2.txt #
例2: 将当前目录dir1连同目录下文件一起压缩
[root@server test]# zip -r dir1.zip dir1
# 例3: 向压缩文件中test1.zip中添加test2. txt文件
[root@server test]# zip -m test1.zip test2.txt
# 例4: 删除压缩文件中的文件
[root@server test]# zip -d test1.zip test2.txt
# 例5: 压缩文件时排除某个文件
[root@server test]# zip test.zip *.txt -x test1.txt
# 例6: 解压文件test2.zip
[root@server test]# unzip test2.zip
# 例7:将压缩文件text.zip在指定目录dir1下解压缩
[root@server test]# unzip test.zip -d dir1
# 例8: 查看压缩文件目录,但不解压
[root@server test]# unzip -v test.zip
4.2. gzip命令
# 例1: 使用gzip压缩文件
[root@server test]# gzip test1.txt
# 例2: 使用gzip压缩目录下文件
[root@server test]# gzip -r dir1
[root@server test]# ls dir1
#注意: 以上压缩之后原始文件就没有了。
# 例3: 压缩但保留原始文件
[root@server test]# gzip -c test2.txt > test2.txt.gz
4.3. bzip2命令
# bzip2是更新的Linux压缩工具,比gzip有着更高的压缩率。
[root@server test]# bzip2 test3.txt
# 源文档不保留
[root@server test]# bzip2 -9 -c test3.txt > test3.txt.bz2
# 用最佳的压缩比压缩,并保留 原本的档案
4.4. xz、unxz命令
# 例1:压缩文件
[root@server test]# xz test5.txt
# 例2:压缩dir1目录下文件
[root@server test]# xz dir1/*
[root@server test]# ls dir1
# 例3:查看压缩文件内容
[root@server test]# xzcat test5.txt.xz test1
# 例4:解压缩(xz -d等价于unxz)
[root@server test]# unxz test5.txt.xz
5. tar归档命令
5.1. 格式
tar -参数 [args]……
5.2. 参数
5.2.1. 常用参数
5.2.2. 必选参数
5.2.3. 辅助参数
5.2.4. 额外参数
# 打包时排除某个文件 tar cf 文件名.
tar --exclude=路径/文件 路径
注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径
5.3. 格式
5.3.1. 打包
作用:
创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件
tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名
列出包文件中的文件列表
tar t[v]f 包文件名 `
5.3.2. 打包压缩
作用:
为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式
tar czf/-czf 文件名.tar.gz 要打包压缩的目录或文件名……
tar cjf/-cjf 文件名.tar.bz2 要打包压缩的目录或文件名……
tar cJf/-cJf 文件名.tar.xz 要打包压缩的目录或文件名……
提取包文件到指定目录
tar xf/-xf/-xzf 文件名.tar.gz [-C 目标路径]
tar xf/-xf/-xjf 文件名.tar.bz2 [-C 目标路径]
tar xf/-xf/-xJf 文件名.tar.xz [-C 目标路径]
5.4. 示例
将/etc下所有内容打包压缩到/root目录中
[root@server ~]# tar -cvf taretc.tar.gz /etc
解压缩
[root@server ~]# mkdir temp
[root@server ~]# mv taretc.tar.gz temp
[root@server ~]# cd temp
[root@server temp]#
[root@server temp]# tar -xvf taretc.tar.gz
注意:参数中-c 与 -x 不能同时使用