1、Linux基础应用
Linux的 主流的发行版: Ubuntu redhat centos
以下以学习Ubuntu版本为主:
2、Linux系统结构
类比银行 了解
结构 内核空间 与 用户空间
用户 通过 shell --- 系统调用 访问 内核空间 ---- 终端 输出结果
用户 自定义的程序 .out --- 系统调用 访问 内核空间
- 用户空间: 大厅 VIP包间 应用程序 命令 ls ... 工具软件 gcc
- shell: 命令解释器 大厅经理
- 连接层: 系统调用 (一些函数) 银行柜员窗口
- 内核空间: 系统调用
- 系统内部
- 硬件设备管理
- 驱动管理
- 文件系统
- 进程管理
- 内存管理
- 网络管理
3、Linux文件系统: 一切皆文件
- Linux中磁盘的 表示 /dev/sda 第一块磁盘 sd 表示这个硬盘是stat接口 m.2
- /dev/sda1 磁盘分区 1
- /dev/sda2 磁盘分区 2
- 磁盘分区查看命令
- sudo fdisk -l
- Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
- Units: sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disklabel type: dos
- Disk identifier: 0x0c1d422e
- 设备 启动 Start 末尾 扇区 Size Id 类型
- /dev/sda1 * 2048 75493375 75491328 36G 83 Linux
- /dev/sda2 75493376 83886079 8392704 4G 5 扩展
- /dev/sda5 75495424 83884031 8388608 4G 83 Linux 虚拟的
4、文件系统的类型及文件相关
- 文件系统的类型:
- 存储方式分 本地文件系统 网络文件系统 虚拟文件系统(内存文件系统)
- 文件的路径: 找到一个文件的 字符串位置
- Windows: D:\WorkSpace\Linux\5子棋.rar
- Linux: /home/xwq/c基础
- 相对路径: 相对于某个位置的路径 ../ ~/c基础
- 在某些情况下 路径才是正确的
- 绝对路径: 从根目录开始的一个路径 /home/xwq/c基础
- 在当前计算机中 任何位置 都可以使用绝对路径访问文件
- Linux与Windows 文件系统区别:
- 文件命名: Linux区分大小写 Windows 不区分大小写
- Linux中有些类型文件 在Windows中不支持
5、Linux的部分根目录结构
- /bin 存放二进制文件 系统命令 等
- /dev 设备目录 存储系统设备文件等
- /home 用户家目录的 总目录
- /root 管理员用户的家目录
- /etc 系统配置目录 存放系统或软件的一些配置文件
- /proc 虚拟文件系统, 存放系统中的 一些进程或系统属性
- /lib 存放库文件
- /opt 存储第三方软件 安装包
- /usr 用户相关的 文件
- /mnt 系统挂载目录
Linux命令查找大全:http://man.linuxde.net/
6、shell命令的了解及部分使用
shell命令: 用于方便使用者 更好的使用Linux操作系统 而设计的一些 命令
这些命令 通过shell 解释器 进行解释
格式: 各个部分间 至少有一个空格分隔 选项和参数可以有 也可以没有
命令名 选项 参数
选项: 以-开头的 通常为单个字母 用于选择一些额外功能或结构
参数: 一般给定 操作目标 或 对象
ls -a 显示当前目录中 的 所有文件包括隐藏文件的 名字
ls ../ 显示 ../ 目录中的 文件名字
ls -l a.txt 显示当前目录中 名叫a.txt文件的 详细信息
ls -la 显示当前目录中 所有文件包括隐藏文件的 详细信息列表
shell命令中的一些特殊符号
shell命令 中的 特殊符号
- 1.通配符 用于文件名, 代指某些特殊规律的组合
- * 代指 任意长度任意字符 *.c 代指所有.c结尾的文件
- ? 代指 一个长度任意字符 ?.* 代指所有第二个字符是.的文件
- [] 代指 给定字符中的某一个 [0123456789]* 代指所有数字开头 的文件
- [^]代指 除给定字符中的某一个 [^0123456789]* 代指所有非数字开头的文件
- [-]代指 给定字符范围中的某一个 [0-9]* 代指所有数字开头 的文件
- [a-z]* 所有字母开头的 文件 不区分大小写
练习: 若有文件 123.txt 1.txt 2.txt abc.txt a.c A.c a.txt BBB.txt b.c
1. ls 第2个是数字字符的 文件 ?[0-9]*
2. 有3个字符开头的 .txt文件 即 abc.txt BBB.txt 123.txt
???.txt
- 2. 管道符 | 作用 连接两个命令 将上一个命令的输出 作为一下命令的输入
- printf() scanf()
- wc 统计输入命令
cat 命令 读取一个文件 内容 并输出到终端
输入统计 wc命令
wc -l 统计输入的行
wc -w 统计输入的单词 按空格区分
wc -c 统计输入的字符个数
ls | wc -l 统计当前目录中文件的个数 统计 - grep 命令 用于字符串筛选 可以对输入的字符串进行规则筛选(正则表达式)
- ls -l | grep -E "^d" | wc -l 统计目录中有多少个目录
ls -l | grep "^.rwx" 筛选 当前目录中 所有 对所有者可读写执行的文件
- 3. 转义符 \ 作用: 将一个普通字符转义为特殊含义或将特殊字符 转义为其本身的含义
- \* 表示'*'本身 \\ 反斜杠本身
- 4. 目录分隔符 / 根目录符 一个不能被转义的符号
- 目录分隔符/ 根目录符 /不能被\转义
了解:
- 5.输入输出重定向符
- > 以新建模式 输出重定向
> 输出重定向 以覆盖模式 ps -aux > ps.txt 将 ps -aux命令输出 重定向到文件中 - >> 以追加模式 输出重定向
- < 输入重定向
- < 输入重定向 wc -l < ps.txt wc统计输入的行 从文件ps.txt中内容作为输入源
- 6.命令置换符 (shell脚本中有使用)
- `` 将一个命令的输出作为 另一个命令的参数
7、Linux中的常用命令
- 目录与文件相关命令:
- cd
- ls
- mkdir
- rmdir
- du -sh 目录 用于查看目录的 存储大小
- tree 用于 树状结构查看目录
- mv 移动+改名字
- cp 复制+改名字 -r 复制目录
- touch 创建普通文件
- rm 删除文件 rm -r 递归删除 目录及目录中的文件
- 编辑:
- vim gedit
- 查看文件内容 (输出文件内容到终端)
- cat全部输出 head从头部开始输出 tail从尾部开始输出
- more翻页查看内容 less换行查看内容
- cat全部输出 head从头部开始输出 tail从尾部开始输出
- cat head tail more less
- 全看 开头 末尾 翻页 换行看
- 文件或目录的权限设置:
- sudo +命令 该命令使用管理员权限运行
- sudo chmod 777 123.txt 管理员权限
改所有者是自己的文件, 可以不用管理员权限 - 修改文件权限 chmod 0666 main.c
- chmod : 改变文件或目录的访问权限
chmod 权限码8进制数 文件或目录名 - 修改文件的所有者 sudo chown 用户名 文件或组名 需要管理员权限运行
- 改文件的 所有者
sudo chown 修改的所有者名 文件或目录名
- 改变文件或目录所属的组 sudo chgrp 组名 文件或目录名
- sudo 在命令运行前添加 表示该命令 暂时使用管理员权限运行
- root 用户 管理员 上帝
- 文件的归档与压缩:
Windows使用的 .rar .gz
Linux: .tar .tar.gz - 压缩: tar -cvzf tmp.tar.gz aaa bbb
- tmp.tar.gz 生成的压缩文件名 自定义
- aaa bbb 需要压缩的文件名
- 解压缩: tar -xvf tmp.tar.gz
- gzip gunzip 解压缩文件 .zip
- 统计与查找
- grep 查找字符串 grep -rn "hello" 查询当前目录下有哪些文件包含字符串"hello"
- wc 统计输入的 单词 行 字符 个数
- find 查找文件名 find -name test.c
- linux 中的软链接与 硬链接
- linux 中的软链接与 硬链接
- 软链接: 等同于 Windows中的 快捷方式
- ln -s ./123.txt l_123.txt 创建一个软链接 名字为 l_123.txt 链接到 ./123.txt
- 软链接 创建时的 路径
- 相对路径 可以导致 软件文件移动位置后 不能使用
- 绝路路径 软链接可以移动到 当前电脑的任意位置使用
- ln 123.txt aaa
- 硬链接: 只有Linux系统支持
- 本质是复制 文件的inode号 并关联一个新的名字
8、用户相关
- 用户相关:
- 用户名: 用于登录一个计算机的 凭证
- 口令 : 密码 登录用户的密码
- 家目录: 用户的初始工作目录
- 用户组: Linux中 可以将多个用户 放到一个组中
- 用户ID(UID) 一个值 唯一标记一个用户
- 用户组ID
- 用户相关命令: 管理员身份运行
- adduser 添加一个用户到Linux中
- deluser 删除一个用户
- su 用户名 切换用户身份
- 修改用户名
usermod -l (L) UserNewName UserOldName - passwd 修改当前用户自己的密码
- 管理员改其他用户的密码
- usermod -p 123456 username
- Linux密码文件 /etc/passwd