Linux系统组成
- Linux系统内核 (www.kernel.org)内核源代码
- 系统级应用程序
- 内核 + 封装系统级应用程序(自定义) = Linux发行版
虚拟机介绍
快照功能:通过快照片将当前虚拟机保存下来,在以后可以通过快照恢复虚拟机到保存的状态。
Linux 命令基础
- su - root (切换管理员用户)
- logout 退出登录
command [-options] [parameter]
1. commend 命令本身
2. -options 命令的一些选项,可以通过控制选项控制命令的行为细节
3. -parameter: 命令的参数,多数用于命令的指向目标等
-
ls [-a -l -h] [linux路径] 以平铺形式打开目录,默认(home目录,终端打开时,默认为home目录)
- -a 表示all的意思,列出全部文件
- -l 以列表(竖向排列的形式)展示内容
- -l 与 -a 可结合使用 -al -la
- -h表示易于阅读的形式,列出文件的大小,如K、M、G,与-l结合使用, -l -h -lh
-
目录切换命令 cd 、pwd
cd [Linux路径]
- 无参:回到用户home目录(应为回到默认目录,不一定是home)
- 有参:切换到指定目录
pwd 输出当前工作目录
-
特殊路径符
- . 当前目录,cd ./Desktop, 与cd Desktop一致
- .. 上一级目录 cd .. cd../.. 返回上两级目录
- ~ 默认目录, cd ~ 切换到默认路径
-
mkdir [-p] Linux路径
- 参数必填,表示要创建的文件夹的路径
- -p选项可选,表示自动创建不存在的父目录,使用于创建连续多层级目录
-
touch Linux路径 创建文件
-
cat Linux路径 文件查看命令
-
more Linux 文件查看命令,支持翻页, 空格翻页,q退出
-
cp [-r] 参数1 参数2
- -r选项,可选,用于复制文件夹使用,表示递归
- 参数1 被复制的文件及问价夹
- 参数2 要复制去的地方
-
mv 参数1 参数2 移动文件/文件夹,参数二在目标不存在时可执行改名功能
-
rm [-r -f] 参数1 参数2 ...参数3
- -r 选项用于删除文件夹
- -f 表示force强制删除(root用户可使用)
- 通配符*
- -r -f可联合使用 -rf
-
which 用于查找一些命令的程序文件
- 语法:which 要查找的命令
-
find 搜索指定文件
- 语法:find 起始路径 -name "被查找文件名"
- find 起始路径 -size +|-n[KMG] +、-表示大于小于,n表示大小数字,KMG表示大小单位,
-
grep 可以从问文件中通过关键字过滤文件行
- 语法:grep [-n] 关键字 文件路径
- -n 可选, 表示在结果中显示匹配的行号
- 关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用" " 将关键字包围起来
- 文件路径,必填,表示要过滤内容的文件路径,可作为内容输入窗口
-
wc 统计文件的行数、单词数量等
- 语法:wc [-c -m -l -w] 文件路径
- -c, 统计bytes数量
- -m,统计字符数量
- -l, 统计行数
- -w, 统计单词数量
- 文件路径,被统计的文件,可作为内容输入端口
-
管道符 | 将左边命令的结果作为右边命令的输入
-
echo 命令 在命令行输出指定内容
- echo 输出的内容
-
被 ` 包围的字符将被视为命令执行,而不作为普通字符
-
重定向符
- ">" 将左边的命令结果覆盖到右侧文件中
- ">>" 将左侧的命令结果追加到右侧文件中
-
tail命令可以查看文件尾部内容,跟踪文件的最新更改
- 语法:tail [-f -num] Linux路径
- Linux路径,表示被跟踪的文件路径
- -f 表示持续跟踪
- -num 表示查看尾部多少行,不填默认10
-
vi\vim 是visual interface的简称,是Linux中最经典的文本编辑器
- vim 是 vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序设计和编辑性。
- 命令模式:键盘所输入的内容都为命令,以命令去驱动执行不同的功能,在此模式下,不能自由进行文本编辑(yy复制一行, dd删除一行,uu撤销)
- 输入模式:编辑模式,插入模式,可对文件进行自由编辑
- 底线模式:常用于文件的保存和退出
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置之后进入输入模式 |
命令模式 | I | 在当前行的开头进入输入模式 |
命令模式 | A | 在当前行的结尾进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式 | esc | 在任何情况下回到命令模式 |
命令模式 | 键盘上、k | 向上移动 |
命令模式 | 键盘下、j | 向下移动 |
命令模式 | 键盘左、h | 向左移动 |
命令模式 | 键盘右、l | 向右移动 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的末尾 |
命令模式 | PgUp | 向上翻页 |
命令模式 | PgDn | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删除行 |
命令模式 | ndd | 删除光标向下n行 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | 复制当前行和下面n行 |
命令模式 | p | 粘贴复制内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl + r | 反向撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到行尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行末尾 |
命令模式 | d0 | 从当前光标开始,删除到本行开头 |
底线命令模式 | set nu | 显示行号 |
底线命令模式 | set paste | 设置粘贴模式 |
Linux 用户和权限
root用户
- 切换用户
- su [-] [用户名]
- -是可选的,表示在切换用户后加载环境变量
- 用户名,可选,默认为root、
- exit 推出当前用户
- sudo 为普通的命令授权,临时以root身份执行
- sudo 命令
- 需要为普通用户配置sudo认证
su
visudo #(会自动通过vi编辑器打开: /etc/sudoes)
# 在文件最后添加以下内容(为ithema用户添加sudo权限)
ithema ALL=(ALL) NOPASSWD: ALL
用户组管理
- 创建用户组:groupadd 用户组名
- 删除用户组:groupdel 用户组名
用户管理
-
创建用户: useradd [-g -d]
- -g 指定用户的组,不指定-g 会创建同名用户组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
- -d 指定用户HOME目录,不指定,HOME目录默认在:/home/用户名
-
删除用户:userdel [-r] 用户名
- -r 删除用户的Home目录,不使用的话会将Home目录保存
-
id 查看用户所属的组
-
usermode -dG 用户组 用户名,将指定用户添加到指定用户组
-
getent passwd 查看当前系统中有哪些用户
-
getent group 查看系统中有哪些组
查看权限控制
- rwx
- r 针对文件,可以查看文件内容,针对文件夹,可以查看文件夹内容,如ls命令
- w 针对文件表示可修改此文件,针对文件夹,可以在文件夹内:创建、删除、改名等操作
- x 针对文件表示可将文件作为程序执行,针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
修改权限控制
-
chmod命令 (只能是文件、文件夹的所属用户或root用户有权修改)
- chmod [-R] 权限 文件或文件夹
- -R 对文件夹内的全部内容应用同样的操作
- 示例:chmod -R u=rwx, g=rx, o=x test,将文件夹test以及文件夹内全部内容权限设置为 rwxr-x--x
-
权限数字序号(r记为4, w记为2, x记为1):
- 0 :---
- 1 :--x
- 2 :-w-
- 3 :-wx
- 4 :r--
- 5 :r-x
- 6 :rw-
- 7 :rwx
- 例:751表示rwx(7)r-x(5)--x(1)
-
chown 命令 修改文件、文件夹的所属用户和用户组(普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户)
- chown [-R] [用户][:][用户组]
- -R,对文件夹内全部内容应用相同规则
- 用户,修改所属用户
- 用户组,修改所属用户组
- :用于分割用户和用户组
- 示例1:chown root hello.txt, 将hello.txt的所属用户修改为root
- 示例2:chown :root hello.txt,将hello.txt的所属用户组修改为root
- 示例3:chown -R ro
- ot:root hello
Linux实用操作
常用快捷键
- ctrl + d 退出登录,退出某些特定程序的专属页面(python等)
- history 查看历史输入过的命令
- !命令前缀,自动执行上一次匹配前缀的命令
- ctrl + r, 输入内容去匹配历史命令
- ctrl + a 跳到命令开头
- ctrl + e 跳到命令结尾
- ctrl + -> 向左跳一个单词
- ctrl + -> 向右跳一个单词
- ctrl + l clear
软件安装
-
yum 命令 : RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题
- yum [-y] [install | remove | search] 软件名称
- -y 自动确认
- install : 安装
- remove : 卸载
- search : 搜索
- yum 需要root权限,且需要联网
-
apt (ubuntu 使用)
- apt [-y] [install | remove | search] 软件名称
软件启动和关闭
- systemctl 管理服务(软件)的启动、停止、开机自启
- systemctl start | stop | status | enable | disable 服务名
- start 启动
- stop 关闭
- status 查看状态
- enable 开启开机自启
- disable 关闭开机自启
- 系统内置服务
- NetworkManage,主网络服务
- network,副网络服务
- firewalld, 防火墙服务
- sshd, ssh服务(FinalShell远程登录Linux系统使用的就是这个服务)
- 除系统内置服务以外,部分第三方软件安装后也可以通过systemctl进行控制
- yum install -y httpd,安装apache服务器软件
- 部分软件安装后没有自动集成到systemctl中,我们可以手动添加。
软链接
- 在系统中创建软链接,可以将文件、文件夹链接到其他位置,类似Windows中的快捷方式
- 语法:ln -s 参数1 参数2
- -s 选项,创建软连接
- 参数1 被链接的文件或文件夹
- 要链接去的目的地
- 示例
- ls -s /etc/yum.conf ~/yum.config
日期、时间
- date 命令
- date [-d] [+格式化字符串]
- -d 可以安装给定的字符串显示日期,常用于日期计算
- +|- year | month | day | hour | Minute | second
- date -d "+1 month"
- ntp 自动校准时间
- ntpdate -u ntp.aliyun.com
IP 地址与主机名
- ifconfig 查看ip
- hostname
- hostnameectl set-hostname 主机名,修改主机名(需root
- 虚拟机的Linux操作系统若通过DHCP服务获取IP,则每次重启设备后就会获取一次,可能导致IP地址频繁变更
- systemctl restart network 重启网络服务
网络传输
- ping 命令
- ping [-c] ip或主机名
- -c 为检查次数,不适用-c将无限次检查
- wget 命令行下载网络文件
- wget [-b] url
- -b 后台下载,会将日志写入到当前工作目录的wget-log文件
- 可通过 tail -f wget-log 查看下载进度
- curl 可以发送网络请求,可用于文件下载,获取信息
- curl [-O] url
- -O 下载文件,但url是下载链接时,可用此选项保存文件
- 端口
- 物理端口:可见的接口 usb等
- 虚拟端口:计算机内部端口,是不可见的,用来操作系统和外部交互使用的
- 公认端口:1 - 1023:常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HttPS服务的443端口,非特殊需要,不要占用这个范围的端口
- 注册端口:1024-4915:通常可以随意使用,用于松散的绑定一些程序\服务
- 动态端口:49152-65535:通常不会固定绑定程序,二十当程序对外进行网络连接时,用于临时使用
- nmap ip 查看ip对外暴露的端口
- netstat -anp | grep 端口号,查看指定端口占用情况,安装netstat:yum -y install net-tools
进程管理
- 查看进程
- ps [-e -f] -e 显示全部进程,-f以完全格式化的形式展示信息
- 关闭进程:kill [-9] 进程ID -9 : 强制结束
主机状态
- top 查看CPU、内存使用情况,类似Windows任务管理器
- df iostat 磁盘信息监控
- df [-h] -h单位显示
- iostat [-x] [num1] [num2] 显示CPU 、磁盘的相关信息 -x 显示更多信息, num1 数字,刷新间隔, num2 数字,刷新几次
- iostat 安装 yum -y install sysstat
- 网络状态监控
- sar -n DEV num1 num2 : -n 查看网络, DEV表示查看无网络接口, num1 刷新间隔, num2 查看次数
环境变量
- env 查看环境变量
- $ 用于取"变量"的值
- echo $PATH
- echo ${PATH}ABCD 输出PATH + ABCD
- export 变量名=变量值 设置环境变量(临时设置)
- 环境变量配置,永久生效
- 针对当前用户生效,配置在用户的 ~/.bashrc文件中
- 针对所有用户生效,配置在系统的 /etc/profile文件中
- 通过语法: source 配置文件,进行立刻生效,或重新登录