①小白学习Linux之基础学习★

Posted 行走的皮卡丘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了①小白学习Linux之基础学习★相关的知识,希望对你有一定的参考价值。

Linux基础学习√

1、centos6和7的变化

1.1.文件系统

Centos 6ext4(单个文件最大16TB

Centos 7xfs(单个文件最大9EB

1.2.防火墙、内核版本、默认数据库

CentOS 6.x
​ 防火墙:iptables
​ 内核版本:2.6.x-x
​ 默认数据库:MySQL

CentOS 7.x
​ 防火墙:firewalld
​ 内核版本:3.10.x-x
​ 默认数据库:MariaDB

1.3.时间同步,修改时区,修改语言

CentOS 6.x

# 时间同步:
ntpq -p
# ​修改时区:
/etc/sysconfig/clock
# 修改语言:
/etc/sysconfig/i18n

CentOS 7.x

# ​时间同步:
chronyc sources
​# 修改时区:
timedatectl set-timezone Asia/Shanghai
​# 修改语言:
localectl set-locale LANG=zh_CN.UTF-8

1.4.主机名

# CentOS 6.x的配置文件为:(永久设置)
/etc/sysconfig/network
​# CentOS 7.x的配置文件为:(永久设置)
/etc/hostname
# ​CentOS 7.x还可以使用命令永久设置
hostnamectl set-hostname LYY

1.5.网络服务管理

操作行为CentOS 6.xCentOS 7.x
启动指定服务service 服务名 startsystemctl start 服务名
关闭指定服务service 服务名 stopsystemctl stop 服务名
重启指定服务service 服务名 restartsystemctl restart 服务名
查看指定服务状态service 服务名 statussystemctl status 服务名
查看所有服务状态service --status-allsystemctl list-units
设置服务自启动chkconfig 服务名 onsystemctl enable 服务名
设置服务不自启动chkconfig 服务名 offsystemctl disable 服务名

1.6.网络设置

​ 网卡名

  • CentOS 6.x 网卡名是:eth0
  • CentOS 7.x 网卡名是:ens33

网络配置命令

  • ​CentOS 6.x中:ifconfig/setup
  • CentOS 7.x中:ip/nmtui

网络服务

  • CentOS 6.x默认使用 network 服务
  • ​CentOS 7.x默认使用 NetworkManager 服务(network作为备用)

2、linux基础

  • 1.MBR分区表中,1-4为主分区,5开始为逻辑分区

  • 2.分区时,/、/swap、/boot 为必分的分区(boot目录的作用是防止磁盘写满了开不了机)

  • 3.远程服务器永不关机、配置防火墙的时候不要把自己过滤了(配置定时任务,配置前每10分钟清空一下防火墙)

  • 4.linux的目录结构

目录名目录的作用
/bin/存放系统命令的目录,普通用户和超级用户都可以执行。是/usr/bin/目录的软链接
/sbin/存放系统命令的目录,只有超级用户才可以执行。是/usr/sbin/目录的软链接
/usr/bin/存放系统命令的目录,普通用户和超级用户都可以执行
/usr/sbin/存放系统命令的目录,只有超级用户才可以执行
/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/设备文件保存位置
/etc/配置文件保存位置
/home/普通用户的家目录
/lib/系统调用的函数库保存位置。是/usr/lib/的软链接
/lib64/64位函数库保存位置。是/usr/lib64/的软链接
/lost+found/当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里
/media/挂载目录。系统建议是用来挂载媒体设备的,如软盘和光盘(基本不用)
/misc/挂载目录。(基本不用)
/mnt/挂载目录
/opt/第三方安装的软件保存位置(基本不用),都在/usr/local下
/proc/虚拟文件系统
/var/动态数据保存位置 (缓存、日志、软件运行文件)
/usr/系统软件资源目录
/root/root用户的家目录
/srv/该目录存放一些服务启动之后需要提取的数据
/sys/该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs

3、目录命令和文件命令

3.1、 目录操作命令

3.1.1.ls:显示目录下的内容

ls [选项] [文件名或目录名]

# 选项: 
  -a:        	# 显示所有文件 
  -d:        	# 显示目录信息,而不是目录下的文件 
  -h:         	# 人性化显示,按照我们习惯的单位显示文件大小 
  -i:         	# 显示文件的索引节点号 
  -l:        	# 长格式显示
  
# 例:
	ls -l

3.1.2.cd:切换所在目录

cd [路径]

# 例:
	cd /usr/local/src	# 切换到src目录下(绝对路径)
	cd -	# 切换到上次使用的目录
	cd ~	# 切换到家目录(~可省略)
	cd ../  # 切换到本目录的上一个目录(相对路径)
	cd ./a 	# 切换到当前目录下的a目录中(相对路径)

3.1.3.pwd:查询当前所在目录

# 例:
	pwd

3.1.4.mkdir:创建空目录

mkdir [选项] 目录名 

# 选项: 
  	-p:    # 递归建立所需目录
# 例:
	mkdir /root/test

3.2、文件操作命令

3.2.1.touch:创建新文件、修改文件时间值

# 例:
	touch /root/test.txt

3.2.2.stat:查看文件详细信息

# 例:
	stat /root/anaconda-ks.cfg  

3.2.3.cat:查看文件内容

cat [选项] 文件名 

# 选项: 
  -A:  相当于 -vET 选项的整合,用于列出所有隐藏符号 
  -E:  列出每行结尾的回车符$ 
  -n:  显示行号 
  -T:  把 Tab 键用 ^I 显示出来 
  -v:  列出特殊字符 
 
# 例:cat anaconda-ks.cfg

3.2.4.more:分屏显示文件

# 例:
	more anaconda-ks.cfg
	
#交互:
	空格键:	  	向下翻页 
	b:			向上翻页 
	回车键:	  	向下滚动一行 
	/字符串:	搜索指定的字符串 
	q:			退出 

3.2.5.less:分行显示文件

# 例:
	less anaconda-ks.cfg
# 交互:	
	空格键:	  向下翻页 	    
	b:		  向上翻页 	
	回车键:	  向下滚动一行    
	/字符串:  搜索指定的字符串 	    
	q:		  退出 

3.2.6.head:显示文件开头,默认10行

head [选项] 文件名 
	选项:   -n 
	行数:  从文件头开始,显示指定行数   
	-v:      显示文件名 
# 例:
	head anaconda-ks.cfg 	head -n 20 anaconda-ks.cfg

3.2.7.tail:显示文件结尾,默认10行

tail [选项] 文件名 
	选项:   -n 
	行数:  从文件结尾开始,显示指定行数   
	-f:      监听文件的新增内容 
# 例:	
	tail anaconda-ks.cfg 	tail -n 20 anaconda-ks.cfg	tail -f anaconda-ks.cfg		
# 需要新开一个连接来添加内容进行测试

3.2. 8.ln:建立快捷方式

ln [选项] 源文件 目标文件 
# 选项:  
 -s:  建立软链接文件。如果不加“-s”选项,则建立硬链接文件   
 -f:  强制。如果目标文件已经存在,则删除目标文件后再建立链接文件
 # 例:
 	ln -s /usr/local/nginx/bin /usr/local/bin		# 一定要写绝对路径

3.3、目录和文件都能操作的命令

3.3.1.rm:删除文件、目录等

rm [选项] 文件或目录 
# 选项:   
	-f:    强制删除(force)   
	-i:    交互删除,在删除之前会询问用户   
	-r:    递归删除,可以删除目录(recursive)
# 例:
	rm -rf /root/test.txt		# 慎用

3.3.2.cp:复制文件、目录

cp [选项] 源文件 目标文件 
# 选项:   
	-a:    相当于 -dpr 选项的集合  
	-d:    如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接   
	-i:    询问,如果目标文件已经存在,则会询问是否覆盖   
	-p:    复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)   
	-r:    递归复制,用于复制目录
# 例:
	cp -a /root/test.txt /tmp/

3.3.3.mv:剪切文件、目录

mv [选项] 源文件 目标文件 
# 选项:   
	-f:    强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖   
	-i:    交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)   
	-v:    显示详细信息 
# 例:
	mv /root/test.txt /tmp/a.txt 		# 移动文件并该名	
	mv /root/test.txt /root/test.txt	# 文件改名

4、权限命令和帮助命令

4.1.权限命令

4.1.1.chmod:修改文件或目录的权限

chmod [选项] 权限模式 文件或目录

# 选项: 
  	-R:   # 递归设置权限,也就是给子目录中的所有文件设定权限
 
# 权限模式:
 	[ugoa][+-=][rwx] 或用数字"r=4、w=2、x=1"

# 例:
	chmod u+r test.txt
	chmod 753 test.txt

4.1.2.chown:修改文件或目录的属主和属组

chown [选项] 属主.属组 文件或目录

# 选项: 
  	-R:   # 递归设置权限,也就是给子目录中的所有文件设定权限

# 例:
	chown -R lzp test.txt 	# 更改属主
	chown -R .lzp test.txt 	# 更改属组
	chown -R lzp.lzp test.txt 	# 更改属主和属组

# 注:普通用户不能修改修改文件的属主(即使文件属主是他自己)

4.1.3.umask:权限掩码

umask 	# 查看权限掩码(八进制)

# 新建文件的默认权限最大只能是666,而umask的值是 022 
	“-rw-rw-rw-”减去“-----w--w-”等于“-rw-r--r—” 

# 新建目录的默认权限最大可以是777,而umask的值是022 
	“drwxrwxrwx”减去“d----w--w-”等于“drwx-r-xr-x” 

4.1.4.getfacl:查看文件或目录的ACL

# 语法格式: 
	getfacl [选项] [目录或文件]

# 例: 
	getfacl /etc/hostname	

4.15、setfacl:设置文件ACL规则

# 语法格式:
	setfacl [选项] [文件]

# 选项:
	-x: 	# 删除单个用户的ACL权限
	-b:		# 删除所有扩展访问控制列表条目
	-R:		# 递归操作子目录
	-m:		# 更改文件的访问控制列表

# 例:
	setfacl -Rm u:lzp:rw- test 	# 设置lzp用户对该文件的acl权限
	setfacl -x u:lzp test		# 删除lzp用户对改文件的acl权限

4.2、帮助命令

4.2.1、man:显示联机帮助手册

man [选项] 命令 

# 选项: 
    -f:    # 查看命令拥有哪个级别的帮助 
    -k:    # 查看和命令相关的所有帮助 

# 例:
	man ls	
# 查看ls的帮助手册

4.2.2、info:一套完整的说明资料

# 例:
	info ls

4.2.3、–help:查看帮助

# 例:
	ls --help

5、搜索命令和别名命令

5.1、whereis

  • 定位指令的二进制程序、源代码文件和man手册页等相关文件的路径
# 例:
	whereis ls

5.2、which:查找并显示给定命令的绝对路径

# 例:
	which ls

5.3、locate:根据一个数据库搜索文件

数据库位置:/var/lib/locatedb;每天自动更新一次

使用locate之前,先使用updatedb命令,手动更新数据库

# 例:
	locate /etc/sh	# 搜索etc目录下所有以sh开头的文件
	locate -i ~/m	# 搜索用户主目录下,所有以m开头的文件,并且忽略大小写

5.4、find:在指定目录中搜索文件

# 语法:
	find 搜索路径 [选项] 搜索内容 

5.4.1 按照文件名搜索

# 选项: 
  	-name:   		# 按照文件名搜索 
  	-iname:    	# 按照文件名搜索,不区分文件名大小写 
  
# 例:
	find . -name "*.txt" 		# 搜索当前目录下所有的.txt文件

5.4.2 按照文件大小搜索

# 选项:
	-size [+|-]大小:    # 按照指定大小搜索文件,单位:“b、c、w、k、M、G”,默认b
# 例:
	find /etc -size +2k 	# 搜索/etc目录下大于2kb的文件

5.4.3 按照修改时间搜索

# 选项:
	-atime [+|-]时间:  按照文件访问时间搜索 
	-mtime [+|-]时间:  按照文件数据修改时间搜索 
	-ctime [+|-]时间:  按照文件状态修改时间搜索

# 例:
	find /var/log/ -mtime +30 	# 搜索30天前修改过的文件
	find /var/log/ -mtime -7 	# 搜索7天内修改过的文件

5.4.4 按照权限搜索

# 选项: 
  	-perm  权限模式:  查找文件权限刚好等于“权限模式”的文件 
  	-perm -权限模式:  查找文件权限全部包含“权限模式”的文件 
  	-perm +权限模式:  查找文件权限包含“权限模式”的任意一个权限的文件 

# 例:
	find /etc -perm 777 	# 搜索/etc下权限为777的文件

5.4.5 按照文件类型搜索

# 选项:   	
# 查找目录
	-type d:    	
# 查找普通文件
	-type f:      	
#查找软链接文件
	-type l:
	 
# 搜索/etc下的普通文件      
# 例:	
	find /etc -type f 		

5.4.6 逻辑运算符

# 选项:  	
# 逻辑与 
    -a:
# 逻辑或   	
	-o:    
# 逻辑非例:  	
	-not:  
# 搜索所有以.txt和.pdf结尾的文件	
	find . -name "*.txt" -o -name "*.pdf"	
# 搜索大于2KB,并且文件类型是普通文件的文件		
	find . -size +2k -a -type f 		
# 搜索不是普通文件的东西
	find . -not -type f 					

5.4.7 -exec:调用外部命令

# 例: 	
	find .-type f -user root -exec chown tom {} \\;	# 搜索属主是root的文件,并更改为用户tom

5.5、grep:搜索文件中的内容

grep [选项] "搜索内容" 文件名 
# 选项:   	
	-i:        忽略大小写  	
	-n:        输出行号 	
	-v:        反向查找
# 例:	
	grep -v "root" /etc/passwd		# 在/etc/passwd中搜索root,然后取反显示

5.6、:将上一个命令的输出作为下一个命令的输入(管道符)

# 例:	
	netstat -an | grep "ESTABLISHED" | wc -l		# 统计网络连接数量

5.7、alias:别名

alias 别名='原命令' 
例:	
	alias ser='service network restart' 	# 后续使用时,直接输入ser	# 用命令定义的别名,是临时生效的,要想永久生效,需要写入环境变量配置文件~/.bashrc 

6、压缩命令和关机重启

6.1、zip:压缩文件或目录

# 语法:
	zip [选项] 压缩包名 源文件或源目录 
# 选项: 压缩目录 
  	-r:    
# 例子: 
	zip ana.zip anaconda-ks.cfg  

6.2、uzip:解压缩文件

# 语法:
	unzip [选项] 压缩包名 

# 选项:指定解压缩位置 
 	 -d:   
# 例如: 
	unzip -d /tmp/ ana.zip  

6.3、tar:打包与解除打包

# 语法:
	tar [参数] [文件或目录] 
# 选项:
    -c:    	# 建立新的备份文件
    -C 目录:		# 指定解打包位置 
    -f:    	# 指定压缩包的文件名
    -v:    	# 显示打包文件过程
    -z:		# 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz(用来识别)
    -t:		# 列出备份文件的内容
    -x:		# 从打包文件中提取文件
# 例:
	tar -cf all.tar *.jpg 						# 将所有.jpg的文件打成一个名为all.tar的包
	tar -xf all.tar	-C /tmp						# 提取包里面的文件到指定目录(解压缩)
	tar -zcvf log.tar.gz linuxcool.log			# 打包文件以后,以 gzip 压缩
	tar -zxvf log.tar.gz -C /tmp 				# 解压缩到指定文件
	tar -cvf linuxcool.tar linuxcool --remove-files		# 打包文件之后删除源文件

6.4、sync:强制将内存缓冲区中的数据立即写入磁盘中(一般不需要用)

#语法:
	sync
#例:
	sync

6.5、shutdown:关机和重启

# 语法:
	shutdown [选项] [参数]

# 选项:
	-r:			# 重新启动
	-h:			# 系统关机
	-c:			# 取消已经执行的 shutdown 命令 

# 例:
	shutdown -h now 		# 指定现在立即关机
	shutdown -r now 		# 指定现在重启
	shutdown -h 22:30		# 指定时间关机
	shutdown -c 			# 取消按预定时间关闭系统
	shutdown +5 "System will shutdown after 5 minutes" 	# 指定5分钟后关机,同时送出信息给登入用户

6.6、reboot:重启系统

# 语法:
	reboot

7、网络命令和系统痕迹

7.1、配置IP地址

# 方法一:
	setup(centos6)| nmtui(centos7)

# 方法二:
	vim /etc/sysconfig/network-scripts/ifcfg-eth0
	
BOOTPROTO="static"					# 可选static和dhcp
IPADDR="192.168.248.133"			# 设置IP地址
NETMASK="255.255.255.0"				# 设置子网掩码
GATEWAY="192.168.248.2"				# 设置网关
DNS1="114.114.114.114"				# 设置第一个DNS
DEFROUTE="yes"						# 开启默认路由
# ubuntu16更改IP:
vim /etc/network/interfaces
------------------------------------------------------------------------
auto ens33
iface ens33 inet static
address 192.168.248.11
netmask 255.255.255.0
gateway 192.168.248.2
dns-nameserver 223.6.6.6 114.114.114.114
------------------------------------------------------------------------
sudo systemctl restart networking

7.2、ifconfig:查看本机的IP信息

yum -y install net-tools	# 需要先安装此工具才能使用此命令
ifconfig					# 查看本机信息
ifconfig eth0 up			# 启动eth0网卡(ifup eth0)
ifconfig eth0 down			# 关闭eth0网卡(ifdown eth0)

	-v    # 显示详细信息
	-s    # 显示简短信息
	-a    # 显示所有接口,即使已经关闭的

7.3、ping:测试网络连接

ping [选项] IP 

# 选项: 
    -c 次数:  # 用于指定 ping 的次数 

# 例:
	ping 114.114.114.114		# ctrl+c手动停止
	ping -c 1 192.168.1.0		# 测试一个数据包

7.4、netstat:网络状态查看

netstat [选项]  

# 选项: 
    -a:      # 列出所有网络状态,包括 Socket 程序 
    -n:      # 使用 IP 地址和端口号显示,不使用域名与服务名 
    -p:      # 显示 PID 和程序名 
    -t:      # 显示使用 TCP 协议端口的连接状况 
    -u:      # 显示使用 UDP 协议端口的连接状况 
    -l:      # 仅显示监听状态的连接 
    -r:      # 显示路由表 

# 例:
	netstat -tuln 		# 查看本机正在侦听的端口 
	netstat -anp  		# 查看所有连接并显示PID

7.5、mail:发送和接收电子邮件

安装此软件才能使用 :

yum -y install mailx		  
# 语法:
	mail [选项]

# 选项:
	-s			# 给邮件追加主题
	-a			# 发送邮件附件,多个附件使用多次-a选项即可

# 例:
	echo "hello" | mail -s test test@linuxcool.com		# 标题“test”,内容“hello”的邮件
	mail		# 查看邮件

=======================================================================================

7.6、w:显示系统中正在登陆的用户信息

# 该命令查看的是/var/run/utmp

# 例:
	w

7.7、last:查看系统所有登陆过的用户信息

# 该命令查看的是/var/log/wtmp

# 例:
	last

7.8、lastb:查看错误登陆的信息

# 查看的是/var/log/btmp

# 例:
	lastb

7.9、ethtool:查看网卡信息

# 例:
	ethtool eth1

7.10、lspci:查看网卡型号

# 例:
	lspci | grep -i eth

7.11、iftop:查看实时网络流量

# 例:
	iftop

7.12、sar:统计各种信息(包括网卡流量、cpu使用率)

sar命令包含在sysstat工具包中,提供系统的众多统计数据。其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量。

sar –n DEV 1 2 # DEV显示网络接口信息;每一秒钟取1次值,取2次。

另外,-n参数很有用,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL ,其代表的含义如下:

  • DEV显示网络接口信息。
  • EDEV显示关于网络错误的统计数据。
  • NFS统计活动的NFS客户端的信息。
  • NFSD统计NFS服务器的信息
  • SOCK显示套接字信息
  • ALL显示所有5个开关
[sre@CDVM-213017031 ~]$ sar -n DEV 1 2
Linux 2.6.32-431.el6.x86_64 (CDVM-213017031)    05/04/2017  _x86_64_    (4 CPU)

08:05:30 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
08以上是关于①小白学习Linux之基础学习★的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础篇(12)小白如何学习Linux?权限管理之文件权限

小白学习Docker基础篇

小白学习Docker基础篇

Linux之小白入门一

电脑小白学习软件开发-C#语言基础之循环重点讲解,习题

灯塔行动-Web安全之Linux基础