Linux学习之路一(知识点)

  1. Linux介绍
Linux操作系统开源操作系统,主要应用于服务器端。基于posix和unix的多用户,多任务,多线程和多cpu的操作系统。Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
  1. Linux产生背景
	1)Unix: 操作系统,1973年C语言开发。  闭源
	2)GNU: “革奴计划”, stallman在1983年发起。一套完全自由的操作系统
	3)GPL: 一种GNU通用公共许可协议,为保证GNU软件可以自由的使用、复制、修改和发布.
	4)Linux操作系统: Linux操作系统诞生于1991年10月5日(这是第一次正式向外公布时间),与UNIX兼容,并在GPL条款下发布.
林纳斯·本纳第克特·托瓦兹:黑客。
  1. Linux目录结构
	/:根目录
	/root: root用户的家目录。存放跟root用户相关的文件,普通用户不允许访问。
	/home:普通用户的家目录。每创建一个用户就会创建一个目录用于存放该用户的信息。
	/bin:/usr/bin: 可执行二进制文件的目录
	sbin:/usr/sbin: 放置系统管理员使用的可执行命令
	/etc: 系统配置文件存放的目录
	/mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下
	/opt: 用于安装软件目录(/usr/local)
	/usr:应用程序存放目录
	/var:放置系统执行过程中经常变化的文件
  1. 终端和常用命令
1)终端: 提供用户与内核交互工具。
	[用户名@主机名称 当前位置]    # 管理员     $普通用户
2)命令
	Linux的命令格式:命令 [命令选项]  [命令参数]
	选项:    短格式: -简写
			长格式: --全拼
3)常见命令
	磁盘管理命令:
	a)Cd:  目录切换
		  Cd 相对路径/绝对路径  切换到指定目录
          Cd ..:上一级目录
		  Cd ~:家目录
		  Cd -:上次的目录
	b)Ls:查看目录内容
		-l:展示详细信息
		-a: 查看隐藏内容
		-A: 查看隐藏文件(.和..不显示)
		-h:友好的方式展示
		-R:递归展示所有文件
		组合:  ls -l:简化ll
	c)Du:展示文件或目录占用磁盘大小
		-a:展示所有内容
		-h:友好方式展示
	d)Df:查看磁盘使用率
	e)Touch:创建文件
	f)File:查看文件类型
	g)Mkdir:创建单层目录
		-p:级联创建
	h)Rm:删除文件
	Rm  文件名字
		-i: 询问
		-r:递归删除
		-f:强制删除
		Rm -rf 目录
	i)Rmdir:删除空目录
		Rmdir -p:级联删除
	j)Cp:复制
		Cp 源文件(目录) 目标文件(目录)
		-i:提示
		-r:递归复制
	k)Mv:移动
		-i:提示
		-f:强制移动
		-u:新覆盖旧,不存在时移动
	l)Cat/tac:查看文件内容
	m)Head/tail:展示开头或者结尾的若干行,默认10行
		Tail -f:查看新追加内容
	n)More/less:分屏显示
	o)Echo:输出字符串或者变量
		Echo 字符串
		Echo $变量名
		Echo  aa > a.txt  覆盖
		Echo  aa >> a.txt  追加
		-e:处理特殊符号
	p)Ln:创建链接
  		 -s:软链接
	q)Alias:别名
		查看别名:alias
		定义别名:alias la='ll -a'
		取消别名:unalias la

常见的的命令归纳分类:

文件管理	mkdir, rmdir, mv, rm, cp, touch, cat, tac, echo, more, less, head, tail, file, find, rename, ln, pwd, scp, alias
磁盘管理	ls, cd, du, df, mount, unmounts, fdisk
文档处理	wc, sort, uniq, cut, sed, awk, grep, vi, diff
用户和组	useradd, usermod, passwd, userdel, groupadd, groupdel, chgrp, su
文件传输	get, put, wget
网络通信	telnet, nc, ifconfig, ping, netstat, ip, host
备份压缩	gzip, bzip2, bunzip2, tar, zip
系统管理	exit, kill, last, ps, top, free, pstree, reboot, halt, shutdown, sudo, who, w, whoami, whereis, which, last, whatis
系统设置	clear, set, unset, hwclock, time, date, 
其	他	history, hostname, nohup, service, init, rpm, ssh, cal, yum

其他有用命令:

man:		显示命令帮助信息
clear:		清屏,或者按ctrl + l也行
ctrl + c:	退出当前进程
ctrl + z:	挂起当前前台进程
su:		切换用户
history:	显示历史命令
hostname:	显示主机名
set:		查看系统变量
get:		下载文件
put:		上传文件
sudo:		以root用户权限执行一次命令
exit:		退出登录状态
w:			显示当前连接的用户
who:		显示当前会话信息
uptime:	查看系统运行时间

使用小技巧

ctrl + u:清除光标前的命令,相当于剪切
ctrl + k:清除光标后的命令,相当于剪切
ctrl + y:粘贴
ctrl + t:把光标前面的那个字符往后挪动一位
ctrl + l:清屏
cd data; cat sed.txt:表示先执行cd,然后执行cat,工作目录会切换
(cd data; cat sed.txt):跟上个命令相比,不切换工作目录
|:		管道符,表示把前面命令内容的输出当做后面命令的输入
>:		表示内容覆盖
>>:	表示内容追加
  1. vi/vim编辑器:Linux操作系统内置文本编辑器。
1)使用:  vi/vim 文件路径
	2)三种模式
		命令模式:  vi/vim命令打开文件,当做命令
		插入模式: 文本输入内容
		底行模式: 保存,退出
	3)三种模式的转换
		略
	4)命令模式下光标移动
		↑↓←→/hjkl:光标逐个字符移动
		w/W:在单词首字母处向后移动(W忽略标点)
		b/B:单词首字母向前移动(B忽略标点)
		():按照句子(.)移动
		{}:按照段落移动
	5)命令模式如何转换到插入模式
		a/A:光标/行末插入内容
		i/I:光标/行首插入内容
		o/O:下一行/当前行插入
	6)插入模式下其他命令
		Dd:删除
		Yy:复制
		P:粘贴
		U:撤销
	7)底行模式下常见命令
		:set nu:行号
		:set nonu:不显示
		:/单词:查找(n)
		:行号:跳转
		替换:  :num1,num2 s/key1/key2/g
  1. 用户和组
用户: 权限的集合
组:权限的容器
	drwxr-xr-x.  2  root  root   4096   Jun 29 11:54   Videos
	文件类型和权限
	链接数: 文件 1  文件夹:子文件夹个数
	用户
	用户组
	大小
	修改日期
	名称
1)用户
	a)用户的查看
		(查看文件路径:/etc/passwd  (/etc/shadow))
		root:x:0:0:root:/root:/bin/bash
		用户名:密码占位:用户id:用户组id:备注信息:家目录:shell
	b)用户的分类
		用户类型			描述
		管理员root		具有使用系统所有权限的用户,其UID 为0
		系统用户			保障系统运行的用户,一般不提供密码登录系统,其UID为1-499之间
		普通用户			即一般用户,其使用系统的权限受限,其UID为500-60000之间.
	c)用户操作
		A.组添加:		 groupadd 组名
		B.组修改:		 groupmod -n组重命名
		C.组删除:		groupdel 组名
		D.组添加删除用户:gpasswd -a/-d 用户 组
2)用户组: 权限容器
	a)查看用户组
		查看文件路径:/etc/group  (/etc/gshadow)
		centos:x:500:
		组名称:组密码:组id
	b)用户组分类
		用户组类型			描述
		系统组				一般加入一些系统用户
		普通用户组			可以加入多个用户
		私有组/基本组			当创建用户时,如果没有为其指明所属组,则就为其定义一个私有的用户组,起名称与用户名同名,当把其他用户加入到该组中,则其就变成了普通组
	c)用户组操作
		A.组添加:			groupadd 组名
		B.组修改:			groupmod -n组重命名
		C.组删除:			groupdel 组名
		D.组添加删除用户:	gpasswd -a/-d 用户 组
3)Sudoers权限设置
	Vim /etc/sudoers
	root    ALL=(ALL)       ALL
	centos  ALL=(ALL)       ALL
    sudo useradd 用户名
  1. 权限管理
drwxr-xr-x
	10个字符:
	1个字符:  文件类型(-:普通文件   d:文件夹   l:连接文件   c:块文件  b:设备文件)
	9个字符:  
	
三组:  u    g    o
	rwx:可读  可写  可执行
	意义:
			文件					文件夹
	r		可读取内容			可以ls
	w		可修改文件的内容		可以在其中创建或者删除子节点
	x		能否运行这个文件		能否cd进入这个目录

权限修改:
	Chmod g/o/u/a +- rwx 文件
	Chmod 755 文件

修改文件所属:
	Chown 用户:用户组 文件
  1. 打包和压缩
1)压缩  				gzip
2)解压缩 			gzip -d
3)打包 				tar -cvf 打包名 文件列表
4)解包 				tar -xvf 包名
5)打包并且压缩 		tar -zcvf a.tar.gz 文件列表
6)解包并且解压缩		tar -zxvf a.tar.gz -C 目录
  1. Linux开关机和重启
开机:	开机键
关机:	shutdown,halt,init 0,poweroff
重启:	reboot,init 6

Shutdown命令详解:
shutdown -h now  		## 立刻关机
shutdown -h +10 			##  10分钟以后关机	
shutdown -h 12:00:00  	##12点整的时候关机
  1. 系统时间
a)查看日期
	date
	date "+%Y-%m-%d %H:%M:%S"
b)修改日期
	date -s “2016-12-25 19:57:30”
c)查看时区
	cat /etc/sysconfig/clock
d)修改时区
	cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
e)获取网络时间
	ntpdate cn.pool.ntp.org
  1. 进程管理
1)什么是进程
	a) 进程是操作系统中非常重要的一个概念,进程是程序的执行过程,相对于程序,进程是动态的,在linux系统中,它与用户权限相关,程序与进程并没有一一对应,一个程序可能对应多个进程。
	b) 子进程与父进程:一个进程产生另外一个进程,产生的进程称为子进程,生成另外一个进程的进程称为父进程
2)进程状态
	就绪状态
	运行状态
	等待状态
3)查看进程
	1.ps查看进程运行状态
		ps -aux
	2.kill命令
		a)kill pid:根据pid杀死进程
		b)kill -9 pid:强制杀死进程
		c)pidof 服务名称:查看pid
		d)pkill:根据进程名称杀死进程
	3.进程切换
		a)前台进程指的是进程在执行时会将命令行阻塞,直到进程执行完毕;后台进程指的是进程在执行时不会阻塞当前命令行,而是在系统后台执行
		b)进程命令
			i.Ctrl+c 终止进程
			ii.Ctrl + z 挂起进程(在后台驻留,没有被杀死)
			iii.Fg 进程名称 切换到前台运行
			iv.Jobs查看任务
	c)Top
	d)Pstree:查看进程树
	e)Jps:查看jvm进程
  1. 计划任务
a)计划任务
	i.At:执行一次   atd
	ii.crontab:间隔时间执行(分时日月周)  crond
b)crontab使用
	i.crontab -e 编辑计划任务文件
	ii.查看计划任务: /var/spool/cron/
	
		基本格式 : 
		*  *  *  *  *  command 
		分  时  日  月  周  命令 
		第1列表示分钟1~59 每分钟用*或者 */1表示 
		第2列表示小时0~23(0表示0点) 7-9表示:7点到9点之间
		第3列表示日期1~31 
		第4列表示月份1~12 
		第5列标识号星期0~6(0表示星期天) 
		第6列要运行的命令
  1. 克隆虚拟机
1)修改主机名称
	vim /etc/sysconfig/network
2)修改硬件地址(网卡)
	vim /etc/udev/rules.d/70-persistent-net.rules
	删除eth0,修改eth1的名称为eth0
3)Ip地址
	vim /etc/sysconfig/network-scripts/ifcfg-eth0
	IPADDR修改
	UUID和HWADDR删除
4)主机映射
	Vim /etc/hosts
	Windows下配置主机映射 c:/windows/system32/drivers/etc找到hosts文件
  1. ssh免密登录
1) 什么是ssh
	SSH为Secure Shell(安全外壳协议)的缩写,简单说,SSH只是一种网络协议,用于计算机之间的加密登录。
SSH是由客户端和服务端的软件组成的
服务端是一个守护进程(sshd),他在后台运行并响应来自客户端的连接请求。
客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
2) 配置免密登录
	A.创建密钥对
		ssh-keygen
	B.发送公钥到另一台机器的授权池
		ssh-copy-id 192.168.2.104
		ssh centos04

你可能感兴趣的:(Linux)