系统简介
- 系统调用:
- 操作系统提供给上层调用的函数
- 操作系统作用:
- 承上启下:给上层应用提供接口,给下层应用提供"驱动程序"
- shell:
- 命令解析器
- 自动运行在'终端'中,用来解析'终端'中的命令
- 到/bin下调用同名可执行文件
- 终端提示符格式:
- 用户名 @ 主机名 : 当前shell 进程工作目录位置 $
- $:普通用户
- #: root用户 (管理员用户)
- 用户名 @ 主机名 : 当前shell 进程工作目录位置 $
Linux目录
- / 根目录
- /bin、/usr/bin:存放二进制可执行文件 ==尽量少碰==
- /dev :存放设备文件
- /etc :存放系统配置文件
-
/home :系统默认的普通用户的家目录
- 对于'oMaoyu'用户而言,/home/oMaoyu 是它的"家目录"(宿主目录)
- /lib 存放系统的函数库
- /proc : 存放进程相关东西,也就是程序运行后的数据存放在内存当中,不占用磁盘空间,占用内存存储
- /root : 系统管理员root的家目录,存放root用户数据
- /tmp : 保存程序工作期间的临时文件
-
/var :保存系统工作过程中,经常变化的数据
- 日志
- 数据库
Linux操作
Linux帮助
- Linux下查看帮助
-- help
- man 手册:
`9卷 了解4卷`
1. `shell 命令帮助信息`
2. `系统调用帮助信息`
3. `库函数 帮助信息`
5. `文件格式:man passwd等
热键
- 热键 win Ctrl mac control
- 快补 tab
- 列出执行过的命令 使用!编号 执行过往命令
- Ctrl+p 列出上一条命令
- Ctrl+n 列出下一条命令
- Ctrl+a 将光标移至行首
- Ctrl+e 将光标移至行尾
- Ctrl+u 清空光标以前的命令
目录操作
- 目录的进入
- /xx/xxx/xx/
- 起始/为根目录 中间/为目录分割 结尾/是目录提示符
- 绝对路径
- 从/根目录开始,依次向后访问
- 相对路径
- "."当前目录 cd ./go 去当前目录的go
- ".."上一级目录 cd ../go 去上级目录的go
- /xx/xxx/xx/
日常使用命令
- cd
- cd / 到达根目录
- cd /xx 到对应目录
- cd .. 回到上一级目录
- cd(空格) 从当前目录直接回到家目录
- cd - 回到上一次shell工作目录
- cd ~回到目录
- ls 获取当前目录下的文件 绿色为可执行文件
- ls - l 获取长信息
- 七部分内容:
- 文件属性:
- 文件类型: (Linux系统,不以后缀名作为区分文件类型的依据)
- 普通文件 - 占用磁盘存储
- 目录文件 d 占用磁盘存储
- 软连接(win 快捷键) l 占用磁盘存储
- 字符设备 c 不占用磁盘存储 (伪文件)
- 块设备 b 不占用磁盘存储 (伪文件)
- 管道文件 p 不占用磁盘存储 (伪文件)
- 套接字 s 不占用磁盘存储 (伪文件)
- 未知 unknow
- 读写执行权限
- 以3-3-3==ugo==形式划分
- u: 所有者 rwx 读写执行 (创建用户对该文件操作权限)
- g:所属组 rwx 读写执行 (同组用户对该文件操作权限)
- o:其他人 rwx 读写执行 (不同组用户对该文件操作权限)
- 以3-3-3==ugo==形式划分
- 文件类型: (Linux系统,不以后缀名作为区分文件类型的依据)
- 硬链接计数:硬链接个数
- 文件的所有者
- 文件的所属组
- 文件大小
- 普通文件:实际大小
- 目录文件:占用磁盘存储大小(4k整数倍)
- 最后修改时间
- 文件名
- 文件属性:
- 七部分内容:
- ls -a 查询所有文件 包含.开头隐藏文件
- ls -d 查看目录本身信息
- ls -l 查询目录,默认查询目录的子内容的详细信息
- ls -F 查看文件信息并带有对应提示符
- ls -i 查看i结点 iNode
- ls -h 查询文件时,带有M,G,等大小后缀
- ls - l 获取长信息
- sudo 获取root用户管理权限
- touch 创建空文件
- umask 文件掩码
- mkdir 创建空目录
- -p 可以创建多级目录
- redir 删除空目录 (目录必须为空
- rm ==删除文件,目录 (不可还原,慎用)==
- -i 表示交互方式执行
- -f ==强制删除==
- -r 表示递归删除,从里往外依次删除 ==用来删除目录==
- 链接文件
- 硬链接:
- 创建语法: ln 文件名 硬链接文件名
- 特性: 源文件和硬链接文件具备相通的数据信息,并且能够同步信息
- 原理: 指同个文件的iNode,每新增一个硬链接,增加一个"目录项",硬链接计数+1
- 删除: 每删除一个硬链接,目录项-1 当为0的时候,操作系统可以重新分配
- ==目录文件不允许硬链接==
- 软链接:
- 相当于win下的快捷方式
- 创建语法: ln - s 文件or目录名 软链接文件名
- 强调:建议使用==绝对路径==创建软链接,可以随意移动
- 软链接文件大:就是指向当初文件的路径地址大小
- 硬链接:
- cp 拷贝文件 目标位置[/新文件or目录名]
- -r 拷贝目录时指定 只拷贝内容
- -a 拷贝目录时指定 带有原有的属性以及内容
- -i 交互式拷贝
- mv 移动文件or改名
- -f 强制
- -i 交互
- -v 现实移动进度
- >: 输出重定向
- 语法: 命令>文件名 文件不存在创建 存在覆盖
- >>:追加
- cat 查看文件内容
- tac 可以倒着现实文件内容
- more less: 查看大文件
- enter 显示一行
- 空格 显示一屏
- less可以使用↑↓ moer不能
- q! Ctrl-c 终止查看
- head tail :查看文件头部、尾部
- head-N 文件名 查看文件前N行
- tail-N 文件名 查看文件后N行
- "|"管道命令:
- 将前一个命令的输出作为后一个命令的输出
- ls-l | more
- pwd:打印当前shell进程工作目录位置
- which 查询命令可执行文件所在目录位置
压缩解压
- 压缩:
- 语法: tar -zcvf 压缩包名.tar.gz 压缩原材料 or tar -jcvf 压缩包名.tar.bz2 压缩原材料
- z 为.tar.gz格式
- j为tar.bz2格式
- c 创建
- v 压缩过程
- f 指定压缩名(最后一个)
- 语法: tar -zcvf 压缩包名.tar.gz 压缩原材料 or tar -jcvf 压缩包名.tar.bz2 压缩原材料
- 解压:
- 语法: tar -zxvf 压缩包名 or tar-jxvftt
- x 解压缩
- -C 指定解压位置 如 tar -zxvf XXX -C
- file 命令可以查看文件类型 当没有指定.tar.gz or .tar.bz2时可以用这个查看类型
- 语法: tar -zxvf 压缩包名 or tar-jxvftt
用户管理
- su
- su 用户 :切换登录用户,不改变工作路径
- su - 用户: 切换登录用户,改变工作路径,为用户的家目录
- sudo:临时获得管理员权限 sudo 对应的命令执行结束,权限自动消失
- 添加:sudo adduser 用户名
- 验真:查看/etc/passwd 多出来的新用户
- 删除:suod deluser 用户名
- 修改当前登录用户密码:passwd
- 新增用户默认不能使用 sudo 修改配置文件/etc/sudoers,添加 与root用户格式完全一致的配置项
用户组管理
-
添加:soud addgroup 用户组
-
验证:查看/etc/group
-
删除用户组:sudo delgroup 组名
-
修改文件所有者:sudo chown 新用户名 文件
-
修改文件用户组:sudo chgrp 组名 文件名
-
修改文件权限:chmod
- 文字设定法:
- u:所有者
- g:所属组
- o:其他人
- a:所有
- +:添加权限
- -:删除权限
- =:赋值权限
- rwx:读、写、执行
-
==数字设定法==
- 4 2 1
- r w x
- 文字设定法:
-
比较rwx对于目录和文件的差异
-
文件 目录 r 查看文件内容,cat、tac、more、less、head、tail、vi 查看目录文件内容, ls、vim 目录 w 文件内容可以修改、删除、增加、vi、>、>> 目录内可以增加,改名,删除。rm、mv 、cp、touch、mkdir... x 可以执行 ./文件名 目录可以被进入,cd
-
系统管理
ps命令
- 语法:ps xua | grep 关键字
- 搜索结果应该在>=2条,表示系统运行相关进程
Kill
- top:动态获取Linux下的进程状态,类似win任务管理器
- kill:
- ps aux | grep 关键字 获取 进程id(唯一标识符)
- kill - 9 进程id 杀死进程
- kill -l 查看Linux系统支持的所有"信号"
查找和检索
find命令
- 语法:find 目录位置 -选项 参数
- -name 按名字搜
- find /home/itcast/go - name "*.mp4"
- find 目录 -name "p?"
- -type 按类型搜
- 类型: - d l c b p s
- find 目录 type -
- -size 按文件大小搜索
- find 目录 -size +nk -size -nk (大小前面必须加上 -size)
- k必须小写 M必须大写 G必须大写
- 不加单位,默认以扇区 512b,0.5k
- -maxdepth 指定搜索层级深度
- find 目录 -maxdepth N - 结合上面搜索类型
- 建议将 -maxdepth 放在所有参数最前端
- -exec 给find搜索结果转交给其他语法继续执行 类似管道
- 语法:find语句 -exec 命令 {} ;
- xargs 解析 | :对find的搜索结果,执行某些命令
- find 搜索语法 | xargs 命令
- 当问及名包含特殊字符(空格)时,通过-print0 分割find 搜索结果 在xargs中,指定分割标记
- -name 按名字搜
- 通配符:
- ?:匹配任意一个字符
- *:匹配任意多个字符(包含0个)
grep命令
- 语法:grep -r "搜索关键字" 目录位置
vim文本编辑工具
- 安装 sudo apt-get install vim
- 工作模式
- 命令模式 vi/vim 文件名 进入后一开始为命令模式
- i、a、o、s 进入文本模式
- ==i:插入到光标所在位置的前面==
- a:插入到光标所在位置的后面
- ==o:插入在光标所在行的下一行==
- O:插入在光标所在行的上一行
- I:插入光标所在行的行首
- A:插入光标所在行的行尾
- s:删除光标选中字符,修改工作模式
- S:删除光标所在行,修改工作模式
- : 命令模式转末行模式
- ==ZZ保存退出命令模式==
- i、a、o、s 进入文本模式
- 编辑模式(文本模式)
- esc 回到命令模式
- 末行模式
- ==wq 保存退出==
- w:保存
- q:退出
- ==q! :强制退出==
- x:保存退出
- esc*2回到命令模式
- ==wq 保存退出==
- 命令模式 vi/vim 文件名 进入后一开始为命令模式
- vim移动
- gg:跳转文件的首航
- G:跳转文件的末行
- gg=G:自动排版
- nG:跳转到文件的N行
- 末行模式下:
- n 跳转到文件的N行
- 0 移至光标到行首
- $移至光标到行尾
- 复制粘贴
- yy:复制光标所在行
- p:粘贴到光标所在行的下一行 np粘贴n次
- P:粘贴到光标的所在行上一行 nP粘贴n次
- ndd:剪切从光标位置向后的N行
- 区域剪切
- 将光标移至待剪切的起始位置上
- 按v 左下角出现"—可视--"提示
- 使用hjkl移动光标,选中待剪切区域
- 使用d剪切
- 移动光标到粘贴位置,p向后粘,P向前粘
- d0:剪切从光标位置到行首的内容
- d$/D:剪切从光标位置到行尾的内容
- dw:将光标位置于单词的首字母上,剪切单词
- 撤销反撤销
- u撤销
- ctrl-r 反撤销
- 误按Ctrl+s 按Ctrl+q退出
- 查找替换
- 查找:
- 想找一个字符串,在文本中找寻
- 命令模式下:/(在末行位置出现提示符)
- 输入待找寻的字符串
- 按n,从前向后找
- 看到一个字符串,找后出现的位置
- 将光标移至单词的任意一个字符上
- 按*从前向后找,按#从后向前找
- 按n代表下一个
- 想找一个字符串,在文本中找寻
- 替换:末行完成
- 语法:s/旧字符串/新字符串
- 单行替换:
- 光标移至待替换行任意位置
- 进入末行
- s/旧字符串/新字符串/g
/g的作用,如果出现多次旧字符串可以全部替换
- 通篇替换:
- %s/旧字符串/新字符串/g
- 多行替换:
- 起始行号,终止行号s/旧字符串/新字符串/g
- 查找:
- 其他功能
- 分屏
- 横屏:
- 末行 sp
- 命令模式下 Ctrl-ww 在分屏中切换
- 竖屏:
- 末行 vsp
- :wq退出当前分屏
- :wq退出所有分屏
- 横屏:
- vim中使用shell命令:
- 在vi里可以使用!后跟所有指令
- 分屏
SSH远程登录
- ssh远程连接
- 保证网络通畅
- 安装ssh
- shh主机用户名@主机ip地址:
- 确认远程登录
- 输入对端主机密码
- 默认登录到用户的家目录下
- 就像操作自己本地主机一样
- ssh远程传输
- 将远端文件拷贝到本机:
- scp -r 主机用户名@ip地址: 待拷贝文件绝对路径 本地存储路径
- 本地文件传输远端主机:
- scp -r 本地文件路径 主机用户名@ip地址: 远端存储绝对路径
- 将远端文件拷贝到本机:
网友评论