Linux(CentOs7)

学习小记

文章目录


2021.04.03

一、查看文件

1. cat :显示文本文件的内容

cat /etc/redhat-release 系统的版本号
cat -n 显示行号
		 uname -a: kernal 版本号
		.sh 绿色 可执行文件,windows是.exe .bat .com
		/bin 二进制文件

2. more : 回车一行一行,空格 一页页,只能看后面

3. less: 不能退出 ,能上下翻页 q

4. head:默认 前10行 head (-n) 3 3行

 tail:后几行	-f  实时
	 echo 'world'> test.txt 重定向
     echo '1' >> test.txt  追加 添加到后面
     日志log

5. wc(word count ) 统计命令:行 单词数 字符

wc -l 只显示行数

6. echo 输出

echo $SHELL 
		       cat /etc/shells 

7. cp:复制

cp -r 目录

8. grep 查找文件(在文件内容找)

grep “ x” /etc/passwd (不支持通配符,支持正则表达式) 文件

^ 以 。。。开头   	
$以。。。结尾
^ $ 空白
-n 行号 ; -v 不包含“x”的;-i 不区分大小写;- w   独立单词;-r 递归查找
esc + . 

9. diff 文件内容对比

二、日期 时间相关命令

1.date

	date +%F 年月日 +%T 时间
	date +"%F %T "操作数一起
	在脚本中应用多
	
	也可以用来修改日期和时间,设置日期和时间时的标准格式
	“月日小时分钟年份” 年份可以是4位也可以是2位

2.hwclock(硬件的时间 BIOS)

	hwclock -w  将系统时钟写入硬件时钟
				 -s

3.cal 日历 cal 1 2000 #2000年1月

4.stat 元数据

	访问时间 access 
	更改时间 modify  内容改动
	改动时间 change 元数据改变
	为了避免对硬盘频繁进行写入,如果时间戳变化时间间隔短,不会修改

三、find 强大的文件查找命令(找文件)

1.locate x 含有x的所有 路径

如果创建的时间短 找不到。依赖于事先构建好的数据库。

2.find [查找起始路径][选项][查找条件][处理动作](支持通配符)

起始路径:默认当前路径, 如果指定为/ ,在整个硬盘中进行查找

**查找条件**:文件名、文件大小、文件类型、从属关系(组)、权限、时间戳
1)	-name  精确  find /etc -name "pass*"
	ls 只能找该目录  而find可以有多个子目录
2)-iname 忽略大小写
3)-empty 空目录
4)-type   f普通文件 d目录 l软链接 b块设备 c字符设备
5)-size 文件大小 k、M、G   + - 超过 低于
6)-not  取反
7)时间戳
			天:-atime -mtime -ctime
			分钟:-amin -mmin -cmin  
			 +  -  之前 之内 
8)-exec  进一步处理  == | xargs(配合管道,有一定的优势)
		find -name "*ssh*" -type f -exec cp {} /xxx \;  ({}前面的内容, 最后空格+\;  表示结束)
		可以当成find 找的 **文本信息** 当成文件处理

处理动作:作出操作,默认为输出至标准输出
-ls 表示直接对查到的’-ls -l‘查看详细信息 不能-h

3. xargs(还会显示路径 )

和管道配合
 find /tmp -name ".txt" | wc -l
 find /tmp -name ".txt" | xargs  
 exec 一次性处理 会出现溢出问题,xargs 分批  快

extra:

 配置文件 /etc  日志 /var
 mkdir test0{1,2,3}  创建1 2 3
 删除某个目录的文件或目录 用rm
 若要删除子目录下的  find rm -f
 history !1022 执行第1022命令

2021.04.05

一、内部命令和外部命令

1.内部命令

shell 自带的命令 cd ls 
echo $SHELL
cat /etc/shells

2.外部命令

(用的时候需要安装,发行版本已经安装好了)
每个外部命令都对应了系统中的一个可执行的二进制程序文件(binary file)

 - which ls (查 外部命令的程序文件)
 -  bin:存放可执行文件 ,常规命令,所有用户可以执行
 -  sbin:权限比较高的命令
 -  bin、sbin 软链接 /usr
 - 按道理讲执行可执行文件,写成完整的路径 /usr/bin/ls。
   但是有环境变量PATH ,会从PATH 的五个路径,找命令

3.type

type [command] 判断是外部还是内部命令

4.其它辅助命令

  • ln [选项] 源文件 目标文件
    link ,创建软硬链接 ,一般软(青色)
    -s
  • alias[别名=‘标准shell命令行’] #写的时候不用中括号
    直接alias 系统本身定义好的别名
    unalias:撤销
  • history <!序号>
    history -d <序号> 删除
    history -c 删除所有的
    -w
    -r
    执行的命令放在缓存里,最后放在一个文件;HISTFILE
  • –help
  • man 查看命令帮助手册
  • clear

二、重定向

1. 标准输入与输出

标准输入:文件符0  
标准输出:  
标准错误输出:2

2. 标准输出重定向

ls /home > home.txt :将执行结果在home.txt上显示 
.>   覆盖重定向 >>追加重定向

3. 标准输入重定向

<

cat < /etc/passwd
cat (把键盘输入的内容原样输出)
<<(在此处生成文件 ) :cat EOF
cat > 123.txt << EOF

4. 默认标准输出,不会将错误重定向

resolve:

	>(只定向正确信息)    
	2>(定向错误信息) 
	&>(一概重定向)

三、管道符“|”

用来连接左右两个命令,将“|”左边命令的执行结果作为右边命令的输入

cat /etc/passwd | wc -l
wc -l /etc/passed  (与上述不同,除了输出数字,还有文件路径)

find /etc -name "net*.conf" | wc -l
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$" 

统计/etc目录下所有以“.conf”结尾的文件的个数:
find /etc -name "*.conf" -type f | wc -l
从etc/passwd 取出第十行:
head -n 10 /etc/passwd | tail -n -1 

04.10

用户、组和权限管理

tar命令–文件打包与压缩

打包命令 tar(tape archive)  压缩命令:gzip、bzip2、xz。 
.gz .bz2 .xz
先打包再压缩 : .tar.gz  .tgz  .tar.bz2

tar[选项] 打包或压缩后的文件名 需要打包的源文件或目录

-c(create) 创建“.tar”格式的包文件,不会压缩
-x 解包
-v 显示命令的执行过程。非必须
-f  指定要打包或解包的文件名称,该选项必须放到选项组合的最后一位。
-z 调用gzip来压缩 包文件
-j  调用bzip2来压缩
-J  调用xz来压缩包文件是,压缩后更小,但慢

tar -cf etc.tar /etc
tar -zcf etc.tar.gz /etc
tar -jcf etc.tar.bz2 /etc

tar -zxf etc.tar.gz -C  xxx (-C指定路径)
解包不需要指定z j J  ->   tar -xf etc.tar.gz -C  xxx

Shell脚本编程基础

Shell 脚本基本使用方法

创建文件 xx.sh

#!/bin/bash
cat /etc/centos-release
echo "Hello world"

执行: 
		1.bash xx.sh
				bash -n 选项 检查语法错误
				bash -x 显示执行命令与结果(类似ipython)
		2.直接路径 ./xx.sh
		3.sh xx.sh     (sh是个软链接)

Shell变量

用户自定义变量
shell的变量 无需声明
  • 变量名=变量值

     a = 3
    
  • 查看变量

     echo  $a
    
  • 界定变量

     echo ${a}b 
    
  • ""弱引用,’'强引用

    day="Monday"
    today="Today is $day"
    :Today is Monday
    
    day="Monday"
    today='Today is $day'
    : Today is $day
    
  • 反撇号` 和 $() 执行命令

    today="Today is `date`"
    
    a = $(rpm -qf $(which fdisk))
    
  • read命令

     交互赋值,需要输入的数据
     -p 选项
     	read -p "请输入一个数字:" num
     	赋值给num变量
    
  • 变量运算符

     % 取模
     ** 乘方
    
    a=2
    b=3
    let num=$a+$b #需要赋值
    echo $[$a+$b] #$[]
    echo $(($a+$b)) #$(())
    
环境变量

全部大写字母

  • HOME:当前用户家目录

  • USER:当前用户的登录名称

  • UID:当前用户的UID

  • SHELL:当前用户使用的Shell

  • HISTSIZE:当前用户的历史命令条数

  • PWD:用户当前的工作目录

  • PATH:当前用户的命令搜索路径(指定了Shell中可执行文件所在的路径)

     在脚本中引用USER 确定该脚本是否可以被其执行
    
  • LANG: 语言 zh_CN.UTF-8

     en_US
    

echo "$USER: $SHELL"输出多个变量 中间有分隔符,

自定义环境变量

在某个shell中自定义创建的变量只在当前shell有效
pstree 查看树形
环境变量作用范围更广

定义环境变量
export NAME=“teacher”
		在当前shell  以及 子shell 可以 ,别的shell不行,需要修改bash的配置文件
bash配置文件
profile类文件:只在用户登录时执行一次
 1.全局:
 			/etc/profile(文件 直接修改代码)
 			/etc/profile.d(directory)/*.sh  #对所有用户有效     (添加.sh脚本文件,此方法更可取)
 			以.d/*.sh的为主,查看/etc/profile,后面的循环命令显示以后为主
 
 2.局部:~/.bash_profile(用户家目录下的重要隐藏文件)    #只对当下用户有效
 			如果和全局有相同的某个配置,优先级更高
bashrc类文件:不仅在用户登录时会执行,而且每当用户打开新的Shell或者创建子Shell时也会被执行
 1.全局:/etc/bashrc    #对所有用户有效
 
 2.局部:~/.bashrc(用户家目录下的重要隐藏文件)    #只对当下用户有效
用法
修改完之后,用以下命令加载执行
			source /etc/profile
			.   /etc/profile 
位置变量
$n  n:1-9  (接收所传参数)
/bin/bash
echo $[$1+$2+$3]   #只接收3个
./test.sh 237 564 145 (以空格为间隔)
预定义变量
echo $?
上一条的执行命令是不是执行了  真0   假1-255随机数(多为1)
  • $# 所传位置参数的个数

     application:判断用户输入的参数是否满足脚本所需的个数,少于的话直接终止
    
if[ $# -ne 2]
then 
			exit
fi
  • $0:表示当前脚本的名称
		if[ $# -ne 2]
		then 	
			echo "Usage: $0 参数1 参数2"
			exit
		fi

条件测试与比较

条件表达式: [ 3 -gt 2 ] (两侧有空格)

测试文件状态

常用的文件状态测试操作符

  • -d:测试是否是目录

     [ -d /etc/passwd ]  
    
  • -f:测试是否为文件

  • -e:测试目录或文件是否存在

  • -r:测试当前用户是否有读取权限

  • -w:测试当前用户是否有写入权限

  • -x:测试当前用户是否有执行权限

  • -L:测试是否为连接

整数值比较

[ 3 \< 2 ] 转义 = [[ 3 < 2 ]]	

操作符:

  • eq 等于
  • lt 小于
  • gt 大于
  • -ne 不等于
  • -le 小于等于
  • -ge 大于等于

字符串比较 = ,!= ,-z

****4.20

	字符串比较主要是指比较两个字符串是否相同,测试字符串是否为空等。

= :匹配
!= :不匹配
-z:检查字符串是否为空

= 5 这里的5被视为字符串

read -p "Location:" file
/etc/fstab

[ $file = "/etc/fsab" ]	
echo $?

逻辑测试

-a -o
-a 与
-0 或 
!非
&& ||
不能用于方括号中来连接两个测试条件,主要用于连接两条命令
&& 当前面的命令执行成功后才会执行后面的命令
|| 当前面的命令执行失败后才会执行后面的命令

例如 检测	当前登录用户是不是root 是 输出hello 否 
[ $USER = "root" ] && echo "hello"
[ $USER = "root" ] || echo "fault"	
[ $USER = "root" ] && echo "hello" || echo "fault"

extra

du -h etc.tar 文件
du -hs  目录 
vsftpd服务
systemctl
vim 文件 set nu显示行数
ping ip -c 2        ; 脚本识别$?
登陆系统的用户:
    [ $(who | wc -l) gt 10 ] 
    pts 是远程终端登录

systemctl get-default 查看系统默认运行级别
chmod 750 /xx

***4.21

7.4程序结构

7.4.1 if选择语句

if 条件测试命令
then
	
else

fi

7.4.2 case分支语句

case 变量值 in
模式1)
	命令序列1
	;;
模式2)
	命令序列2
	;;
。。。。。
*)
	默认执行的命令序列
esac
case语句的结构特点如下:
	case行尾必须为单词“in”,每一模式必须以右括号)结束。
	双分号 表示命令序列的结束,除了"*)"后的命令序列之外,其余的命令序列都需要加“;;”表示结束。
	匹配模式可以使用通配符 a[0-9]  |或

7.4.3 for循环语句

for 变量名 in 取值列表
do
	命令序列
done
取值列表
	1 2 3 4 5
	{1..5}  两个点
seq [选项] 首数 增数 尾数

extra

if [] ;then 一行两个语句
{} 扩展符

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux CentOS 7是一种操作系统,基于Linux内核开发的。它是免费且开源的,广泛用于服务器、桌面电脑、超级计算机、路由器等等各种设备。它的特点是稳定、安全、高效、易于管理和使用,适合企业级和个人用户。 ### 回答2: Linux CentOS 7是一个基于Red Hat Enterprise Linux (RHEL)源代码的免费开源的操作系统。它使用强大的Linux内核和许多优秀的软件工具来提供GNU/Linux操作系统的稳定性、安全性和高性能。CentOS 7提供了许多功能和特性,使其成为一款优秀的服务器操作系统。 CentOS 7的界面友好且易于使用,具有很多的桌面环境如GNOME、KDE、Xfce和MATE等。但是,大多数CentOS 7的应用使用的是命令行终端界面,通过命令行终端可以操作完成大部分的工作。 作为一款服务器操作系统,CentOS 7提供多种的服务和工具,如Web服务器、数据库服务器、邮件服务器、文件和打印机共享服务等,能够满足用户的多种需求。CentOS 7支持多种主流的数据库系统,如MySQL、MariaDB、PostgreSQL等,并提供了用于构建和管理LAMP、LEMP、LNMP和LAPP堆栈的工具和服务。此外,通过CentOS 7用户还可以安装配置Nginx服务器、Apache服务器和PHP等语言。 CentOS 7还具备较高的安全性和稳定性。它采用了多种安全技术如SELinux、Firewall等来保障系统的安全,而且提供了强大的升级和更新机制,确保系统保持在最新版本上,并且提供修复漏洞的补丁。 总之,Linux CentOS 7作为一款开源操作系统,具备诸多优秀的特点和功能,为服务器操作提供了强有力的支持,使其成为企业级和个人用户的首选。 ### 回答3: Linux是一种免费的开源操作系统,其核心的开发者们是一群志愿者,他们的贡献使得Linux成为了最为安全、稳定的操作系统之一。CentOS是一种基于Red Hat Enterprise Linux(RHEL)的免费开源操作系统,它具有很高的稳定性和安全性,适用于大型网站、企业级应用和高可靠性服务器等场景。 CentOS 7是CentOS项目的第七个发行版,它基于RHEL 7的源码,采用了最新的Linux内核。CentOS 7的重要特性包括: 1.界面和操作:CentOS 7默认采用GNOME 3桌面环境,用户界面更加现代化,并且支持使用图形化应用程序管理系统设置。 2.支持Docker容器:CentOS 7支持Docker容器技术,可以帮助用户快速构建和部署应用程序,使得开发者可以更加轻松地在不同的环境中运行应用程序。 3.易于管理:CentOS 7具有极强的管理性能,可以通过命令行或者图形化工具进行操作、监控和配置。 4.最新的系统安全:CentOS 7包含了诸多新的安全特性,如SELinux、Firewalld等,可以帮助用户加强系统安全,保护系统不受攻击。 5.性能优化:CentOS 7采用了最新的Linux内核和优化了网络和存储性能的特性,具有更高效、更快速的性能表现。 总之,CentOS 7非常适合需要高度安全性、稳定性和可靠性的企业级用户,而且CentOS 7具有非常好的兼容性,能够与其他主流操作系统和应用程序无缝集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值