Shell
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口Shell接收用户输入的命令然后送入内核去执行
Shell起着协调用户与系统的一致性和在用户和系统之间进行交互的作用
用户提交命令后,Shell先判断它是否是内置命令,如果是就通过Shell内部的解释器将其解释为系统功能调用并转交给内核执行,若是外部命令或实用程序就试图从硬盘中查找该命令并调入内存,再将其解释为系统功能调用并转交给内核执行
Shell元字符
* 代表任意字符串
? 代表任意字符
$ 变量值置换
' '...'中字符当做文字处理
" "..."中间的字符当做文字处理并允许变量值置换
` 命令替换
通配符
* 匹配任何字符和任何数目的字符
? 匹配单一数目的任何字符
[] 匹配[]之内的任意字符
[!] 匹配除了[!]之外的任意一个字符
文本处理命令
1.cat 显示文本内容cat [参数] [<文件>...]
参数:-n 由1开始对所有输出编号
-b 不对空行编号
2.more 分屏显示文本文件
more [参数] [<文件>...]
参数:+num 从num行开始
3.head 显示文件前面
head -5(显示前5行,不指定参数就显示前10行) file
4.tail 显示文件后面
tail [参数] [<文件>...]
参数:-n 显示后n行,不指定显示后10行
+n 从第n行显示到文件尾部
-F 用于跟踪显示不断增长的文件结尾内容(用于显示日志)
5.cut 纵向切割文本指定部分并写道标准输出
cut [参数] [<文件>...]
6.paste 纵向合并多个文本写到标准输出
paste [参数] [<文件>...]
7.uniq 删除文本文件中相邻的重复的行并写到标准输出
uniq [参数] [<输入文件> [<输出文件>]]
8.wc 统计文本文件的行数,字数,字符数
wc [参数] [<文件>...]
参数:-c 输出字节数统计
-l 输出行数统计
-L 输出最长一行的长度
-w 输出单词数统计
9.expand 将文件中的制表符转换为空格,写到标准输出
expand [参数] [<文件>...]
10.unexpand 将文件中的空格转换为制表符,写到标准输出
unexpand [参数] [<文件> …]
11.iconv 将文件从一种编码转换成另一种编码
iconv [参数] <输入文件>
常用参数:
-f <encoding> : 指定原始文本编码
-t <encoding> : 指定要转换的编码
-l : 列出所有已知编码字符集
-c : 忽略输出中的无效字符
-o <output file> : 指定输出文件,而不是在标准输出上显示
文件与目录操作命令
1.ls 显示文件和目录列表ls [参数] [<文件或目录> …]
常用参数:
-a : 不隐藏任何以 . 字符开始的条目
-l : 使用较长格式列出信息
2.pwd 显示当前工作目录
pwd -P(若目录是一个符号链接,显示的是物理路径而不是符号链接)
3.mkdir 创建目录
mkdir -p(创建目录树, 需要时创建上层目录,如目录已存在也不视作错误) some/path/dir/
4.rmdir 删除空目录
rmdir -p(删除目录,然后尝试删除指定路径中的所有上层目录) some/path/dir/
5.touch 生成新的空文件或更改现有文件的时间戳
6.cp 复制文件或目录
cp [参数] <源> <目标>
常用参数:
-d : 当复制符号链接的源文件时,目标文件也将创建符号链接且指向源文件所链接的原始文件
-f : 强制复制,不管目标是否存在
-i : 交互式复制, 覆盖文件前需要确认
-p : 在复制文件过程中保留文件属性,包括:属主、组、权限与时间戳
-R, -r : 递归地复制目录及目录内的所有项目
7.mv 移动文件或目录、文件或目录改名
mv [参数] <源> <目标>
常用参数:
-f : 强制移动,不管目标是否存在
-i : 交互式移动, 覆盖文件前需要确认
8.rm 删除文件或目录
rm [参数] <文件> …
常用参数:
-f : 略过不存在的文件,不显示任何信息
-i : 进行任何删除操作前必须先确认
-r, -R : 递归删除该目录下的所有目录层
9.ln 创建链接文件
ln [参数] <被链接的文件> <链接文件名>
常用参数:
-s : 创建符号链接,而非硬链接
-f : 强行创建链接,不论其是否存在
-i : 覆盖原有文件之前先询问用户
10.tar 文件打包和解包
tar [参数] <目录> …
常用参数:
-f name : 使用nam e指定存档文件名或设备名
-v : 列出处理的详细信息
-c : 用于创建一个新的存档文件
-x : 从归档文件中恢复备份文件
-t : 用于列出一个存档文件中的文件名
-z : 用GNU的gzip压缩文件或解压
-Z : 用com pre ss压缩文件或解压
-j : 用bzip2压缩文件或解压
信息显示命令
1.uname 显示系统信息uname [参数]
常用参数:
-a : 显示全部的信息
-s : 显示内核名称(kernel name)
-r : 显示内核版本(kernel release)
-v : 显示内核版本类型及发布时间(kernel version)
-m : 显示计算机系统架构类型,等同于arch命令
-n : 输出网络节点上的主机名
-o : 显示操作系统名称
2.uptime 显示从开机到当前的时间
3.dmesg 显示开机信息
4.file 显示文件类型
file [参数] [<文件或目录> …]
常用参数:
-z : 探测压缩过的文件类型
-L : 直接显示符号链接所指向的文件类型
-f namefile : 从文件namefile中读取要分析的文件名列表,让file依次辨识这些文件的类型。namefile的格式为每行一个文件名。如果要检查标准输入,使用 - 作为namefile 参数。
-v : 在标准输出后显示版本信息
5.stat 从inode中提取并显示文件状态信息或文件系统信息
命令格式: stat [参数] [<文件> …]
常用参数:
-f : 显示文件系统信息
-t : 使用简洁格式输出信息
-L : 跟随链接
6.du 统计文件的磁盘用量,目录取总用量
du [参数]
常用参数:
-c : 显示所有项目相加后的总用量
-h : 使用人类习惯的方式显示
-s : 只分别计算命令列中每个参数所占的总用量
-S : 不包括子目录的占用量
-x : 忽略不同文件系统上的目录
--max-depth=N : 值统计 N 层目录,N为整数
7.df 查看磁盘剩余情况
df [参数]
-h : 以人类容易理解的格式显示
-i : 显示 inode 的使用量而非块的使用量
-l : 仅显示本地的文件系统
-t <fstype> : 仅显示指定类型文件系统的使用量
-x <fstype> : 不显示指定类型文件系统的使用量
8.top 实时显示进程任务
top [参数]
常用参数:
-c : 显示每个进程的完整指令
-u <user> : 只显示指定用户账号的进程
-i : 忽略僵死进程
-s : 使用安全模式消除互动模式下的潜在威胁
9.free 显示内存使用状态
free [参数]
常用参数:
-b : 以Byte为单位显示内存使用情况
-k : 以KB为单位显示内存使用情况
-m : 以MB为单位显示内存使用情况
-s <sec> : 持续观察内存使用状况,<sec> 为时间间隔秒数
-t : 显示内存总和
10.which 在环境变量 PATH 设置的目录下查找指定文件的位置
which [参数] <文件> …
常用参数:
-a : 显示所有匹配的路径
11.whereis 在特定目录中查找符合条件的文件(包括二进制文件、手册页文件、源码文件)
whereis [参数] <文件> …
基本网络操作命令
1.telnet 用Telnet协议与另一个主机通讯telnet [参数] [<主机名[端口]>]
2.ssh 使用SSH协议登录远程主机的客户端
ssh [参数] [-l login_name] [hostname | [username@]hostname] [command]
3.scp 基于SSH协议在本地主机和远程主机之间复制文件
scp [[user@]host1:]file1 [...] [[user@]host2:]file2
4.ftp ftp字符界面客户端
ftp [参数] [主机名]
5.wget 使用 HTTP 和 FTP 协议,支持代理服务器和断点续传,是基于控制台最强大的下载工具。
wget [参数] <URL>