声明:是根据视频教程听的笔记还有做了一些摘要,^_^,无意侵犯版权,哈哈,如果有影响请作者告知,马上删除。以下是我--云瑞的笔记,保留一切权力。转载请注明出处。
第2章 linux的常用命令
主要介绍文件相关命令。
命令使用方式:主程序-系统工具-终端。或者在桌面上选择终端,进入命令行操作界面。不同用户级别的提示符不同,$为普通用户,#为超级用户。
回车----当前行结束,默认控制符。如果需要续行,可以"/回车"。输入一般控制符必须先按下CTRL键,然后再按所对应的字符键。打命令发现命令不对,可以退格。可以通过CTRL-C和DEL或break键终止程序。
CTRL-h 退格
CTRL-d 终端输入结束
CTRL-m 回车
CTRL-g 控制终端响铃
date 显示当前的时间和日期
who 显示系统中的哪些用户在工作
who am i 显示当前用户的注册信息
whom 没有那个文件或目录
Tab 用作命令补齐字符,当键入的字符足以确定目录中的一个唯一文件时,用Tab命令可以补齐剩下的文件名。
特殊字符:有些字符串表示系统中特殊的变量
home 当前用户的用户目录
path bash寻找可执行文件的搜索路径
PWD 当前工作目录
PS1 命令行的一级提示符
PS2 命令行的二级提示符
在shell中将详细讲述。
history[n]列出以前打过的命令 ,N表示仅有最后几个历史命令会被列出。
history [-r|w|a|n][filename] -r读历史列表文件并将其当作当前命令历史列表 -w,写入文件并覆盖原文件 -a追加到当前文件中 -n,将读取内容并加入到当前历史命令列表中。如果filename省缺则以HISTFILE值代替。
命令可以取别名,命令别名格式:
alias [alias-name='original command']
alias-name----用户给命令取的别名,original command----原来的命令和参数。等号两边不能有空格,仅在命令中包含空格或特殊字符时才需要引号。如果不带任何参数的alias命令,则显示已定义的别名。
第一、二级提示符可以修改,例如:
PS1="输入一个命令"
特殊字符:
\! 显示该命令的历史编号
\# 显示shell激活后,当前命令的历史编号
\$,显示一个$,如果是root用户则显示#
\\ 显示\
\d 显示日期
\h 显示运行shell的主机名
\n 换行符,导致提示跨行
\s 显示正在运行的shell的名称
\t 显示当前时间
\u 显示当前的用户名
\W 显示当前工作目录基准名
\w 显示当前工作目录
通配符基础:
? 该位置匹配任意的单个字符
* 该位置匹配若干个任意字符
[charset] 字符的集合
文件概念及命令操作
1文件显示命令:
ls[选项][文件目录列表]
选项参数:
-a 显示所有文件及目录(文件名/目录名开头为.的不列出)
-c 纵向排列
-x 横向排列
-l 列出文件详细信息
-t 按时间顺序列出文件
-A 同-a,但不列出.(当前目录)以及..(父目录)
-X 按扩展名排序显示
-R 递归显示下层目录
-HELP 显示帮助信息
--version 显示版本信息
linux支持多种文件类型,每一类用一个字符表示如下:
-常规文件
d 目录
b 块特殊设备
c 字符特殊设备
p 有名管道
s 信号灯
m 共享存储器
文件类型的字符表示文件的权限,权限由三个字符串组成,分布表示该文件所有者的权限、组中其他人的权限和系统中他人的权限,每个字符串由三个字符表示,r 文件读,w 文件写,x 文件执行,-无相应权限
2查找、排序及显示指定文件内容的命令
查找文件,格式如下:
#find[目录列表][匹配准则]
目录间用空格分隔。
1)通过文件名查找,例如:#find/ -name httpd.conf -print
2)根据部分文件名查找
#find/ -name *http* -print
3)根据文件的属性进行查找,例如:#find/etc -size -2500c -print
显示文本文件内容,如:
cat [选项] 文件列表
参数如下:
-b计算所有非空输出行,开始为1。
-e在每行末尾显示$符合。
-h计算所有输出行,开始为1。
-s将相连的多个空行用单一空行代替。
查找文件内容
grep[选项] 匹配字符串 文件列表
-c 对匹配的行计数
-l 只显示包含匹配的文件的文件名
-h 抑制包含匹配文件的文件名显示
-n 每个匹配行只按照相对的行号显示
-i 产生不区分大小写的匹配,省缺状态是区分大小写
排序命令
sort[选项]文件
比较文件内容的命令
comm命令:对两个已经有序的文件进行比较,语法如下:
comm [-123] file1 file2
生产三列输出,仅在file1出现的行,仅在file2出现的行,在两个文件都存在的行。
diff命令:比较两个文件的不同内容,语法如下:
diff [参数] 原文件 目标文件
参数
a 将所有文件当作文本文件处理
b 忽略空格造成的不同
B 忽略空行造成的不同
q 只报告不同的地方,不报告具体不同信息
H 利用试探法加速对大文件的搜索
i 忽略大小写的变化
l 比较目录时比较所有子目录
s 两个文件相同时才报告
v 输出版本信息并退出
复制、删除和移动文件的命令
文件复制:复制文件或目录,格式如下:
cp [选项] 源文件 目标文件
cp [选项] 源文件组 目标目录
选项
-a 在备份中保持尽可能多的源文件结构和属
-b 做将要覆盖或删除文件的备份
-f 删除已存在的目标文件
-i 提示是否覆盖已存在的目标文件
-p 保持原文件的所有者,组权限和时间标志
-r 递归拷贝目录,把所有非目录文件当作普通文件拷贝
-R 递归拷贝目录
文件删除命令:删除文件及整个目录,格式如下:
rm [选项] 文件列表
选项
-r 删除文件列表中指定目录,不用此选项,则不删除目录
-I 在执行删除前提示确认。
-f 强行删除模式,无提示
-V 在删除前回显文件名
--指明所有选项结束
#rm -R* 危险命令,删除整个系统。
移动文件,给文件改名,语法格式:
mv [-f] [-i] 文件1 文件2
mv [-f] [-i] 目录1 目录2
mv [-f] [-i] 文件列表 目录
-f 通常情况下,目标文件存在但用户没有写权限时,mv会给提示,该选项,使mv命令不给提示
-i 交互模式,当移动的目录已存在同名目标文件名时,用覆盖方式写文件,写入前给出提示
文件内容统计命令:
格式:wc [选项] 文件列表
如没给出文件名,从标准输入读取。字,由空格字符区分开的最大字符串。
-c 统计字节数
-l 统计行数
-w 统计字数
命令的输入和输出
linux系统,执行一个shell命令行时通常会自动打开三个标准文件:标准输入文件(stdin),对应终端键盘,标准输出文件(stdout)和标准错误输出(stderr),均对应终端屏幕。
linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道。
输入重定向:把命令的标准输入重定向到指定文件中。用于改版一个命令输入源。用<表示。另一种重定向,为here文档,用<<表示,它将一对分隔符(!...!)之间的正文重定向输入给命令。
输出重定向:将标准输出或标准错误输出重新定向到指定文件中。输出重定向的一般形式为:命令>文件名
覆盖
输出追加重定向:命令>>文件名
追加
输出追加重定向,该文件的原有内容不被破坏。
管道:把一个程序的输出作为另一个命令的输入。符号 |
例如:#ls -l|wc-l
命令替换
格式:command1 'command2'
其中command2的输出将作为command1的参数。
目录及其操作
1树型目录结构
系统本身的驻留程序存放在以根目录开始的专用目录中
用户登录后,先进入主目录。
linux的主要目录说明
/bin 二进制文件,可执行程序
/boot 存放系统启动时用到的程序。引导目录
/dev 设备。不放外部设备的驱动程序
/etc 存放配置文件和子目录。文件系统,网络配置文件,X系统配置文件,设备配置文件,用户信息都在这个目录下,系统级的配置文件
/sbin 存放系统管理程序
/home 存放用户主目录
/lib 库,存放系统动态连接共享库。所有程序都会用到。
/mnt 一般为空,可临时将别的文件系统挂在这个目录下
/proc 在该目录下获取系统信息,在内存中由系统产生,虚拟文件系统
/root 超级用户主目录
/tmp 存放不同程序执行时产生的临时文件
/usr 占用硬盘空间最大的目录,用户安装的很多信息
创建目录,格式:
mkdir [-m模式] [-p目录名] 目录
建立目录时,按模式设置目录权限,权限分为:目录所有者的权限,组中其他人对目录的全息和系统中他人对目录的权限。三个权限分别用三个数字之和表示,对目录的读权限是4,写权限2,执行权限是1。
-p目录名:建立所有不存自父目录的目录
目录 要建立的目录
删除目录,删除的目录必须为空目录,否则报告出错,格式如下:
rmdir -p 目录列表
-p 删除目录表指定的目录后,若父目录为空,也删除父目录,状态信息显示被删除,删除什么
目录列表:空格分隔的目录名列表,要删除的目录必须为空
显示当前目录,格式pwd
改变当前工作目录,格式:cd [目录名]
链接文件命令:在文件之间创建链接。给一个系统中已有的某个文件指定另外一个可用于访问它的名称。
语法如下:
ln[选项] 目标 [链接名]
ln[选项] 目标 目录
链接文件和被链接文件位于同严格文件系统,不能建立指向目录的硬链接。
ln默认为硬链接。
给ln加上-s选项,建立符号链接。链接名可以是文件也可以是目录,允许不在同一个文件系统,如果链接名已存在,则在该目录下建立一个或多个鱼目标同名的文件,此新建的文件实际上是指向原目标的符号链接文件。
改变文件或目录权限,只有目录/文件的所有者或者超级用户可以设置权限。格式如下:chmod [选项] 文件和目录列表
使用八进制数设置权限,执行读写权限对应数值1,2,4
若RWX属性为4+2+1=7
RW- 4+2=6
R-X 4+1=5
例如:$chmod g-r -w -x 文件名
改变所有权
chown [选项] 用户 文件和目录列表
文件压缩
gzip压缩文件
gzip [选项] 压缩/解压 文件名
选项
-c 将输出写到标准输出上,并保留原文件
-d 将压缩文件解压
-l 显示每个压缩文件的详细信息
-r 递归查找指定目录并压缩/解压其中所有文件
-t 测试,检查压缩文件完整性
-v 显示每个文件的文件名和压缩比
文件打包tar
tar可以对文件或目录打包,可以对某一特定文件打包,也可以在包中改版或者加入新文件。格式如下:
tar [主选项+辅选项] 文件或目录名
主选项
-c 创建新的档案文件。如用户想备份一个目录或一些文件,选此项。
-x 从档案文件中释放文件
-r 把要存档的文件追加到档案文件的末尾
-t 列出档案文件的内容,查看备份了哪些文件
-u 更新文件,用新增文件代替原备份文件,如果没有更新文件则追加到文件最后。
辅选项
f 使用档案文件或设备,必选
K 保存已经存在的文件
m 在还原文件时,把所有文件的修改时间设定为现在
M 创建多卷的档案文件
v 详细报告tar处理的文件信息
z 用gzip来压缩/解压文件
unzip命令,解压.zip文件,格式:unzip [选项] 压缩文件名.zip
选项
-x 文件列表解压缩文件,但不包括指定的file文件
-v 查看压缩文件目录,但不解压
-t 测试文件有无损坏,但不解压
-d 把压缩文件解压到指定目录
-z 只显示压缩文件的注解
-n 不覆盖已存在的文件
-o 覆盖已存在的文件且不要求用户确认
-j 把所有文件解压到同一目录下
联机帮助
显示帮助手册,格式:man [选项] 命令名称
-S 根据章节显示
-f 只显示命令的功能而不显示详细说明文件
-w 不显示手册页,只显示将被格式化和显示的文件所在位置
-a 显示所有手册页
-E 在每行的末尾显示$符号
1 一般使用者命令
2 系统调用的命令
3 C语言库函数的命令
4 有关驱动程序和系统设备的解释
5 配置文件的解释
6 游戏程序的命令
7 其他的软件或程序的命令和有关系统维护的命令
系统帮助文档
help命令用于查看所有shell命令的用法,只需在所查找的命令后输入help命令即可。例如:$cd--help
whereis命令
寻找一个命令所在的位置。格式:whereis [选项] 命令名
一般不加选项,也可根据需要。
-b 只找二进制文件
-m 查找主要文件
-s 查找来源
-u 查找不常用的记录文件