Linux 的基础知识
Linux 简介
- Linux 分为内核版本和发行版本。发行版本在内核基础上增加各种功能。在服务器领域使用 redhat,ubuntu 具有图形界面偏向个人应用。
- Linux 严格区分大小写;所有内容以文件形式保存,包括硬件。
- Linux 不靠扩展名区分文件类型,但为使用方便,有一些约定俗成的扩展名。
安装:
- 使用虚拟机 VMware 安装 Ubuntu。本机系统可以与虚拟机系统网络通信;可以设定并随时修改虚拟机操作系统的硬件环境。
- 格式化的目的是为了写入文件系统:分为等块大小;创建表格记录文件 ID 号、修改时间、权限。
常用命令
查询目录
drwxr-xr-x | 2 | silencial | silencial | 4096 | Apr 8 20:00 | Desktop |
---|---|---|---|---|---|---|
第一位表示文件类型 (- 文件,d 目录,l 软链接文件) | 引用计数 | u 所有者 | g 所属组 | 大小 | 时间 | 名称 |
之后每三位进行划分表示权限 (u 所有者、g 所属组、o 其他人) (r 读、w 写、x 执行) |
文件处理命令
常见目录
/bin
重要的系统命令/sbin
重要的系统命令 (一般只有 root 能调用)/dev
硬件设备文件/etc
配置文件 (host-specific)/home
用户主目录/lib
系统软件库/opt
可选应用软件/sys
系统信息和配置/root
超级用户家目录/tmp
临时目录,/var/tmp
类似,一般在重启时删除/usr
只读用户数据/usr/bin
非重要的系统命令 (普通用户)usr/sbin
非重要的系统命令 (超级用户)/usr/local/bin
用户自编译的命令
/var
系统 logs 和 caches
链接命令
硬链接
- 相同的 i 节点和存储 block 块,可以看做是同一个文件
- 可通过 i 节点识别
- 不能跨分区
- 不能针对目录使用
软链接
- 类似 Windows 快捷方式
- 软链接拥有自己的 i 节点和 block 块,但数据块中没有实际的文件数据
- lrwxrwxrwx 所有软链接文件
ln -s [原文件] [目标文件]
- 生成链接文件
- -s 创建软链接
关机与重启命令
shutdown [选项] 时间
: 最安全,可以正确保存数据
-c
取消前一个关机命令-h
关机-r
重启&
加在最后表示后台执行
logout
退出登录
runlevel
查询当前系统运行级别
系统运行级别
- 关机
- 单用户
- 不完全多用户,不含 NFS 服务
- 完全多用户
- 未分配
- 图形界面
- 重启
其他常用命令
查询与自动挂载
mount
查询已挂载设备
mount -a
依据配置文件 /etc/fstab 的内容,自动挂载
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
-t 文件系统:加入文件系统类型来指定挂载的类型,可以 ext3、ext4、iso9660 等文件系统
-o 特殊选项:可以指定挂载的额外选项
mkdir /mnt/cdrom/
建立挂载点
mount -t iso966 /dev/cdrom /mnt/cdrom
挂载光盘
umount 设备文件名或挂载点
fdisk -l
查看 U 盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb/
Linux 默认不支持 NTFS 文件
用户登录查看命令
w 用户名
命令输出:
- USER: 登录的用户名
- TTY: 登录终端
- FROM: 从哪个 IP 地址登录
- LOGIN@: 登录时间
- IDLE: 用户闲置时间
- JCPU: 和该终端连接的所有进程占用的时间。不包括过去的后台作业时间,但包括当前正在运行的后台作业所占用的时间
- PCPU: 当前进程所占用的时间
- WHAT: 当前正在运行的命令
who 用户名
命令输出:
- 用户名
- 登录终端
- 登录时间
last
读取 /var/log/wtmp 文件数据
查询当前和过去登录的用户信息
命令输出:
- 用户名
- 登录终端
- 登录 IP
- 登录时间
- 退出时间
lastlog
读取 /var/log/lastlog 文件内容
查看所有用户最后一次登录时间
命令输出:
- 用户名
- 登录终端
- 登录 IP
- 最后一次登录时间
Shell 基础
Shell 概述
Shell 是一个命令行解释器,为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序
Shell 还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell 是解释执行的脚本语言,在 Shell 中可以直接调用 Linux 系统命令。
Shell 两种主要语法类型有 Bourne 和 C,这两种语法彼此不兼容。Bourne 家族主要包括 sh、ksh、Bash、psh、zsh;C 家族主要包括 csh、tcsh
echo $SHELL
查看当前在哪个 shell 下
脚本执行方式
echo [选项] [输出内容]
-e 支持反斜线控制的字符转换
\a 输出警告音
\b 退格键
\n 换行符
\r 回车键
\t 制表符,即 Tab 键
\v 垂直制表符
\0 按照八进制 ASCII 表输出字符
\x 按照十六进制 ASCII 表输出字符
“\e[1;31m blablabla \e[0m” 颜色输出
第一个脚本
|
|
脚本执行:
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过 Bash 调用执行脚本
bash hello.sh
Bash 的基本功能
命令别名与快捷键
alias
查看系统中所有命令的别名
alias 别名=‘原命令’
设定命令别名
vi ~/.bashrc
写入环境变量配置文件,使别名永久生效
之后调用 source .bashrc 重新载入配置文件
unalias
删除别名
命令生效顺序:
- 执行用绝对路径或相对路径执行的命令
- 别名
- Bash 的内部命令
- 按照 $PATH 环境变量定义的目录查找顺序找到的第一个命令
历史命令
history [选项] [历史命令保存文件]
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
历史命令默认保存 1000 条,可以再环境变量配置文件 /etc/profile 中进行修改
- 使用上下箭头调用以前的历史命令
- 使用 “!n” 重复执行第 n 条历史命令
- 使用 “!!” 重复执行上一条命令
- 使用 “!字串” 重复执行最后一条以该字串开头的命令
输出重定向
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/stdout | 1 | 标准输出 |
显示器 | /dev/stderr | 2 | 标准错误输出 |
标准输出重定向:
- 命令 > 文件: 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。
- 命令 » 文件:以追加的方式,把命令的正确输出输出到指定的文件或设备当中。
标准错误输出重定向:
- 命令 2 > 文件: 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。
- 命令 2 » 文件:以追加的方式,把命令的错误输出输出到指定的文件或设备当中。
正确输出和错误输出同时保存:
- 命令 > 文件 2 > &1:以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
- 命令 » 文件 2 > &1:以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
- 命令 &> 文件:以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
- 命令 &» 文件:以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
- 命令 » 文件 1 2 » 文件 2:把正确输出追加到文件 1,,错误输出追加到文件 2。
ls &> /dev/null 丢入垃圾站
输入重定向
wc [选项] [文件名]
-c 统计字节数
-w 统计单词数
-l 统计行数
输入完成后 ctrl+D
统计
- 命令 < 文件:把文件作为命令的输入
- 命令 « 标识符:标识符把标识符之间的内容作为命令的输入
磁盘管理
基本命令
df 查看磁盘分区使用状况
-l 仅显示本地磁盘(默认)
-a 显示所有文件系统的磁盘使用情况
-h 以 1024 进制计算最合适的单位显示磁盘容量
-H 以 1000 进制计算最合适的单位显示磁盘容量
-T 显示磁盘分区类型
-t 显示指定类型文件系统的磁盘分区
-x 不显示指定类型文件系统的磁盘分区
du 统计磁盘上文件大小
-b 以 byte 为单位统计文件
-k 以 KB 为单位统计文件
-m 以 MB 为单位统计文件
-h 按照 1024 进制以最合适的单位统计文件
-H 按照 1000 进制以最合适的单位统计文件
-s 指定统计目标
硬盘分区和格式化
分区模式之 MBR
- 主分区不超过 4 个
- 单个分区容量最大 2 TB
分区模式之 GPT
主分区个数 128 个
单个分区容量 18 EB
fdisk 进行 MBR 硬盘分区
parted 可以进行两种硬盘分区
mkfs.ext3 /dev/sda 格式化