Linux
目录
文章目录
Linux概述
Linux含义
-
狭义
- 由Linus Torvalds开发的Linux内核代码
-
广义
- 由Linux厂商基于Linux内核开发的Linux发行版操作系统。
操作系统
-
常见操作系统
- Window
- mac OS
- Linux
- IOS
- Android
-
作用
- 作用于硬件与软件之间,控制硬件,支持软件,承上启下。
虚拟机软件
-
常用虚拟机
- Vmware
- VirtualBox
-
作用
- 模拟一个真实计算机,虚拟机间相互隔离。
-
备份操作系统
-
快照
- 保存拍快照时候的系统状态。
- 适用于短期,频繁备份,一般在虚拟机操作系统开启状态时进行备份。
-
克隆
-
分类
-
链接克隆
- 对原始虚拟机的引用,所需磁盘空间少,但原始虚拟机必须可以访问时才能运行。
-
完整克隆
- 对分类机状态的完整副本,独立,占磁盘空间大。
-
-
适用于长期备份,备份时虚拟机需关闭。
-
-
ubuntu
-
概述
- Linux操作系统的一种,免费,稳定。
-
主要目录
-
/(根目录)
-
/bin
- 系统指令目录,存放系统指令。
-
/etc
- 系统配置文件目录
-
/boot
- 系统引导目录,启动文件,引导文件。
-
/dev
- 系统设备目录,影片,光驱都在此目录下/dev/cdrom
-
/home
- 用户家,非管理员用户在/home目录下都有家
-
/lib
-
库文件目录
- .so 动态库
- .a 静态库
-
-
/media
- 多媒体目录,光驱与软驱
-
/mnt
- 挂在目录
-
/opt
- 第三方程序目录,qq,wps软件通常放置于此目录下。
-
/proc
- 内存目录
-
/root
- 超级管理员的家目录
-
/run
- 保存到下次引导前有效的关于系统的信息文件
-
/srv
- 服务启动之后需要访问的数据目录
- 如www服务需要访问的网页数据存放在/srv/www内
-
/sbin
- s为super,超级指令超级目录。供root管理员使用。
-
/sys
- 目录与/proc类似,是一个虚拟的文件系统,主要记录与系统核心相关的信息,入系统当前已经载入的模块信息等。
-
/tmp
- temp的所需,临时目录
-
/usr
- 应用程序存放目录。
- 安装Linux软件包时默认安装到/usr/local目录下。
-
/var
- 经常变化的目录,页文件、数据库文件通常放置于此目录下。
-
-
Linux内核与发行版
-
Linux内核
- 操作系统的内部操作和控制硬件的核心程序。
-
Linux发行版
-
概述
- Linux内核与常用软件的组合。
-
常用发行版
- Ubuntu
- CentOS
- Redhat
-
Linux基础操作
终端命令格式
-
语法
-
command [-options] [parameter]
-
command
- 命令名
-
[-options]
-
选项,可无也可有多个
-
短选项
- -单字母
-
长选项
- –单词
-
-
[parameter]
- 参数,可有可无
-
-
注意点
- 一般选项与参数没有顺序要求,但对scp命令必须先选项,后参数。
命令帮助
-
命令–help
-
man 命令
-
空格
- 显示下一屏
-
回车
- 显示下一行
-
b
- 显示上一屏
-
f
- 显示下一屏
-
q
- 退出
-
查看目录
-
ls
-
作用:查看当前目录信息
-
显示信息说明
-
文件类型 文件存区控制 硬链接数 文件属性 文件所属的组 文件大小(默认单位字节) 文件修改时间 文件名
-
开头
- -d开头表示目录,-表示文件。
-
链接数
- 文件的引用计数表示该文件的硬链接数,目录的引用计数表示该目录下有多少个子目录。
-
所有者
- 文件属于哪个用户。默认属于创建用户。
-
所有组
- 文件属于哪个组,默认属于创建用户所在的组。
-
-
选项
-
[-l]
- 以列表方式显示。
-
[-a]
- 显示隐藏文件及目录。
-
[-h]
- 较高可读性(文档大小默认单位字节)的形式显示。
-
-
-
tree
- 以树状方式显示目录文件
-
pwd
- 查看当前目录路径
切换目录
-
cd 目录
- 切换到指定目录
-
cd
- 切换到当前用户的家目录
-
cd ~
- 当前用户主目录
-
cd …
- 切换到上一级目录
-
cd .
- 切换到当前目录
-
cd -
- 切换到上一次目录
-
**切换目录时目录必须存在。
路径
-
绝对路径
- 从根目录开始
-
相对路径
- 从当前目录开始
-
Tip
- 一次tab–>自动补全
- 两次tab–>提示
创建删除文件目录
-
创建
-
touch 文件名
-
mkdir 目录名
- [-p] :创建嵌套目录
-
-
删除
-
rm 文件或目录名
-
-i
- 交互式提示
-
-r
- 递归删除
-
-f
- 强制删除,不存在忽略不提示
-
-d
- 删除空目录
-
-p
- 递归删除空目录
-
-
rmdir 空目录名
-
复制移动文件目录
-
复制
-
cp 文件或目录
-
-i
- 交互式提示
-
-r
- 递归
-
-v
- 显示拷贝后的路径描述
-
-a
- 保留文件原有权限
-
-
-
移动,重命名
-
mv 文件或目录
-
-i
- 交互式提示
-
-v
- 显示移动后的路径描述
-
-
设置命令别名
-
1.打开 .bashrc
- vim .bashrc
-
2.为clear命令添加别名
- alias cls=‘clear’
-
3.让别名生效
- source ~/.bashrc
磁盘内存
-
查看磁盘空间大小。-h可读性。
- df[-h]
-
查看内存使用情况
-
free
-
-m
- 表示以M为单位查看
-
-h
- 以可读性较高的形式展示大小
-
日期时间
-
时间分类
- 系统时间
- 分类时间
-
date
-
获取系统时间
-
-s
- 设置系统时间
-
-
hwclock
-
管理计算机硬件RTC时间
-
-w
- 将linux系统时间保存到硬件RTC中
-
-s
- 将RTC中的事件保存到linux系统时间中
-
-
timedatectl
-
同时设置系统时间,RTC硬件时间,还可以设置时区。
-
-list-timezones
- 列出系统上所有支持的时区名称
-
-set-timezone
- 设定时区位置
-
-set-time
- 设定时间
-
-
cal
-
查看系统日历
-
-l
- 输出当前月份日历
-
-
ntpdate
- 手动网络校时
- ntpdate ntp服务器地址
Linux进阶操作
重定向命令
-
概述
- 终端输出内容重定向到文件中。
-
操作
- ‘>’
-
覆盖
-
‘>>’
- 追加
查看文件内容
-
cat
- 查看小型文件
-
gedit
- 查看和编辑文件
-
more
- 分屏查看
- 空格,回车,b,f,q
-
tac
- 倒叙查看文件命令
-
tail
-
-n
- 查看一个文件后n行,不指定默认10行
-
-f
- 查看一个文件动态变化内容(一般用于查看系统日志)
- ctrl+c退出卡屏
-
-
less
- 查看大文件,比较少的输出内容
-
wc
-
统计文件内容信息(包含行数,单词书,字节数)
-
-l
- 表示行数,以换行符为基准
-
-w
- 单词数
-
-c
- 字节数
-
-
du
-
查看文件或目录,占用磁盘空间大小
-
-s
- 显示汇总大小
-
-h
- 高可读性进行显示
-
-
管道 |
-
内容容器
-
例
- ls lh | more
-
链接命令
-
软连接
-
操作
- ln -s 源文件(绝对路径)链接文件路径
-
特点
- 相当于window中的快捷键
- 删除源文件软链接失效。
- 可以给目录创建软链接。
- 源文件路径必为绝对路径
-
-
硬链接
-
语法
- ln 源文件路径 硬链接
-
特点
- 多个链接指向一个数据
- 源数据被删,硬链接仍可访问数据
- 源文件路径 可为相对路径也可绝对路径
- 不能给目录创建硬链接
-
文本搜索
-
语法
-
grep [选项] 文本搜索内容 文件
-
-i
- 忽略大小写
-
-n
- 显示匹配行号
-
-v
- 取反 ,显示不包含匹配文本的所有行
-
-
-
常用正则
-
^
- 指定字符开头
-
$
- 指定字符结束
-
.
- 匹配一个非换行字符
-
-
与管道配合
- ls | grep ‘lib’
查找文件命令
-
语法
-
find 指定查找目录 [选项] ‘文件名’
-
[-name]
- 根据文件名查找
-
[-type]
- 根据文档类型查找
-
-
-
可配合命令
- ls mv cp
-
通配符
-
- 0或多个任意字符
-
?
- 一个任意字符
-
**注意:find命令使用通配符需要加引号
-
压缩解压缩
-
.gz / .bz2
-
tar 选项 文件
-
-c
- 创建打包文件
-
-v
- 显示打包或者解包详细信息
-
-f
- 指定文件名,放所有选项后面
-
-z
- 压缩解压缩 .gz
-
-j
- .bz2
-
-x
- 解包
-
-C
- 解压到指定目录
-
-
-
.zip
-
zip,unzip
-
-d
- 指定目录
-
-
-
常用操作
-
压缩
- tar -zcvf test.tar.gz *.txt -C 路径
- tar -jcvf test.bz2 *.txt
- zip test.zip *.txt -d 路径
-
解压缩
- tar -zxvf test.tar.gz
- tar -jxvf test.bz2
- unzip test.zip -d 路径
-
文件权限
-
语法
- chmod 不同角色权限 文件
-
字母法
-
角色
- u ,g,o,a
-
设置操作
- +,-,=
-
权限
- r(读) , w(写), x(执行),-(无任何权限 )
-
案例
- chmod u+x 1.txt
- chmod u=rw 1.txt
-
-
数字法
-
权限
- r(4),w(2),x(1),-(0)
-
案例
- chmod 777 1.txt
-
软件安装卸载
-
安装
-
离线安装(deb)
- dpkg -i 安装包
-
在线安装(apt-get)
- apt-get install 安装包
-
-
卸载
-
离线卸载
- dpkg -r 安装包名
-
在线卸载
- apt-get remove 安装包
-
获取管理员权限
-
sudo
-
sudo -s
- 切换root用户
-
sudo 命令
- 管理员权限执行命令
-
-
whoami
- 查看当前用户
-
who
- 查看所有登录用户
-
exit
- 退出登录用户
- 返回上一个用户,若没有退出终端
-
passwd
- 不指定修改当前登录用户密码
-
which 命令
- 查看命令位置
系统关联
-
clear
- 清屏
-
shutdown -h now
- 立刻关机
- now 换数字10 10分钟后关机
-
shutdown -c
- 取消关机
-
reboot
- 重启
-
ps
- 显示系统进程信息
-
kill
- 杀死进程,指定pid
- -9 强制杀死
-
killall
- 杀次进程,指出下达指令的名称
-
ifconfig
- 查看ip
用户相关
-
创建用户
-
useradd [] 用户名
-
-m
- 自动创建用户主目录,名与用户名相同。
-
-g
- 后面接组名,指定用户所属用户组,不指定自动创建同名用户组
-
-u
- 后面接UID。指定一个特定UID给这个账号
-
-M
- 强制不创建用户家目录
-
-c
- 添加用户注释
-
-d
- 指定某个目录成为家目录(务必使用绝对路径)。
-
-
-
查看信息
-
cat /etc/passwd
- root❌0:0:root:/root:/bin/bash
- 用户名:密码:UID:GID:注释:家目录:解释器
-
cat /etc/group
- itcast❌1000:itcast
- 组名 :密码:GID:组内用户
- 密码x代表占位符,用户组可以设置密码,但大部分情况不需要设置。
-
cat /etc/shadow
- hello2:
6
6
6tZVAwr.v$jiDW7iMPCOeKiQkf4aOAelpjJF/a5ZLiERPOmpQLbPSIC2PmfjkRh2Yv153QCn79J1RM.47RcDhuWjTwahaOe0:17967:0:99999:7:::
hello3:!!:17967:0:99999:7::: - 说明:hello1、hello2设置了密码,hello3没有设置密码
- hello2:
6
6
6tZVAwr.v$jiDW7iMPCOeKiQkf4aOAelpjJF/a5ZLiERPOmpQLbPSIC2PmfjkRh2Yv153QCn79J1RM.47RcDhuWjTwahaOe0:17967:0:99999:7:::
-
id 用户名
- 查看用户信息
- uid=1001(laowang) gid=1001(laowang) 组=1001(laowang)
- 用户id,用户组id,用户所在用户组
-
-
设置密码
- sudo passwd 用户名
-
切换用户
-
su -用户名
-
当用户不在sudo用户组里,无法切换root用户
- 给用户设置一个sudo附加组,使用usermod修改用户信息。
-
-
修改用户信息
-
usermod 选项 组名 用户名
- sudo usermod -G sudo laowang
-
-G
- 设置一个附加组修改用户对应的附加组
-
-g
- 修改用户组修改用户对应的用户组,选项值可以是GID,也可以是组名
-
-u
- 修改用户的UID
-
-l
- 修改用户名
-
-c
- 修改用户注释
-
-d
- 修改用户家目录
-
-s
- 修改用户登录使用shell
-
-
删除附加组
-
gpasswd
- sudo gpasswd -a laowang sudo
-
-a 用户名
- 给用户添加附加组
-
-d 用户名
- 给用户删除附加组
-
-
删除用户
-
userdel [-r] 用户名
-
-r
- 删除用户,同时删除用户主目录
-
-
注意:
- 删除用户同名用户组默认也会被删
-
问题:已登录用户删除失败
-
方案一:强制杀死应用户进程
- ps -ef | grep hello2
- kill -9 113380
-
方案二:登录用户,ctrl+d 注销。
-
-
用户组相关
-
创建用户组
-
groupadd [] 用户组名
-
G
- 设置GID,不写默认设置
-
-
创建用户并指定用户组
- sudo useradd -m -g test laowang
-
修改用户组
-
groupmod [] 组名
- groupmod -g 520 -n admin admins
-
-g
- 设置自定义一个GID
-
-n
- 设置新的组名
-
-
删除用户组
- sudo groupdel 组名
- 组内有用户,先删除用户,再删除用户组
Linux 相关软件
远程连接
-
远程登录(ssh)
- 命令 ssh -p22 root@服务器ip地址
-
远程拷贝(scp)
- 可视化软件FileZilla
vim编辑器
-
概述
- 文本编辑器
-
配置文件
-
个人配置
- ~/.vimrc
-
全局配置
- /etc/vimrc
-
-
模式
-
命令模式
- 控制光标移动,可对文件进行删除,复制,粘贴等操作。
-
编辑模式
- 文本录入
-
末行模式
- 保存,退出,替换
- w 保存
- wq,x 保存退出
- q!强制退出
-
-
打开方式
-
vim 文本路径
- 打开文件,没有创建。
-
vim +数字 文本路径
- 打开指定文件,光标移到指定行
- vim +3 anaconda-ks.cfg
-
vim +/关键字 文本路径
- 高光提示关键字,光标移动到关键字第一次出现地方。第二次打开,移动到第二次出现的地方。
- vim +/part anaconda-ks.cfg
-
vim 文件路径1 文件路径2 文件路径3 …
-
同时打开多个文件
-
:n
- 编辑下一个文件
-
:N
- 编辑上一个文件
-
:files
- 列出目前这个vim开启的所有文件
-
-
-
常用命令
-
命令模式
-
dd
- 删除(剪切)光标所在行
-
5dd
- 删除从光标开始的5行
-
yy
- 复制光标所在整行
-
5yy
-
p
- 粘贴,将之前复制或剪切的粘贴到光标后
-
/字符串
- 在文本中从上至下搜索字符串
-
?字符串
- 在文本中从下至上搜该字符串
-
n
- 显示搜索命令定位到下一个字符串
-
N
- 显示搜索命令定位到上一个字符串
-
u
- 撤销上一部操作
-
ctrl+r
- 恢复
-
gg
- 光标移动到首行行首
-
G
- 光标移动到末行行首
-
.
- 重复上一次命令
-
shift+6,shift+4
- 回到当前行行首,行末
-
ctr+f/ctr+b
- 下一屏,上一屏
-
-
末行模式
-
:
- 进入
-
esc:
- 退出
-
esc两次
- 快速退出
-
:w
- 保存
-
:q
- 退出
-
:q!
- 强退
-
:set nu
- 显示行号
-
:set nonu
- 不显示行号
-
:整数
- 跳转到该行
-
:x
- 保存退出,与wq不同。不更改更新时间。
-
‘<<’
-
-
-
缩进
-
全局替换
- :%s/要替换的内容/替换后的内容/g
-
局部替换
- :开始行数,结束行数s/要替换的内容/替换后的内容
-
编辑模式
-
i
- 在光标所在字符前开始插入
-
a
- 在光标所在字符串后开始插入
-
o
- 在光标所在行的下面另起一新行插入
-
-
异常退出
- ll 后查看删除 .swp