Linux概述
Linux内核:开源,提供Linux系统的主要功能,如硬件调度管理功能;
Linux系统发行版:内核+系统级应用程序。
虚拟机
虚拟化软件(VMware)
下载地址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
确认网卡:VMware Network Adapter VMnet1 和VMware Network Adapter VMnet8,没有是无法上网的
安装Linux系统
SSH远程软件:FinalShell官网:http://www.hostbuf.com/
WSL
wsl(windows Subsystem for linux):可以在windows系统中获得Linux系统,并完全直连计算机硬件,无需通过虚拟机虚拟硬件。
下载系统:window商店下载Ubuntu
下载终端程序:Windows Terminal
虚拟机快照
通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态;
快照制作需要虚拟机关机状态下(不关机也可以,但是比较慢,建议关机)
Linux常用基础命令
ls命令
作用:列出目录下的内容;
语法:ls [-a -l -h] [linux路径]
- -a选项:表示all的意思,即列出全部文件(包含隐藏的文件/文件夹)
- -l选项:表示以列表(竖向排列)的形式展示内容
- -h选项:表示以易于阅读的形式,列出文件大小,必须搭配-l使用
命令的选项可以组合使用
如:ls -lah
,ls -l -a -h
cd/pwd命令
语法:cd [linux路径]
- cd命令不写参数,表示回到用户HOME目录
- cd命令写参数,表示要切换到哪个目录下
- pwd命令查看当前所在的工作目录
相对、绝对路径
特殊路径符:
- . 表示当前目录,
- .. 表示上一级目录,比如cd .. 切换到上一级目录,cd ../.. 切换到上二级的目录;
- ~ 表示HOME目录,比如cd ~切换到HOME目录,cd ~/Desktop,切换到HOME内的Desktop目录
mkdir命令
作用:创建新的目录(文件夹)
语法:mkdir [-p] [linux路径]
mkdir file
:创建文件夹file;相对路径mkdir /home/xmh/file
:创建文件夹file;绝对路径mkdir ./file
:在当前目录下创建文件夹file;mkdir ~/file
:在home目录内创建文件夹file;mkdir -p xmh/aa/file
:[-p]选项可以一条链创建文件夹,创建多层级目录
注意:创建文件夹只能在home目录内,mkdir /xmh会提示权限不够,涉及权限管理
touch命令
作用:创建新的文件(文件),不同于mkdir
语法:touch [linux路径]
cat命令
作用:查看文件内容,也可以查看目录
语法:cat [linux路径]
more命令
作用:查看文件内容,同cat不同的是more支持翻页,如果内容多的话,可以一页一页显示
语法:more [linux路径]
系统内置文件:/etc/services,可以展示more命令的功能,按空格翻页,回车一次显示一行,通过q退出
cp命令
作用:复制文件和文件夹
语法:cp [-r] 参数1 参数2
-r选项:可选,用于复制文件夹使用,表示递归
- 参数1:Linux路径,表示被复制的文件/文件夹
- 参数1:Linux路径,表示要复制去的地方
mv命令
作用:移动文件和文件夹
语法:mv 参数1 参数2
- 参数1:Linux路径,表示被移动的文件/文件夹
- 参数1:Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在;
rm命令
作用:删除文件和文件夹
语法:rm [-r -f] 参数1 参数2...参数n
- -r选项:同cp命令一样,用于删除文件夹
- -f选项:表示强制删除force,普通用户不会弹出提示,root用户会提示
- 参数1:表示被删除的文件/文件夹路径,空格隔开
rm命令支持通配符*,用来做模糊匹配,
test*
:以test开头*test
:以test结尾*test*
:包含test
which命令
which查看所使用的命令的程序文件在哪个文件夹下
which cd
:查找cd命令的程序文件存放在哪
find命令
作用:按文件名或文件大小查找文件
语法:find 起始路径 -name "被查找的文件名"
语法:find 起始路径 -size +|-n[kMG]
- 起始路径/:表示全盘搜索
- +、-:表示大于或小于
- n:表示数字大小
- kMG:表示大小单位,k=kb,M=MB,G=GB
查找文件名为xmh的文件:find / -name "xmh"
查找大于100M的文件:find / -size +100M
find命令也支持通配符*,用来做模糊查询
grep命令
作用:从文件中通过关键字过滤文件行
语法:grep [-n] 关键字 文件路径(可作为管道符的输入)
-n选项:表示在结果中显示匹配行的行号
关键字:建议用" "
包围起来
例:grep -n "my" xmh/b.txt
wc命令
作用:统计文件的行数、单词数量等
语法:wc [-c -m -l -w] 文件路径(可作为管道符的输入)
- -c:统计bytes数量;
- -m:统计字符数量;
- -l:统计行数;
- -w:统计单词数量; word
管道符 |
含义:将管道符左边命令的结果,作为右边命令的输入
例:cat b.txt | grep -n "hello"
例:ls ~ | wc -l
例:cat b.txt | grep -n "i" | grep -n "my"
echo命令
作用:在命令行内输出指定内容
语法:echo 输出内容
例:echo "hello linux"
建议用双引号包围
反引号
作用:将反引号包围的内容作为命令执行
例:echo `pwd`
输出当前文件的目录路径
重定向符
- >,将左侧命令的结果,覆盖写入右侧指定的文件中
- >>,将左侧命令的结果,追加写入右侧指定的文件中
例:echo "hello Linux" > xmh.txt
覆盖原先内容
echo "hello Linux" >> xmh.txt
追加内容
tail命令
作用:可以查看文件尾部的内容,跟踪文件的最新修改
语法:tail [-f -num] Linux路径
- -f,表示持续跟踪,可以实时看到文件的尾部追加内容,快捷键ctrl+c停止跟踪
- -num,表示查看尾部多少行,默认10行
vi\vim编辑器
vim是vi命令的进阶版,后续全部使用vim
语法:vim 文件路径
命令模式下快捷命令:
- /,进入搜索,取消高亮:底线模式下输入:nohl。显示高亮输入:set hlsearch
- n,向下搜索
- N,向上搜索
- 按ESC,鼠标定位要删除的行,快速按两下d,删除整行
- 删除1-10行:1,10d
底线命令模式:
- :wq,保存并退出
- :q,仅退出
- :q!,强制退出
- :w,仅保存
- :set nu,显示行号
- :set paste,设置粘贴模式
Linux用户和权限
su - root
:切换到root用户得到最大权限
但是不建议长期使用root用户,避免带来系统损坏
sudo命令
作用:为普通账户授权临时以root身份执行
语法:sudo 其他命令
在用其他命令前,带上sudo,即为这条命令临时赋予root权限,sudo mkdir test
但是不是所有用户都有权限使用sudo,需要为普通用户配置sudo认证
为普通用户配置sudo认证
- 切换到root用户,执行
visudo
命令,vi编辑器会自动打开/etc/sudoers - 在文件最后添加:
xmh ALL=(ALL) NOPASSWD: ALL
其中xmh
表示要授权的用户,NOPASSWD: ALL
表示使用sudo命令无需输入密码,最后通过:wq
保存。
用户、用户组管理
用户组管理
以下命令需要root用户执行
- 创建用户组:
groupadd 用户组名
- 删除用户组:
groupdel 用户组名
用户管理
- 创建用户:
useradd [-g -d] 用户名
-g选项,指定用户的组,不指定会创建同名的组并自动加入,指定-g需要组已经存在,如果已经存在同名组,必须用-g;
-d选项,指定用户HOME路径,不指定,HOME默认在:/home/用户名
- 删除用户:
userdel [-r] 用户名
-r选项,删除用户的HOME目录,不使用-r,则保留
- 查看用户所属组:
id [用户名]
参数:用户名可不提供,表示查看自身
- 修改用户所属组:
usermod -aG 用户组 用户名
,将指定用户加入指定用户组
getent命令
语法:getent passwd
查看系统中有哪些用户
共7分信息:用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
语法:getent group
查看系统中有哪些用户组
共3分信息:用户组名:密码(x):用户组ID
认知权限信息
drwxr-xr-x解析:
- d、-、l:d表示文件夹,-表示文件,l表示软链接
- rwx:表示所属用户的权限
- r-x:表示所属用户组的权限,-表示没有此权限
- r-x:表示其他用户的权限
第一个xmh表示文件所属用户。第二个用户表示文件所属用户组
- r,针对文件查看文件内容;针对文件夹可查看文件夹内容,如ls命令;
- w,文件、文件夹可修改权限;
- x,针对文件表示可作为程序执行,文件夹表示可进入,如cd命令
修改权限控制chmod
作用:修改文件、文件夹的权限信息
注意:只有文件、文件夹的所属用户或root用户可以修改
语法:chmod [-R] 权限 文件/文件夹
-R选项,对文件夹内的全部内容应用同样的操作
例:chmod u=rwx,g=rx,o=r a.txt,将文件权限修改成rwxr-xr--
- 其中u表示user所属用户权限,g表示group组权限,o表示other其他用户权限
简化写法:chmod 754 a.txt
r=4,w=2,x=1,二进制计算
修改权限控制chown
作用:修改文件、文件夹的所属用户和用户组
语法:chown [-R] [用户]:[用户组] 文件/文件夹
-R选项,同chmod命令一样,对文件夹内的全部内容应用同样的操作
例:chown root a.txt
,将a.txt所属用户修改为root
chown :root a.txt
,将a.txt所属用户组修改为root
chown root:root a.txt
,将a.txt所属用户和用户组都修改为root
Linux实用操作
各类小技巧(快捷键)
- 强制停止:ctrl+c
- 退出或登出:ctrl+d
- 历史命令搜索:history
- 匹配历史命令:ctrl+r,输入内容匹配,回车执行,键盘左右键,得到此命令(不执行)
- !命令前缀,自动匹配上一个命令
- ctrl+a,光标移动到命令开始,ctrl+e,光标移动到命令结束
- ctrl+👈,左跳单词,ctrl+👉,左跳单词
软件安装
yum命令
作用:RPM(.exe、.apk)包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖的问题。
语法:yum [-y] [install | remove | search] 软件名称
- 选项-y,表示自动确认,不需要手动确认安装或卸载过程
yum命令需要root权限,需要联网
例:yum -y install wget
,通过yum安装wget程序,wget这个命令可以从网上下载东西,Linux没有内置
yum -y remove wget
,通过yum卸载wget程序
yum search wget
,通过yum查找是否有wget程序
在WSL环境中,Ubuntu系统是使用apt进行软件安装的,语法、权限和Centos一样。
systemctl命令
作用:systemctl命令控制软件(内置或第三方)启动、停止、开机自启
语法:systemctl start | stop | status | enable | disable 服务名称
启动 停止 状态 开启开机自启 关闭开机自启
系统内置服务如:
- NetworkManager,主网络服务
- network,副网络服务
- firewalld,防火墙服务
- sshd,ssh服务(FinalShell远程登陆Linux系统使用的就是这个服务)
第三方软件:
yum -y install ntp
,可以通过ntpd服务名,配合systemctl控制,时间同步的服务
yum -y install httpd
,可以通过httpd服务名,配合systemctl控制,apache服务器软件
部分软件安装后没有自动集成到systemctl中,我们可以手动添加
软链接
作用:在系统中创建软链接,可以将文件、文件夹链接到其他位置,类似快捷方式
语法:ln -s 参数1 参数2
- -s选项,创建软链接
- 参数1,被链接的文件或文件夹
- 参数2,要链接去的目的地
例:ln -s `pwd`/aa ~/abc
将当前文件夹下的aa文件链接到根目录下的abc文件
日期和时间
查看系统时间
语法:date [-d] [+格式化字符串]
- -d选项,按照给定的字符串显示日期,一般用于日期计算
%Y:年 %m:月 %d:日 %H:小时 %M:分钟 %S:秒
例:date +%Y-%m-%d
,输出:2023-06-11
例:date "+%Y-%m-%d %H:%M:%S"
,中间有空格,需要用双引号包围起来
例:date -d "+1 day" +%Y-%m-%d
,显示后一天的日期
例:date -d "+1 year" +%Y-%m-%d
,显示后一年的日期
修改Linux时区
使用root权限,执行以下命令,修改时区为东八区时区(CST)
rm -f /etc/localtime 删除系统自带的时区文件
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntp程序自动校准
- 安装ntp程序:
yum -y ntp
- 开启ntp:
systemctl start ntpd
- 开机自启:
systemctl enable ntpd
也可以手动校准(需要root权限):ntpdate -u ntp.aliyun.com
IP地址和主机名
通过ifconfig
命令查看本机ip地址,如果无法使用该命令,可以安装:yum -y install net-tools
通过hostname
命令查看主机名,主机名修改:hostnamectl set-hostname 主机名
配置主机名映射
虚拟机配置Linux系统固定IP
- 在VMware Workstation中配置IP地址和网段(IP的地址范围);
- 在Linux系统中手动修改配置文件,固定IP。
使用vim /etc/sysconfig/network-scripts/ifcfg-ens33
文件,填入以下内容:
BOOTPROTO="dhcp"改成"static" 添加以下内容
IPADDR="192.168.217.130" ---IP地址
NETMASK="255.255.255.0" ---掩码
GATEWAY="192.168.217.2" ---网关
DNS1="192.168.217.2" ---DNS
执行:systemctl restart network重启网卡
网络请求和下载
ping命令
作用:检查指定的网络服务器是否是可联通状态
语法:ping [-c num] ip或主机名
- -c选项,检查的次数,不使用则无限检查
wget命令
作用:可以在命令行内下载网络文件
语法:wget [-b] url
- -b选项,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
下载的文件直接存在根目录下
tail -f wget-log
命令可以持续跟踪下载进度
curl命令
作用:下载文件(和wget命令一样)、获取信息等
语法:curl [-O] url
- -O选项,用于下载文件,当url是下载链接时,可以使用此选项保存文件。
例:curl cip.cc
获取主机的公网IP
端口
安装nmap:yum -y install nmap
查看Linux端口占用情况:nmap 127.0.0.1
,查看指定IP地址对外暴露的端口
查看指定端口占用情况:netstat -anp | grep 22
进程
作用:查看Linux系统中的进程信息
语法:ps [-e -f]
- -e选项,显示全部进程
- -f选项,以完全格式化的形式展示信息
可以通过管道符过滤进程:ps -ef | grep mysql
关闭进程:kill -9 进程ID
-9选项,表示强制关闭进程
主机状态
通过top命令查看CPU、内存使用情况,类似Windows任务管理器
查看磁盘使用情况:df [-h]
- -h选项,以更人性化的单位显示
磁盘速率
语法:iostat [-x] num1 num2
- -x选项,显示更多信息
- num1,刷新间隔
- num2,刷新次数
网络状态监控
语法:sar -n DEV num1 num2
- -n选项,查看网络,DEV表示查看网络接口
- num1,刷新间隔
- num2,刷新次数
环境变量
执行env命令可查看系统环境变量
$符可以取出变量值:echo $HOSTNAME
自行设置环境变量:
- 临时:export 变量名=变量值
- 永久生效:
- 针对当前用户生效,配置在当前用户的:~/.bashrc文件中
vim ~/.bashrc
添加一行:export myname="hello linux"
- 针对所有用户生效,配置在系统的:/etc/profile文件中
- 并通过语法:source 配置文件,进行立即生效,或者重新登陆finalshell
mkdir myenv
新建文件夹touch myenv/mkhaha
新建文件echo "echo "哈哈哈哈"" > mkhaha
设置文件执行内容chmod 744 mkhaha
改变文件权限为可执行vim /etc/profile
添加一行:export PATH=$PATH:/root/myenv
source /etc/myenv
使配置文件生效mkhaha
输出”哈哈哈哈”
上传、下载
- FinalShell软件的下方窗体,提供了Linux的文件视图,可以和本机进行上传和下载
- 也可以通过命令进行文件传输
- rz、sz命令需要安装,
yum -y install lrzsz
- rz:上传
sz:sz a.txt
下载
压缩和解压
Linux系统常见三个压缩格式:zip、tar、gzip
- .tar,简单封装,没有太大的文件体积减少
- .gz,可以极大减少文件体积
tar命令
语法:tar [-c -v -x -f -z -C] 参数1...参数N
- -c,创建压缩文件,用于压缩模式; create
- -v,显示压缩和解压的进程,用于查看进度; view
- -x,解压模式;
- -f,要创建的文件或要解压的文件,-f必须在所有选项中位置处于最后一个
- -z,gzip模式,不使用-z就是普通的tarball格式,一般处于选项第一个位置
- -C,选择解压的目的地,用于解压模式,单独使用
例:tar -cvf a.tar a.txt
将a.txt压缩成a.tar
tar -zcvf a.gz a.txt
将a.txt压缩成a.gz
tar -xvf a.tar
将a.tar压缩到当前目录下
tar -xvf a.tar -C /home/xmh
将a.tar解压到指定目录
tar -zxvf a.gz -C /home/xmh
以Gzip模式解压a.gz到指定目录
zip命令
作用:压缩文件为zip的压缩包
语法:zip [-r] 参数1...参数N
- -r选项,被压缩的文件包含文件夹的时候要加上,和rm、cp等命令的-r一样
例:zip a.zip a.txt
将a.txt文件压缩成a.zip
unzip命令
作用:解压zip的压缩包
语法:unzip [-d] 参数
- -d选项,表示要解压去的位置
例:unzip a.zip
将a.zip解压到当前目录下
unzip a.zip -d /home/xmh
将a.zip解压到指定目录下
评论