Linux系统的入门、文件管理、标准IO和管道知识汇总

Linux入门部分

用户登录:

用户分为超级用户root(权限最大)普通用户(权限较小)
用户间切换命令:su - uesrname

终端:
设备终端:键盘鼠标显示器
物理终端(/dev/console ):6控制台console
虚拟终端(tty:teletypewriters,/dev/tty# #为[1-6]):tty可有n个,Ctrl+Alt+F[1-6]
串行终端(/dev/ttyS#):ttyS
伪终端(pty:pseudo-tty,/dev/pts/# ):pty, SSH远程连接
查看当前的终端设备:#tty
Shell介绍:

被称为Linux的命令解释器

Tab键补全:

(1)命令补全:命令唯一,一次tab键直接补全,若不唯一,则给出列表
(2)路径补全:命令唯一,一次tab键直接补全,若不唯一,则给出列表

命令行历史:
保存你输入的命令历史。可以用它来重复执行命令
登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中

	重复前一个命令,有4种方法
		重复前一个命令使用上方向键,并回车执行
		按!! 并回车执行
		输入!-1 并回车执行
		按Ctrl+p 并回车执行
	!:0 执行前一条命令(去除参数)
	!n 执行history命令输出对应序号n的命令
	!-n 执行history历史中倒数第n个命令

	!string 重复前一个以“string”开头的命令
	!?string 重复前一个包含string的命令
	!string:p仅打印命令历史,而不执行
	!$:p 打印输出!$ (上一条命令的最后一个参数)的内容
	!*:p打印输出!*(上一条命令的所有参数)的内容
	^string删除上一条命令中的第一个string
	^string1^string2将上一条命令中的第一个string1替换为string2
	!:gs/string1/string2将上一条命令中所有的string1都替换为string2
调用历史参数:
	command !^ : 利用上一个命令的第一个参数做cmd的参数
	command !$ : 利用上一个命令的最后一个参数做cmd的参数
	command !* : 利用上一个命令的全部参数做cmd的参数
	command !:n : 利用上一个命令的第n个参数做cmd的参数

	command !n:^ 调用第n条命令的第一个参数
	command !n:$ 调用第n条命令的最后一个参数
	command !n:m 调用第n条命令的第m个参数
	command !n:* 调用第n条命令的所有参数

	command !string:^ 从命令历史中搜索以string 开头的命令,并获取它的第一个参数
	command !string:$ 从命令历史中搜索以string 开头的命令,并获取它的最后一个参数
	command !string:n 从命令历史中搜索以string 开头的命令,并获取它的第n个参数
	command !string:* 从命令历史中搜索以string 开头的命令,并获取它的所有参数
命令history:

history相关命令选项:

	history [-c] [-d offset] [n]
	history -anrw[filename]
	history -psarg[arg...]
	-c: 清空命令历史
	-d offset: 删除历史中指定的第offset个命令
	 n: 显示最近的n条历史
	-a: 追加本次会话新执行的命令历史列表至历史文件
	-n: 读历史文件中未读过的行到历史列表
	-r: 读历史文件附加到历史列表
	-w: 保存历史列表到指定的历史文件
	-p: 展开历史参数成多行,但不存在历史列表中
	-s: 展开历史参数成一行,附加在历史列表后


	HISTSIZE:命令历史记录的条数
	HISTFILE:指定历史文件,默认为~/.bash_history
	HISTFILESIZE:命令历史文件记录历史的条数
	HISTTIMEFORMAT=“%F %T “ 显示时间
	HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2开头的历史
bash快捷键:
	Ctrl + l清屏,相当于clear命令
	Ctrl + o执行当前命令,并重新显示本命令
	Ctrl + s阻止屏幕输出,锁定
	Ctrl + q允许屏幕输出
	Ctrl + c终止命令
	Ctrl + z挂起命令

	Ctrl + a光标移到命令行首,相当于Home
	Ctrl + e光标移到命令行尾,相当于End
	Ctrl + f光标向右移动一个字符
	Ctrl + b光标向左移动一个字符
	Alt + f光标向右移动一个单词尾
	Alt + b光标向左移动一个单词首
	Ctrl + xx光标在命令行首和光标之间移动
	Ctrl + u从光标处删除至命令行首
	Ctrl + k从光标处删除至命令行尾
	Alt + r 删除当前整行

	Ctrl + w从光标处向左删除至单词首
	Alt + d从光标处向右删除至单词尾
	Ctrl + d删除光标处的一个字符
	Ctrl + h删除光标前的一个字符
	Ctrl + y将删除的字符粘贴至光标后
	Alt + c从光标处开始向右更改为首字母大写的单词
	Alt + u从光标处开始,将右边一个单词更改为大写
	Alt + l从光标处开始,将右边一个单词更改为小写
	Ctrl + t交换光标处和之前的字符位置
	Alt + t交换光标处和之前的单词位置
	Alt + N提示输入指定字符后,重复显示该字符N次
	注意:Alt组合快捷键经常和其它软件冲突
使用gnome-ternimal:

ternimal相关的组合键:

	Ctrl-Shift-n 创建新窗口
	Ctrl-Shift-q关闭当前窗口
	Ctrl-Shift-t 创建一个标签页
	Ctrl-Shift-w 关闭一个标签页
	Ctrl-PaUp/PgUn切换到下一个/前一个标签页
	Ctrl-Shift-c 复制选中的文本
	Ctrl-Shift-v 把文本粘帖到当前光标处

文件管理

列出当前目录的内容或指定目录:ls命令
	用法:ls [options] [files_or_dirs]
	示例:
		ls -a 包含隐藏文件
		ls -l 显示额外的信息
		ls -R 目录递归通过
		ls -ld 目录和符号链接信息
		ls -1 文件分行显示
		ls –S 按从大到小排序
		ls –t 按mtime排序
		ls –u 配合-t选项,显示并按atime从新到旧排序
		ls –U 按目录存放顺序显示
		ls –X 按文件后缀排序
查看文件状态:

使用命令:stat

	三个时间戳:
	access time:访问时间,atime,读取文件内容
	modify time: 修改时间, mtime,改变文件内容(数据)
	change time: 改变时间, ctime,元数据发生改变
文件通配符:
	* 匹配零个或多个字符
	? 匹配任何单个字符
	~ 当前用户家目录
	~mage 用户mage家目录
	~+ 当前工作目录
	~- 前一个工作目录
	[0-9] 匹配数字范围
	[a-z]:字母
	[A-Z]:字母
	[wang] 匹配列表中的任何的一个字符
	[^wang] 匹配列表中的所有字符以外的字符

	预定义的字符类:
	[:digit:]:任意数字,相当于0-9
	[:lower:]:任意小写字母
	[:upper:]: 任意大写字母
	[:alpha:]: 任意大小写字母
	[:alnum:]:任意数字或字母
	[:blank:]:水平空白字符
	[:space:]:水平或垂直空白字符
	[:punct:]:标点符号
	[:print:]:可打印字符
	[:cntrl:]:控制(非打印)字符
	[:graph:]:图形字符
	[:xdigit:]:十六进制字符
创建文件以及刷新时间:
touch命令:
	touch [OPTION]... FILE...
	-a 仅改变 atime和ctime
	-m 仅改变 mtime和ctime
	-t [[CC]YY]MMDDhhmm[.ss]
	指定atime和mtime的时间戳
复制目录和文件:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
	SRC是文件:
	如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
	如果目标存在:
	如果DEST是文件:将SRC中的内容覆盖至DEST中
	基于安全,建议为cp命令使用-i选项
	如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

cp SRC... DEST
	SRC...:多个文件
	DEST必须存在,且为目录,其它情形均会出错;
cp SRC DEST
	SRC是目录:此时使用选项:-r
	如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;
	如果DEST存在:
	如果DEST是文件:报错

在复制时我们可以选择性的加上这些选项
	-i:覆盖前提示 –n:不覆盖,注意两者顺序
	-r, -R: 递归复制目录及内部的所有内容
	-a: 归档,相当于-dR --preserv=all
	-d:--no-dereference --preserv=links 不复制原文件,只复制链接名

在这里插入图片描述

移动文件和重命名:
	mv [OPTION]... [-T] SOURCE DEST
	mv [OPTION]... SOURCE... DIRECTORY
	mv [OPTION]... -t DIRECTORY SOURCE...
	常用选项:
	-i: 交互式
	-f: 强制

删除文件:

	rm [OPTION]... FILE...
	常用选项:
		-i: 交互式
		-f: 强制删除
		-r: 递归
		--no-preserve-root
	示例:
		rm -rf /
tree:
	tree 显示目录树
		-d: 只显示目录
		-L level:指定显示的层级数目
		-P pattern: 只显示由指定pattern匹配到的路径
	mkdir 创建目录
		-p: 存在于不报错,且可自动创建所需的各目录
		-v: 显示详细信息
		-m MODE: 创建目录时直接指定权限
	rmdir 删除空目录
		-p: 递归删除父空目录
		-v: 显示详细信息
	rm -r 递归删除目录树
inode索引节点:
inode(index node)表中包含文件系统所有文件列表
一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),
包括:
	文件类型,权限,UID,GID
	链接数(指向这个文件名路径名称个数)
	该文件的大小和不同的时间戳
	指向磁盘上文件的数据块指针
	有关文件的其他数据

在这里插入图片描述
在这里插入图片描述

目录操作:
	文件引用一个是 inode号
	人是通过文件名来引用一个文件
	一个目录是目录下的文件名和文件inode号之间的映射

	在 CP的 命令:
	分配一个空闲的inode号,在inode表中生成新条目在目录中创建一个目录项,
	将名称与inode编号关联拷贝数据生成新的文件

	如果mv命令的目标和源在相同的文件系统,作为mv 命令
		用新的文件名创建对应新的目录项
		删除旧目录条目对应的旧的文件名
		不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
	如果目标和源在一个不同的文件系统, mv相当于cp和rm
创建硬链接

命令: ln filename [linkname ]

创建软链接

命令:ln -s filename [linkname]

标准IO和管道

标准输入和输出:
	STDOUT和STDERR可以被重定向到文件:
	命令操作符号文件名
	支持的操作符号包括:
		> 把STDOUT重定向到文件
		2>把STDERR重定向到文件
		&>把所有输出重定向到文件
		>> 原有内容基础上,追加内容
tr命令:
	tr转换和删除字符
		tr[OPTION]... SET1 [SET2]
		选项:
		-c–C --complement:取字符集的补集
		-d--delete:删除所有属于第一字符集的字符
		-s--squeeze-repeats:把连续重复的字符以单独一个字符表示
		-t--truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
		[:alnum:]:字母和数字
		[:alpha:]:字母
		[:cntrl:]:控制(非打印)字符
		[:digit:]:数字
		[:graph:]:图形字符
		[:lower:]:小写字母
		[:print:]:可打印字符
		[:punct:]:标点符号
		[:space:]:空白字符
		[:upper:]:大写字母
		[:xdigit:]:十六进制字符

	tr ‘a-z’ ‘A-Z’ < /etc/issue
		该命令会把/etc/issue中的小写字符都转换成写写字符
	tr –d abc < /etc/fstab删除fstab文件中的所有abc中任意字符
管道:
管道(使用符号“|”表示)用来连接命令
	命令1 | 命令2 | 命令3 | …
	将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN

	less :一页一页地查看输入
	ls -l /etc|less
重定向到多个目标:
命令1 | tee [-a] 文件名| 命令2
	把命令1的STDOUT保存在文件中,做为命令2的输入

使用:
	保存不同阶段的输出
	复杂管道的故障排除
	同时查看和记录输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值