注意: 在使用Linux系统命令时严格区分大小写
使用命令语法: 命令 [-选项] [参数] 其中括号里面的内容有时候可以省略
# 查看目录中文件和命令
ls . 查看当前目录中文件和目录,其中 . 可以省略不写
ls -l 查看当前目录中文件和目录的详细信息
ls -a 查看当前目录中的所有文件(包含隐藏文件,隐藏文件都是以 . 开头的)
ls -R 递归查看当前目录中的所有文件和子目录
ls 路径 -l
或
ls -l 路径
路径写相对路径或者绝对路径都可以
查看指定路径中的文件和目录,其中-l可以省略或换为-a或-R,和上面作用是一样的
组合使用(可以加上路径):
ls -la 查看当前目录中所有文件的详细信息
ls -lR 递归详细查看当前目录中的所有文件和子目录的信息
ls -aR 递归查看当前目录中及其子目录中所有文件的列表(包含隐藏信息)
ls 路径 -la 或 ls -la 路径
路径写相对路径或者绝对路径都可以
# 清屏
clear 清空当前页面
# 关于 ls -l 显示的当前目录中文件和文件夹的详细信息的解析
-rw-r--r--. 1 root root 0 4月 20 15:50 aa.txt
-rw-------. 1 root root 1257 4月 20 2022 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 4月 20 15:51 bb
首先第一段有10位,其中第1位代表文件的类型 -代表是一个文件 d代表是一个目录(也就是文件夹)
接下来的9位中每3位构成了一个权限,总共是9位
第一个3位: 代表当前文件创建者的操作权限 r(读) w(写) x(执行)
第二个3位: 代表当前文件创建者的同组用户对文件的操作权限
最后的3位: 代表当前文件创建者的不同组用户对该文件的操作权限
1代表它在机器上的链接数,硬链接代表把文件进行拷贝,软链接代表快捷方式,1代表硬链接数为1,即只有它自己,
一般文件链接数为1,目录(文件夹)链接数为2
第一个root代表当前文件是谁创建的,第二个root代表创建这个文件的用户属于哪个组,Linux是基于组进行管理
文件的,root用户属于root组
之后的0代表文件的大小
再之后就是文件最后一次修改的时间
最后就是文件(或者是文件夹)的名字
# 关于路径的相关指令
cd 路径名 : 进入指令路径(绝对路径或者相对路径都可以)
pwd : 显示当前所在路径
回到 root 用户的家目录,即 /root
cd /root 或 cd ~ 或 cd
# 创建文件
touch 文件名 : 在当前目录创建文件
touch 路径/文件名 : 在指定路径中创建文件,路径写绝对路径或者相对路径都可以
同时创建多个文件,直接在后面接就可以了
对于touch创建文件的指令来说,如果文件不存在,那就是创建文件,如果文件存在,会修改文件的创建时间,但是文件里面的内容不会改变
补充:Tab键可以尽量自动补全
# 创建目录(文件夹)
mkdir 目录名 : 在当前目录下创建一个目录(文件夹)
mkdir 路径/目录名 : 在指定目录下创建目录
同时创建多个目录,直接在后面接就可以了
上面的两种方式只能创建单级目录,即父目录必须存在
如果想要创建多级目录,我们需要 -p 参数(parents) :
ls 路径 -p : 路径中存在的目录不会再创建,路径中不存在的目录会被创建,可以创建多级目录
# 复制文件或目录相关的命令
cp 文件名 路径名 : 复制文件到指定目录
cp 路径/文件 路径名 : 复制指定路径中的文件到指定路径
不过上面两种方式都只能复制文件,如果想要复制目录(文件夹),需要加上 -r 参数,加上 -r 参数
之后复制文件或者目录都可以
cp 目录 路径名 -r : 复制目录(文件夹)到指定目录
cp 路径/目录 路径名 -r : 复制指定目录中的目录(文件夹)到指定目录
# 移动文件或目录、文件或目录改名(move)
mv 文件名 新文件名 : 文件改名
mv 文件名 目录名 : 文件移动
mv 目录名 不存在目录名 : 目录改名
mv 目录名 已存在目录名 : 目录移动
# 删除文件或目录
rm 文件名 : 删除当前目录下指定文件
rm 目录名 : 删除当前目录下指定目录(文件夹)
当然也可以删除指定目录下的文件或目录( rm 路径/文件 )( rm 路径/目录 )
上面这两种在删除时有友情提醒,输入指令之后根据提示输入 y 才会删除
-r 加上这个参数之后就可以删除目录了,但是只加上这个参数会有友情提示,加上f参数就没有友情提示了
-f 强制删除文件或目录(force),没有友情提醒
rm -rf 文件名 : 强制删除当前目录下指定文件,且没有友情提示
rm -rf 目录名 : 强制删除当前目录下指定目录,且没有友情提示
rm还支持通配删除
rm -rf *.txt : * 是通配符,删除当前目录下所有txt文件
# 删除空目录
rmdir 空目录名 : 删除当前目录下的指定空目录
这个目录不常用,因为我们一般都是使用 rm -rf 命令进行删除的
# 显示文本文件内容
cat 文本文件名 : 展示当前目录的文本文件名
如果文本文件的内容多于一屏,它会快速的展示一下,根本没法看,
所以一般cat只是用来展示内容少于一屏的文本文件
# 按照百分比或分页展示文件内容
more 文件名 : 按照百分比展示当前目录指定文件的内容,按 q 键退出
不过more的话只能往下翻,不能往上翻,不太方便
less 文件名 : 分页展示当前目录中的指定文件
less可以分页,可以往前可以往后,比more方便一些,也是按 q 键退出
# 查看文件开头或结尾的部分
默认展示前10行数据
head aa.txt : 查看当前目录下aa.txt文件的前10行内容
tail aa.txt : 查看当前目录下aa.txt文件的末尾10行内容 :
查看指定行数
head -n 5 aa.txt : 查看当前目录下aa.txt文件的前5行内容
tail -n 5 aa.txt : 查看当前目录下aa.txt文件的末尾5行内容
# 实时读取文件的内容
tail -f aa.log
比如说监听日志就可以用这个命令,日志追加在尾部,就可以监听日志尾部的变化
# 输出命令
echo 内容 : 输出一句话到屏幕
echo i love you
echo "i love you"
echo ”i love you” >> aa,txt : 将内容输出(写入)到文本中
echo i love you >> aa,txt : 将内容输出(写入)到文本中
# 查看本机ip地址
ip addr
addr是address的缩写,其实addr还可以缩写为a,就可以查看本机ip地址
简化:
ip -a
# 测试网络连通性
ping ip地址
查看和指定ip地址的主机是否连通
ping www.baidu.com
# 在Linux系统中建立压缩文件或者解压文件
tar命令
-c 建立一个压缩文件的参数指令(create),以 .tar 结尾,只有-c参数的话只是打包,没有压缩
-x 解压缩的参数指令(extract)
-z 是否需要用 gzip 压缩, 加上这个参数日后文件名以 .tar.gz 结尾 加上-z的话代表压缩
-v 压缩的过程中显示文件(verbose),相当于进度条,压缩到哪个文件了
-f 使用档名,在 f 之后要立即接档名(file),即指定打包之后的名字,所以f在参数中一定要在最后
tar -cf Linux.tar aa.txt bb.txt cc.txt
打包的名字为Linux.tar 将 aa.txt bb.txt cc.txt 进行打包
-cf 参数表示
只是打包,并指定打包文件的名字,不使用gzip压缩,也不显示压缩过程中的进度
tar -xf Linux.tar
解压Linux.tar
tar -cvf Linux.tar aa.txt bb.txt cc.txt
打包时显示日志内容,即将哪些文件打包了
tar -xvf Linux.tar
解压包时显示压缩包中的文件内容(即解压出了哪些文件)
`通常组合使用:`
tar -zcvf aaa.tar.gz file1.txt file2.txt 将file1和2打包成aaa.tar并压缩,最后文件名为 aaa.tar.gz
tar -zxvf aaa.tar.gz file1.txt file2.txt 将aaa.tar.gz解压
# systemctl (centos独有的)
system control 系统控制命令,主要用来控制系统服务的重启、关闭、停止、查看服务的运行状态
(类似于windows中开启、关闭mysql服务的作用)
systemctl status 服务名 说明:查看某个服务的运行状态
systemctl start 服务名 说明:启动某个服务
systemctl restart 服务名 说明:重启某个服务
systemctl stop 服务名 说明:停止某个服务
systemctl status|start|stop|restart 服务名 mysqld firewalld(防火墙) network(网络)
systemctl start mysqld : 启动mysql
systemctl start firewalld : 启动防火墙
systemctl start netword : 启动网络服务
# 静态显示运行的进程有哪些
ps 询问在当前控制台(桌面)上运行的进程
ps -aux 说明:查询系统中所有运行的进程,包括后台进程,其中参数a是所有进程,参数x表示不显示占用控制台的进程,参数u显示用户。
用户 进程id(pid) 进程名
root 600 0.0 0.0 0 0 ? S< 08:15 0:00 [xfs-log/sda1]
ps -ef 说明:查询系统中所有运行的进程,包括后台进程,而且可以显示出每个进程的父进程号。
用户 进程id 父进程id
root 2082 2 0 12:03 ? 00:00:00 [kworker/0:1]
搜索进程 [用的比较多]
ps -aux|grep 进程名(或者是服务名或者是关键字,比如tomcat)
例如:
ps -aux|grep redis
# 动态显示系统进程
直接输入 top 就可以动态的显示进程信息
top
# 杀死进程
kill 进程id
kill 3029 说明: 上述命令中3029是进程号;一般在执行kill命令之前,先用ps或pstree来查询
一下将要被杀掉的进程的进程号。
kill -9 3029 说明: 有些系统进程使用 kill 杀不死的时候,加上 -9 参数强制杀死。强制终止
3029号进程的运行,其中参数-9代表强制的意思,实际上kill命令是向该进程发
送信号,该进程接到信号后决定是否停止运行,有些守护进程必须要收到参数9才
终止运行。
vi/vim 是Linux系统最常用的文本编辑器而且功能非常强大。vim是vi的增强版,支持高亮,两者语法是一样的
# 常用命令:
i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
上面的这些字母在命令模式下按都可以进入编辑模式
----------------重点---------------------------
:set nu 显示行号
:set nonu 取消行号
gg 到文本的第一行
G 到文本的最后一行
:n 快速定位到文本的第n行
------------------重点-------------------------
u 撤销,undo,取消上一步操作
Ctrl + r 把撤销的内容恢复回来,redo,返回到undo之前
-------------------重点------------------------
Shift+ zz 保存退出,与“:wq”作用相同
:q 退出不保存
:q! 强制退出不保存
:wq 保存退出
:wq! 强制保存退出
RPM命令
(所有Linux版本都支持)
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便,
# rpm 命令(在没网的情况下也可以操作)
常用参数:
i:安装应用程序(install)
e:卸载应用程序(erase)
vh:显示进度;(verbose hash)
U:升级软件包;(update)
qa: 显示所有已安装的软件(query all)
用来操作以 .rpm 结尾的安装包
安装并显示进度
rpm -ivh xxxx.rpm
卸载并显示进度
rpm -evh xxxx.rpm
更新安装包
rpm -Uvh xxx.rpm
显示所有已安装的软件
rpm -qa
YUM命令
(centos独有的)
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
# yum命令(要求必须联网)
例子:
安装
yum install gcc-c++
卸载
yum remove gcc-c++
更新
yum update gcc-c++
yum install|remove|update 依赖名称
使用YUM命令必须连接外部网络
# 查看当前用户
whoami
# 查看登录用户
who 查看登录的用户、登录时间等
-m或am I 只显示运行who命令的用户名、登录终端和登录时间
-q或--count 只显示用户的登录账号和登录用户的数量
# 退出用户
exit
# 添加、删除组账号
groupadd user 添加一个user组
groupdel user 删除user组
一个组中有着不同的用户
# 添加用户账号
创建一个用户,并指定这个用户属于哪个组
useradd xiaochen -g 指定的组名称
说明:如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
# 设置用户密码
设置指定用户的密码
passwd 用户名
# 切换用户
su 用户名
Linux文件有
三种
典型的权限,即r读权限、w写权限和x执行权限
。在长格式输出中在文件类型的后面有9列权限位,实际上这是针对不同用户而设定的。r=4,w=2,x=1
# 修改文件的权限
chmod
创建者: u 同组用户: g 其他组用户: o
a = user + group + other (a是all的缩写)
对于指定文件给创建用户加上执行权限
chmod u+x aa.txt
对于指定文件给创建用户加上读,写,执行权限,给同组用户加上读,写,执行权限,给其他组用户加上读,写,执行权限
chmod u+rwx,g+rwx,o+rwx 文件名
和
chmod a+rwx 文件名
是等价的,都可以执行,效果是一样的
对于指定文件撤销所有用户对这个指定文件的所有权限
chmod a-rwx 文件名
字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] 含义
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组( group )者,即用户组
o other 表示其他以外的人
a all 表示这三者皆是
[ +-= ] 含义
+ 增加权限
- 撤销权限
= 设定权限
rwx 含义
r read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
w write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
x excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。
设置权限
数字法: 4读 2写 1执行
1位数字代表三位权限,看总和,总和是7,代表读、写、执行权限都有
第1位数字代表创建该文件的用户对该文件的权限
第2位数字代表同组用户对该文件的权限
第3位数字代表其他组用户对于改文件的权限
如果文件是6,但是chmod是6,则文件权限是6(相当于数字也可以用来修改、撤销权限)
chmod 777 文件名
注意:保证虚拟机中的Linux可以上网的前提是宿主机可以上网
# 0. 配置当前虚拟机中Linux网络服务为NAT模式
NAT模式下可以和宿主机共享网络,不过之前我们在搭建的时候就是NAT模式,
所以这一步可以省略
# 1.设置linux获取ip地址 (编辑网络配置文件)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改ens33配置文件:
最后一行,设置为每次启动网络服务自动获取ip地址
ONBOOT=yes
之后退出保存
# 2.重启启动网路服务加载修改配置生效
systemctl restart network
# 3.查看ip地址
ip a
# 5.此时ip已经获取
ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:07:16:9e brd ff:ff:ff:ff:ff:ff
inet 192.168.202.136/24 brd 192.168.202.255 scope global noprefixroute dynamic ens33
valid_lft 1459sec preferred_lft 1459sec
inet6 fe80::b22b:7e01:db87:52fe/64 scope link noprefixroute
其中 192.168.202.136 就是 虚拟机在网络中的 ip 地址
# 6.测试外部网络连通(保证宿主机windows可以上网前提)
ping www.baidu.com
为了使用方便,我们一般使用securyCRT连接工具
具体操作在前面的博客里有:关于虚拟机中centos7的搭建以及如何配置上网