《Linux学习笔记——整理自马哥Linux运维》_待完成

ls
	-l:长格式
		-:普通文件(f)
		d:目录文件
		b:块设备文件(block)
		c:字符设备文件(character)
		l:符号链接文件(symbolic link file)
		p:命令管道(pipe)
		s:套接字文件(socket)

		文件权限:9位,每3位一组,每组:rwx读写执行,没有权限就用-表示

		文件硬链接的次数
		文件属主(owner)
		文件的属组(group)
		文件大小(size),默认单位是字节
		时间戳(timestamp),最近一次被修改的时间
			访问:access
			修改:modify。文件内容发生改变。
			改变:change。metadata,元数据,文件属性。

	-h:human readable,做单位转换
	-a:显示以.开头的隐藏文件
		.当前目录
		..当前目录的上一级目录
	-A:显示所有文件,但不显示.和..
	-d:显示目录自身属性
	
	-i:索引节点号
		index node, inode
	-r:逆序显示
	-R:递归(recursive)显示
	
cd:change directory
	不加参数,回到家目录,home directory
	cd ~USERNAME:进入指定用户的家目录
	cd -:在当前目录和前一次所在目录之前来回切换

命令类型:
	内置命令(shell内置)
	外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
	
环境变量:命名的内存空间
	变量赋值
	path:使用冒号分割的路径
	o(1):衡量程序执行效率的标准,无论队列多长,执行效率一样
	
	
type:显示指定属于哪种类型
date:时间管理
Linux:rtc,real time clock
	硬件时钟
	系统时钟
	
ntp:网络时间协议

获得命令的使用帮助:
内部命令:
	help COMMAND
外部命令:
	COMMAND --help
命令手册:manual
man COMMAND:一般对外部命令
whatis COMMAND:查看命令所在章节
分章节:常见章节有8个
	1.用户命令(/bin, /usr/bin, /usr/local/bin)
	2.系统调用
	3.库用户
	4.特殊文件(设备文件)
	5.文件格式(配置文件的语法)
	6.游戏
	7.杂项:miscellaneous
	8.管理命令(/sbin, /usr/sbin, /usr/local/sbin)

<>:必须给定内容
[]:可省略
|:多选一
{}:分组,没有特殊意义

man:
	name:命令名称及功能简要说明
	synopsis:用法说明,包括可用选项
	description:命令功能的详尽说明,可能高包括每一个选项的意义
	options:说明每一个选项的意义
	files:此命令相关的配置文件
	bugs:
	examples:使用示例
	see also:另外参照
翻屏:
	向后翻屏:space
	向前翻屏:b
	向下翻行:enter
	向上翻行:k
	
查找:
	/keyword:自前向后
	?keyword:自后向前
	n:下一个
	N:前一个
	根据/和?的n N方向不一样
	q:退出

hwclock -w把系统时间写入硬件时间
hwclock -s把硬件时间写入系统时间

在线文档:
info COMMAND
文档 /usr/share/doc

cal:calender日历

echo默认打印换行符
printf默认不打印换行符

file命令及其用法:

Windows:PE可移植文件
Linux:ELF可执行可连接文件

文件系统:
rootfs:根文件系统,对于每个文件,都只能从根文件系统访问。

FHS:文件系统层级标准
	/boot:系统启动相关文件,如内核、initrd、以及grub(bootloader)
	/dev:设备文件
			块设备:随机设备,可以实现随机访问的设备,数据块
			字符设备:线性设备,可以实现线性访问的设备,按字符为单位
			设备号:主设备号(major)和次和设备号(minor)
	/etc:配置文件
	/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
	/root:管理员的家目录
	/lib:库文件
		静态库:.a
		动态库:.dll,.so(shared object)
		内核模块文件(/lib/modules)
	/media:挂载点目录,移动设备
	/mnt:挂载点目录,额外的临时文件系统
	/misc:杂项
	/opt:可选目录,第三方程序的安装目录
	/proc:伪文件系统,内核映射文件
	/sys:伪文件系统,跟硬件设备相关的属性映射文件,如硬盘
	/tmp:临时文件
	/var:可变化的文件
	/bin:可执行文件,用户命令
	/sbin:管理命令
	
	/usr:universal shared read-only
		/usr/bin
		/usr/sbin
		/usr/lib
		
		/usr/local:第三方程序的安装目录
			/usr/local/bin
			/usr/local/sbin
			/usr/local/lib
命名规则:
	1.长度不能超过255个字符
	2.不能使用/当文件名
	3.严格区分大小写
	
相对路径:
绝对路径:

文件管理
	
目录管理
	ls
	cd
	pwd
	mkdir:创建空目录,路径的最后一个节点才是我们要创建的目录
		-p:自动创建
		-v:verbose详细信息
		mkdir -pv /mnt/test/{x/m,y}
	命令行展开:
		{a,b}_{c,d} 可以创建a_c,a_d,b_c,b_d
		就像(a+b)*(c+d)
		
	rmdir(remove directory):删除空目录(只能删除空目录)
		-p:自动删除父目录
	tree:查看目录树
	文件的创建和删除
		touch:可用来创建文件,但主要目的是为了修改时间戳的
			-c:不创建文件
			-a:修改访问时间
			-m:修改修改时间
			-t:指定时间
		创建文件可以使用文件编辑器
			nano:
		rm:删除文件
			-i:给提示
			-f:强行删除
			-r:递归删除
	复制和移动文件
	cp:copy
		SRC DEST
		一个文件到一个文件
		多个文件到一个目录
		不允许多个文件复制到一个文件
		不允许一个文件同时复制多份
		目标是一个目录,将保存源文件的名字
		目标是一个文件,将保存为该文件的名字
		如果源是多个,目标一定是目录
		默认情况下不复制目录
		-r/-R 递归复制一个目录
		-p:复制后的文件保留源文件的属组,属主
		-a:保留源文件的所有属性,归档复制,常用于备份
		复制链接,默认复制链接链接的源文件
		-P:保持链接文件
		-i:
		
	mv SRC DEST
		-f:强制目录存在
		-t:目标,再写源
	install:复制文件指定属性
		-d:创建目录,-d DIRECTORY...
		SRC DEST:复制文件,默认复制过去是有执行权限的
		-m:指定权限
		-t:指定目标,再指定源
		源只能是文件
		
	stat:显示文件或文件系统的状态信息
	
发行版:
	Fedora, Redhat(Centos), SUSE, Debian(Ubuntu, Mint), Gentoo, LFS(Linux From Scratch)

对系统的操作一般是对其配置文件进行修改
文本处理:cat, more, less, head, tail, cut, sort, uniq, grep

查看文本:
	cat、tac、more、less、head、tail
	
	cat:链接并显示
		-n:显示行号
		-E:显示行结束符
		
	tac:反向显示
	
	分屏显示:
	more:回车一行一行翻,b一屏翻,缺点:翻到最后就直接退出了
	less:到最后不会直接退出,按q才退出
	
	head:查看文件的前n行
	tail:查看文件的后n行,默认十行
		-f:查看文件尾部,不退出,等待显示后续追加至此文件的新内容
	
文本处理:
	cut,join,sed,awk
	
	cut:
		-d:指定分隔符,默认空格
		-f:指定要显示的字段,
			-f 1,3
			-f 1-3
	文本排序:
		sort:默认按位的ascii排序,升序
			-n:数值排序
			-r:降序
			-t:字段分隔符
			-k:以哪个字段为关键字排序
			-u:相同的行只显示一次
			-f:不区分大小写
		在sort和uniq中,只有相邻且相同的行才被认为相同的行,不相邻但相同,被认为不同行
		uniq:
			-c:显示某行重复的次数
			-d:只显示重复的行
	文本统计:wc(word count
		wc:
			-l:只显示行数
			-c:字节数
			-m:字符数
			-L:最长的一行包含的字符数
	字符处理命令:
		tr:转换或删除字符
			tr charset1 charset2
			无法指定文件,需要进行输入重定向
			替换大写:
				tr 'a-z' 'A-Z'
			-d:删除出现在字符集中的所有字符
bash及其特性:
	shell:外壳
	GUI:Gnome,KDE,Xfce
	CLI:sh,csh,ksh,bash,tcsh,ksh,zsh
linux允许一个用户登录多次,shell都是独立的
进程:在每个进程看来,当前主机上只存在内核和当前进程
进程是程序的副本,进程是程序执行的实例


用户工作环境:
bash:
	#
	$
	1.命令历史,命令补全
	2.管道、重定向
	3.命令别名
	4.命令行编辑
	5.命令行展开
	6.文件名通配
	7.变量
	8.编程
	
	命令行编辑:
		命令光标跳转:
			ctrl+a:到行首
			ctrl+e:当行尾
			ctrl+d:
			ctrl+u:删除光标至行首的内容
			ctrl+k:删除光标至行尾的内容
			ctrl+l:清屏
	命令历史:
		history:查看命令历史
			-c:清空命令历史
			-d:删除指定位置的命令
				-d 510 3:从510行删去三个命令
			-w:保存命令历史至历史文件,在用户的家目录的.bash_history隐藏文件中
		
		使用技巧:
			!n:执行命令历史中第n条命令
			!-n:执行命令历史中的倒数第n条命令
			!!:执行上一条命令
			!string:执行命令历史中以指定字符串开头的命令
			!$:引用前一个命令的最后一个参数
			esc,.:效果同上
			alt+.:效果同上,远程终端不支持
	命令补全:
		前提:path环境变量配置正常,唯一标识命令,若不唯一,可以双敲tab键显示所有该字符串开头的命令
		
		路径补全:和命令补全相似,但补全机制不一样
		
	命令别名:
		alias CMDALIAS='COMMAND [options] [arguments]'
		若命令中间有空格,要用引号
		命令别名只在当前的shell的生命周期有效
		若要永久有效,需要写入bash的配置文件
		撤销别名:
			unalias CMDALIAS
		使用命令本身,\COMMAND
	命令替换:$(COMMAND) 反引号`COMMAND`,反引号是波浪号底下的
		把命令中某个子命令替换为其执行结果的过程
		cmd1 [] [] $(cmd2)
		touch /file$(date +%F-%H-%M-%S)
	bash支持的引号:
	``:命令替换
	"":弱引用,可以实现变量替换
	'':强引用,不完成变量替换

	文件名通配:globbing
	*:匹配任意长度的任意字符
	?:匹配任意单个字符
	[]:匹配指定范围内的任意单个字符
		[abc],[a-m],[a-zA-Z],[0-9]
	[^]:匹配指定范围外的任意单个字符
	[:space:]:空白字符
	[:punct:]:标点符号
	[:lower:]:小写字母
	[:upper:]:大写字母
	[:alpha:]:大小写字母
	[:digit:]:数字
	[:alnum:]:数字和大小写字母
	
	

	环境变量:
		path:命令搜索路径
		HISTSIZE:命令历史大小,默认是1000条
	
			
		
shell:
	子shell,可以用pstree查看
	退出当前shell:exit
	父子之间不一定有关联关系
	
控制信号:
	ctrl+c
	shift+pageup/down:翻屏

运行程序
设备管理
软件管理
进程管理
网络管理

用户、组、权限
安全上下文(secure context)
权限:
	r,w,x
	文件:
		r:可读,可以使用类似cat等命令查看文件
		w:可写,可以编辑或删除此文件
		x:可执行,exacutable,可以再命令提示符下当作命令提交给内核运行
	目录:
		r:可以对此目执行ls以列出内部的所有文件
		w:可以在此目录创建文件
		x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息
	rwx:
		r--:只读
		r-x:读和执行
		---:无权限
	0 000,---:无权限
	1 001,--x:执行
	2 010,-w-:写
	3 011,-wx:写和执行
	4 100,r--:只读
	5 101,r-x:读执行
	6 110,rw-:读写
	7 111,rwx:读写执行

用户:uid, /etc/passwd
组:gid, /etc/group

影子口令: /etc/shadow
组: /etc/gshadow

用户类别:
	管理员:uid:0
	普通用户:uid:1-65535
		系统用户:uid:1-499,不允许登录
		一般用户:uid:500-60000
用户组类别:
	基本组:用户的默认组
	附加组:额外组,默认组以外的其他组
	私有组(创建用户时,如果没有为其指定所属的组,系统会创建一个与用户名同名的组,为私有组)
	管理员组:
	普通组:
		系统组:
		一般组:


account:登录名
password:密码
uid:用户id
gid:基本组id
comment:注释
home dir:用户家目录
shell:用户的默认shell



/etc/shadow
	account:登录名
	encrypted password:加密的密码
	用户名;密码;最近一次修改密码的时间;最短使用期限;最长使用期限;警告时间;非活动时间;过期时间

加密方法:
	对称加密:加密和解密使用同一个密码
	公钥加密:每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)
	单向加密:散列加密,提取数据特征码
		1.雪崩效应:初始条件的微小变化,会引起结果的巨大改变
		2.定长输出:
			md5:Message Digest,128位定长输出
			sha1:Secure Hash Algorithm,160位定长输出

用户管理:
	useradd USERNAME
	groupadd GRPNAME
	useradd, userdel, usermod, passwd, chsh, finger, id, chage
	
		useradd [options] USERNAME
			-u uid 
			-g gid(基本组)
			-G GID...(额外组)
			-c "COMMENT"
			-d /path/to/somewhere
			-s /etc/shells/???
				/etc/shells:指定了当前系统可用的安全shell
			-m -k
环境变量:
	PATH
	HISTSIZE
	SHELL
组管理:
	groupadd, groupdel, groupmod, gpasswd
权限管理:
	chown, chgrp, chmod, umask

解析:名称解析

你可能感兴趣的:(Linux学习笔记)