Linux再学!
第三篇Linux入门
一.linux基本指令
1.Linux根目录为/,后续路径用/分隔,如/home/admin
2.Linux命令
-
基础格式:
command: 命令本身
-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等 -
ls命令
- :
ls表示展示当前目录下文件信息
-alh为可选项
-a:表示列出全部文件(包括隐藏文件)
-l:以列表形式展示,并输出权限等更多信息
-h:列出文件大小,更加便于阅读<必须搭配-l一起使用> -
cd命令
切换到指定路径下<需要有执行权限> -
pwd命令
语法就为:pwd
查看当前所在工作目录<防迷路> -
特殊路径符
. 表示当前目录 cd ./Desktop
.. 表示上一级目录, cd .. 切换到上一级目录
~ 表示当前用户的home目录 cd ~ -
mkdir命令
mkdir用于在指定路径下创建目录(文件夹)
-p:表示自动创建不存在的父目录,适用于创建连续多层级的目录<递归创建文件> -
touch命令
用于创建文件<mkdir创建文件夹> -
cat命令
查看文件内容<文本格式> -
more命令
cat是直接将内容全部显示出来
more支持翻页,如果文件内容过多,可以一页页的展示
空格进行翻页,按q即可退出查看 -
cp命令
可以用于复制文件\文件夹
参数1,Linux路径,表示被复制的文件或文件夹
参数2,Linux路径,表示要复制去的地方
-r用于复制文件夹,递归复制文件夹内所有文件 -
mv命令
用于移动文件\文件夹(或者重命名)
参数1,Linux路径,表示被移动的文件或文件夹
参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在 -
rm命令
用于删除文件、文件夹
-r 选项用于删除文件夹
-f 表示force,强制删除(不会弹出提示确认信息)
参数可多个,表示删除多个文件
rm -rf /* -
which命令
可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里 -
find命令
查找文件名叫做:test的文件,从根目录开始搜索: find / -name "test"<可以模糊查询> -
find可选项还有"-size",格式如下:
+、- 表示大于和小于
n表示大小数字
kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
从根目录下查找小于10KB的文件: find / -size -10k -
grep命令
可以通过grep命令,从文件中通过关键字过滤文件行。
选项-n,可选,表示在结果中显示匹配的行的行号。
关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用””将关键字包围起来。
文件路径,必填,表示要过滤内容的文件路径。 -
wc命令
-c,统计bytes数量 count
-m,统计字符数量 number
-l,统计行数 line
-w,统计单词数量 word count
不带可选项则全部信息输出<分别为:行数,单词数,字节数> -
管道符|
管道符的含义是:将管道符左边命令的结果,作为右边命令的输入
-
echo命令
可以使用echo命令在命令行内输出指定内容<类似printf>
PS:我们可以通过将命令用反引号(通常也称之为飘号)`将其包围被该符号包围的内容,会被作为命令执行,而非普通字符
-
重定向符 > >>
单个>: 将左侧命令的结果,覆盖写入到符号右侧指定的文件中
两个>>: 将左侧命令的结果,追加写入到符号右侧指定的文件中 -
tail命令
可以查看文件尾部内容,跟踪文件的最新更改
-f 表示持续跟踪文件,随时更新最后内容
-num 表示查看尾部多少行,默认为10行(-3 -7 -5 ...)
二. vi/vim使用
- 是Linux中最经典的文本编辑器。vim为加强版
- vi\vim编辑器的三种工作模式:
命令模式(Command mode):所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
输入模式(Insert mode):所谓的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。
底线命令模式(Last line mode):通常用于文件的保存、退出。 - 通过vi/vim命令编辑文件(vim + 文件名),会打开一个新的窗口,此时这个窗口就是:命令模式窗口,后续操作如下图切换模式。
- 命令模式快捷键
常用:
i 进入编辑模式,esc回退到命令模式.:进入底线模式
0 光标移到当前行开头,$移动到当前行结尾
dd 删除光标所在行 ndd<删除光标以下n行>
yy 复制光标所在行 nyy同理
p 粘贴 u 撤回 ctrl + r反撤回
gg跳转到首行 G跳转到尾行
三. Linux权限<用户与用户组>
-
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。
-
su命令
用于账户切换的系统命令
-符号是可选的,表示是否在切换用户后加载环境变量,建议带上
exit命令用于退出登录 -
sudo命令
为普通的命令授权,临时以root身份执行
但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证 -
为普通用户配置sudo认证
切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
在文件的最后添加:
其中最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码
最后通过 wq 保存 -
用户组
Linux中关于权限的管控级别有2个级别,分别是:
针对用户的权限控制
针对用户组的权限控制 -
创建用户组
groupadd 用户组名 -
删除用户组
groupdel 用户组名 -
创建用户
useradd [-g -d] 用户名
选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名 -
删除用户
userdel [-r] 用户名
选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留 -
查看用户所属组
id [用户名]
参数:用户名,如果不提供则查看自身 -
修改用户所属组
usermod -aG 用户组 用户名,将指定用户加入指定用户组 -
getent passwd
可以查看当前系统中有哪些用户
共有7份信息,分别是:
用户名:密码(x 隐藏):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash) -
getent group
可以查看当前系统中有哪些用户组
包含3份信息,组名称:组认证(显示为x):组ID -
文件权限信息
通过ls -l 可以以列表形式查看内容,并显示权限细节
序号1,表示文件、文件夹的权限控制信息
序号2,表示文件、文件夹所属用户
序号3,表示文件、文件夹所属用户组
d rwx rwx rwx <用户 用户组 其他用户> -
chmod命令
修改文件、文件夹的权限信息
选项:-R,对文件夹内的全部内容应用同样的操作<表递归>
PS: chmod u=rwx,g=rx,o=x hello.txt ,将文件权限修改为:rwxr-x--x
将一组看成二进制三个1, 111 101 001 -> 751 -> chmod 751 hello.txt -
chown命令
可以修改文件、文件夹的所属用户和用户组
-R,同chmod,对文件夹内全部内容应用相同规则
: 用于分隔用户和用户组<: 前为用户, 后为用户组>
chown root hello.txt,将hello.txt所属用户修改为root
chown :root hello.txt,将hello.txt所属用户组修改为root
四. 实用技巧
1.常用快捷键
- ctrl + c 强制停止
- ctrl + d 退出或登出<su命令登出>
- history查看历史命令
- ctrl + r,输入内容去匹配历史命令
- ctrl + a,跳到命令开头
- ctrl + e,跳到命令结尾
- ctrl + 键盘左键,向左跳一个单词
- ctrl + 键盘右键,向右跳一个单词
- ctrl + l,可以清空终端内容
2.软件安装
-
yum命令
用于自动化安装配置Linux软件,并可以自动解决依赖问题。
-y,自动确认,无需手动确认安装或卸载过程
install:安装
remove:卸载
search:搜索
PS:需要root权限,需要联网 -
apt命令
为ubantu的自动化软件安装
用法一致
3.服务控制
- systemctl命令
服务<软件>控制指令,使用systemctl命令控制:启动、停止、开机自启
start 启动
stop 关闭
status 查看状态
enable 开启开机自启
disable 关闭开机自启
Ps:部分软件安装后没有自动集成到systemctl中,我们可以手动添加。
4.软连接
- ln命令
-s选项,创建软连接<类似Windows中快捷方式>
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
5.日期时间
-
date命令
通过date命令可以在命令行中查看系统的时间。
格式化字符串:通过特定的字符串标记,来控制显示的日期格式。
%Y 年
%y 年份后两位数字 (00..99)
%m 月份 (01..12)
%d 日 (01..31)
%H 小时 (00..23)
%M 分钟 (00..59)
%S 秒 (00..60)
%s 自 1970-01-01 00:00:00 UTC 到现在的秒数
ex.
-d选项,可以按照给定的字符串显示日期,一般用于日期计算
ex. -
Linux修改时区
将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可.
-
ntp程序
我们可以通过ntp程序自动校准系统时间
安装ntp:yum -y install ntp
启动并设置开机自启:
systemctl start ntpd
systemctl enable ntpd
当ntpd启动后会定期的帮助我们联网校准系统的时间
也可以手动校准(需root权限):ntpdate -u ntp.aliyun.com
6.IP地址
-
ifconfig命令
查看本机的ip地址,如无法使用ifconfig命令,可以安装:yum -y install net-tools
-
Linux修改主机名
hostname查看主机名
命令:hostnamectl set-hostname 主机名,修改主机名(需root)
7.网络传输
-
wget命令
wget是非交互式的文件下载器,可以在命令行内下载网络文件
-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
url,下载链接 -
curl命令
可以发送http网络请求,可用于:下载文件、获取信息等
-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
url,要发起请求的网络地址 -
nmap命令
语法:nmap 被查看的IP地址
安装nmap:yum -y install nmap
-
netstat命令
语法:netstat -anp | grep 端口号,安装netstat:yum -y install net-tools
8.进程管理
-
ps命令
-e,显示出全部的进程
-f,以完全格式化的形式展示信息(展示全部信息)
一般就使用 ps -ef
从左到右分别是:
UID:进程所属的用户ID
PID:进程的进程号ID
PPID:进程的父ID(启动此进程的其它进程)
C:此进程的CPU占用率(百分比)
STIME:进程的启动时间
TTY:启动此进程的终端序号,如显示?,表示非终端启动
TIME:进程占用CPU的时间
CMD:进程对应的名称或启动路径或启动命令 -
kill命令
通过kill命令关闭进程
-9 表示强制关闭
9.主机状态
-
top命令<任务管理器>
直接输入top即可,按q或ctrl + c退出,默认每5秒刷新一次
第一行:
top:命令名称,14:39:58:当前系统时间,up 6 min:启动了6分钟,2 users:2个用户登录,load:1、5、15分钟负载
第二行:
Tasks:175个进程,1 running:1个进程子在运行,174 sleeping:174个进程睡眠,0个停止进程,0个僵尸进程
第三行:
%Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待占用CPU率
第四、五行:
Kib Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
KibSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,buff/cache:buff和cache占用 -
top命令更多
PID:进程id
USER:进程所属用户
PR:进程优先级,越小越高
NI:负值表示高优先级,正表示低优先级
VIRT:进程使用虚拟内存,单位KB
RES:进程使用物理内存,单位KB
SHR:进程使用共享内存,单位KB
S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
%CPU:进程占用CPU率
%MEM:进程占用内存率
TIME+:进程使用CPU时间总计,单位10毫秒
COMMAND:进程的命令或名称或程序文件路径 -
top交互式选项
当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制
-
df命令
语法:df [-h]
可以查看硬盘的使用情况
-h,以更加人性化的单位显示
-
iostat命令
语法:iostat [-x] [num1] [num2]
查看CPU、磁盘的相关信息
-x,显示更多信息
num1:数字,刷新间隔,num2:数字,刷新几次
-
sar命令
语法:sar -n DEV num1 num2
查看网络的相关统计
-n,查看网络,DEV表示查看网络接口
num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)
10.环境变量
-
env命令
语法: env
可查看当前系统中记录的环境变量
环境变量是一种KeyValue型结构,即名称和值,如下图
-
\(符号 在Linux系统中,\)符号被用于取”变量”的值。
环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。
取得环境变量的值就可以通过语法:$环境变量名 来取得
比如: echo $PATH
就可以取得PATH这个环境变量的值,并通过echo语句输出出来。
-
export命令<临时>
语法:export 变量名=变量值
用户自行设置环境变量
若想永久生效:
针对当前用户生效,配置在当前用户的: ~/.bashrc文件中
针对所有用户生效,配置在系统的: /etc/profile文件中
并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效
11.上传和下载<需要终端机 如xshell, finalshell>
可以通过:yum -y install lrzsz,安装。
-
rz命令
语法:直接输入rz即可 -
sz命令
语法: sz 要下载的文件
文件会自动下载到桌面的:fsdownload文件夹中。
12.压缩与解压
-
tar命令
-c,创建压缩文件,用于压缩模式
-v,显示压缩、解压过程,用于查看进度
-x,解压模式
-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
-z,gzip模式,不使用-z就是普通的tarball格式
-C,选择解压的目的地,用于解压模式
tar命令均可以进行压缩和解压缩的操作
常用:
tar -cvf xxx.tar {打包压缩文件集合} <仅打包,不压缩>
tar -zcvf xxx.tar.gz {打包压缩文件集合} <打包并且压缩>
tar -xvf xxx.tar <解包>
tar -zxvf xxx.tar.gz <解压压缩包>
tar -xvf test.tar -C /home/itheima <-C + Path 指定解压路径>
-f选项,必须在选项组合体的最后一位
-z选项,建议在开头位置
-C选项单独使用,和解压所需的其它参数分开 -
zip命令
-r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致<表示递归>
常用:
zip xxx.zip {打包压缩文件集合} <压缩文件,不包含文件>
zip -r xxx.zip {打包压缩文件集合} <压缩文件,且包含文件> -
unzip命令
-d,指定要解压去的位置,同tar的-C选项
常用:
unzip xxx.zip,<将xxx.zip解压到当前目录>
unzip xxx.zip -d /home/itheima,<将xxx.zip解压到指定文件夹内(/home/itheima)>
END!