shell编程01

文件搜索:find
	一般我们可能根据name在指定的某个目录下搜索,使用比较多!!  【面试,这个命令可以说,顺带说两三个常用参数,name、size】

	精确查询 / 模糊查询
	需求1:搜索/opt目录下的abc.txt
		[root@localhost opt]# find /opt -name "abc.txt"  #以绝对路径的方式

	#下面几个是当前目录下搜索的简化写法
		[root@localhost opt]# find  -name "abc.txt"   
		[root@localhost opt]# find . -name "abc.txt"
		[root@localhost opt]# find ./ -name "abc.txt"

	需求2:搜索/opt目录下.txt文件
		[root@localhost opt]# find /opt -name "*.txt"

	需求3:搜索/opt目录下以a开头的txt文件,或者以a开头,或者包含ab
		[root@localhost cc]# find /opt -name "a*.txt"
		[root@localhost cc]# find /opt -name "a*"  
		[root@localhost cc]# find /opt -name "*ab*" 


插一曲:如何在本地使用Linux
	在windows自带的应该商店,里面Ubuntu、Terminal、cmder【模拟多标签的浏览器,使用cmd】


解压缩命令
	最常用:解压命令,且常用的压缩包后缀.gz、tar;zip在Linux中见的不是特别多!!

	压缩命令【.gz、tar】:tar 

	需求1:将/opt/cc目录下的abcd.txt、dfs.txt压缩成一个tar包 aaa.tar
		语法: tar -cvf 打包名.tar 被打包的文件1 被打包的文件2 被打包的文件3 
		[root@localhost cc]# tar -cvf aaa.tar abcd.txt dfs.txt 

	需求2:将aaa.tar,解压到当前目录;解压到其他目录
		语法:tar -xvf xxx.tar  ,我一般常用:tar -zxvf xxx.tar
		解压到其他目录:tar -zxvf xxx.tar -C 其他目录

	需求3:将xxx.zip,解压到当前目录;解压到其他目录 zip和unzip
		语法:unzip xxx.zip uzip xxx.zip -d 其他
		注意:unzip命令,mini版,没有,使用yum安装  yum -y install unzip

	需求4:使用zip命令,压缩


	需求5:其他格式 rar、7z【Windows下的,试下Linux能不能解压】
		unrar rar

	需求6:使用bzip2
		-c将压缩的过程产生的数据输出到屏幕上
		-d解压缩的参数(decompress)
		-z压缩的参数(compress)
		-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6

补充:
	终止当前窗口,回到输入界面,ctrl+c或者ctrl+z
	注意:有时候,ctrl+c,若不能回到我们想要的界面,可以尝试使用下 ctrl+z

Vi编辑器【讲过的这几个要记住】
	用于编辑文本文件,doc不行、csv ok
	vi vs vim vim是vi的增强版,类似notepad++,但是功能远不及notepad++
	vi的三种模式
		1.命令模式:只读模式,即只能看
		2.编辑模式:需要从命令模式进入到编辑模式,i、a、o
			i:光标闪烁处的前一个字符输入
			a:光标闪烁处的后一个字符输入
			o:换行,光标定位到行首
		3.末行模式 -- 执行 保存 退出 查找 显示行号等操作

		4.如何显示和取消行号
			显示:set nu
			取消:set nonu

		5.shift + g: 定位到文件的末尾

		6.撤销和恢复撤销(保命指令) 
			撤销:u
			恢复撤销:Ctrl + r

		7.删除
			dd:删除光标所在行
			ndd删除多行
			D:删除到行尾,删除一行 shift + d

		8.复制
			yy:复制一行,nyy复制多行

		9.搜索
			/搜索内容
			通过 n:向后找,N向前找

		10.替换 
			:%s/old/new/g g全局

小技巧:
	可以使用类似Notpad++这种工具去连接Linux,编辑文件!!Ediplus、Sublime都可以!!!


如何修改主机名称,同时windows系统可以使用主机名称访问到,后面的大数据组价,我们都使用主机名
	1.修改主机名称
		临时有效:hostname 主机名称  不用
		永久有效(两种方式):
			1.hostnamectl set-hostname xxx
				修改完,查看主机名:hostname 
				cat /etc/hostname
			2.修改配置文件:/etc/hosts  ,这个文件中配置映射关系 
			127.0.0.1  qqmm

	2.修改windows本地的c盘system..../hosts文件,配置映射关系【可能修改不了,需要在外面搞一个文件,覆盖替换它---我当时这么干的!!!】
		192.168.100.101 hadoop101 
		ip地址				映射的主机名
		使用小工具去管理hosts文件:SwitchHosts 或者 uTools里面的插件hosts切换

	3.就可以使用主机名进行配置连接


用户权限相关
	明确:在Linux中,可能有很多用户,每个用户或者某几个用户可能拥有一样的权限!
	比如:/opt/aa,张三、李四可以对这个目录进行操作【mkdir、tocuh】,王五就不行
	对于多个用于用用相同权限,我们可以通过用户组group去管理,即将用户纳入到group中

	1.关于文件权限的说明:
		10位:
		第1位:文件-/目录d/软连接l
		第2-4位置:当前user拥有的权限  u  --->user
		第5-7位置:当前group拥有的权限  g  --->group
		最后三位:其他用户拥有的权限   o  --->other
		-rw-r--r--. 1 root root   56 6月  29 18:56 ccccc.txt

	2.新建用户和组【干活的概率很小】
		每个用户没有处理的话,只能进自己的家目录
		生产环境【正式环境】中:我们是一个用户给多人使用!
		即项目组中有20个人,10个开发,10个人共用一个dev用户!!!
		新建用户:
			[root@hadoop101 cc]# useradd azzhu
			从root切换到普通用户,无需密码;普通用户切到root
		设置密码:
			passwd azzhu
			会让你输入密码
			提示密码最少8个字符,不用管它
		查看用户信息
			查看用户是否存在:id 用户名
				[root@hadoop101 cc]# id azzhu
				uid=1000(azzhu) gid=1000(azzhu) 组=1000(azzhu)
			当前登录用户是谁:whoami
				[azzhu@hadoop101 ~]$ whoami
				azzhu
			查看当前所有登录的用户列表:who

		切换用户
			su 用户名/su - 用户名/ su【切到root用户,不推荐使用】

			[azzhu@hadoop101 cc]$ su - zhangsan # 这种写法会有一个提示
			密码:
			上一次登录:二 6月 29 19:44:46 CST 2021pts/0 上

		退出当前用户:exit

		组操作
			groupadd 组名
			需求1:将azzhu 和 张三,纳入到dev组
				①[root@hadoop101 ~]# groupadd dev
				②修改用户所在组
					usermod -g 组 用户名
					[root@hadoop101 ~]# usermod -g dev azzhu
					[root@hadoop101 ~]# usermod -g dev zhangsan
				③验证用户信息
					[zhangsan@hadoop101 root]$ id zhangsan
					uid=1001(zhangsan) gid=1002(dev) 组=1002(dev)
			需求2:在/opt目录下,创建一个目录dev,该目录所属用户zhangsan,所属组是dev
			 ①通过root创建目录
				[root@hadoop101 ~]# cd /opt/
				[root@hadoop101 opt]# mkdir dev
				[root@hadoop101 opt]# ll
				drwxr-xr-x. 2 root root   6 6月  29 19:57 dev
			②修改目录所属用户以及所属组
			给一个类似root,权限也比较大的用户dev给你在生产中使用,此时你可能需要将某个目录授权给dev用户,这个dev用户生产中大家共用
				# 修改文件 | 目录 的拥有者
				chown 用户名 文件名|目录名
				[root@hadoop101 opt]# chown zhangsan dev
				[root@hadoop101 opt]# ll
				drwxr-xr-x. 2 zhangsan root   6 6月  29 19:57 dev
				我们使用zhangsan这个用户,去dev目录,就可以新建文件

				# 递归修改文件|目录的组
				chgrp -R 组名	文件名|目录名
				[root@hadoop101 opt]# chgrp dev dev
				[root@hadoop101 opt]# ll
				drwxr-xr-x. 2 zhangsan dev   19 6月  29 20:01 dev

	3.授权【改变文件属性rwx,也会用到】
		【这个必须会计算,比如给你数字,要能对应出字母!!!!!!!!】
		-r--r-----.  1 root root   4328 8月   6 2019 sudoers
		修改文件属性,给他w权限
		chmod 权限(可以使用rwx,也可以使用数字) 文件/目录
		这么几种写法要会:rwx三个一组【有就是1,没有就是0】111=7 777  5 101 655
			1.chmod 777 abc  ---》不建议这么干
			2.给某个用户某个权限: chmod u+w 目录  
				给文件w属性:chmod u+w sudoers
				收回:chmod u-w sudoers
			3.给某个组或者其他用户同上
			4.ugo可以在一起组合使用,比如 chmod ugo+rwx sudoers

	4.普通用户如何具备root权限 
		修改一个文件:/etc/sudoers  
		备注:默认这个文件,没有w,即只读,不可写,所以你要使用上面的命令修改文件属性
		找到这行,root    ALL=(ALL)       ALL
		在上面这行下面需要添加一行新内容:
		zhangsan    ALL=(ALL)       NOPASSWD:ALL
		功效:就是在一些命令的前面加sudo,同时也无需输入张三这个用户的密码

系统信息相关命令
	面试可回到的:ps 、df 、du 、top、uptime、free、netstat、tailf/tail -f/F
				chmod、chown
	1.date cal【了解,日历】
		需要掌握的内容:
		①格式化日期的写法:date +"%Y-%m-%d"  ---> 2021-06-29
		②日期加减
			date -d "1 day ago" +"%Y-%m-%d"
			date -d "-2 day"  +"%Y-%m-%d"
			date -d "1 month" +"%Y-%m-%d"
			date -d "1 month" +"%Y-%m-%d"
		③设置日期
			[root@hadoop101 etc]# date -s "20210629 16:59:58"

	2.查看进程
		类似windows的任务管理器
		man ps 
		①ps -ef | grep 某个进程
		②ps aux | grep 某个进程
			这个命令查看的更全一点,它有cpu、memory的使用情况
		③杀死某个进程 kill 
			kill -9 进程号
			kill -15 进程号

	3.查看端口号是否占用
		netstat,需要安装 :yum -y install net-tools
		netstat -nultp
			-a (all)显示所有选项,默认不显示LISTEN相关
			-t (tcp)仅显示tcp相关选项
			-u (udp)仅显示udp相关选项
			-n 拒绝显示别名,能显示数字的全部转化成数字。
			-l 仅列出有在 Listen (监听) 的服務状态

			-p 显示建立相关链接的程序名
			-r 显示路由信息,路由表
			-e 显示扩展信息,例如uid等
			-s 按各个协议进行统计
			-c 每隔一个固定时间,执行该netstat命令。


	4.查看磁盘空间
		df -h:以人性化的方式显示磁盘信息

	5.查看某个目录下的文件大小情况
		du -h [目录名]
		du -sh [目录名]
		实例:
			[root@hadoop101 opt]# du -sh /opt/cc/*
			0       /opt/cc/aa
			4.0K    /opt/cc/-bbbbbb.tar.gz
			4.0K    /opt/cc/ccccc.txt
			0       /opt/cc/dddddd.txt
			0       /opt/cc/eeeeee.txt
			8.0K    /opt/cc/Linux简要笔记
			[root@hadoop101 opt]# du -sh /opt/cc
			16K     /opt/cc
			[root@hadoop101 opt]# du -sh /opt/cc
			16K     /opt/cc
			[root@hadoop101 opt]# du -h /opt/cc  
			0       /opt/cc/aa
			16K     /opt/cc
	6.top
		动态显示运行中进程并且排序,这个命令很重用! yarn top

	7.free
		显示汇总信息
		[root@hadoop101 jdk1.8.0_251]# free
              total        used        free      shared  buff/cache   available
				Mem:       32761712      333544    31687068       11900      741100    32077140
				Swap:       1953788           0     1953788

	6.其他
		①启动vmware,默认占用的空间可能比较大,可以通过参数配置去优化
			磁盘空间充足,忽略!!!
			加完那个配置之后,Linux开机可能会慢!!!!!
		②关闭防火墙:
			查看状态:[root@hadoop101 opt]# systemctl status firewalld
			永久禁用:systemctl disable firewalld.service
		③重启机器
			reboot
			poweroff  --- 一般使用
			init 0


	7.常用软件的安装
		Linux中,软件的安装基本都遵循:解压--》配置
		JDK的安装和配置
			1.下载上传
			2.解压到你指定的目录
			3.配置
				①全局使用:/etc/profile  ---》后面就配置这个
				只能具有root权限的人去修改,若是普通用户,也要配置sudoers
				同时,加sudo vi /etc/profile
				②针对当前用户: bashfile ,这里需要自己建一个文件
				将jdk的解压路径配置进去
				JAVA_HOME = 你的路径
				PATH 原有的值不能删除,你要引入一个新的 ,类似windows下配置一样

				#JAVA_HOME
				export JAVA_HOME=/opt/jdk1.8.0_251
				export PATH=$PATH:$JAVA_HOME/bin

			4.需要刷新配置文件
				source /etc/profile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值