02-Linux

Linux

1.用户管理

1.1账户管理
useradd 用户名	//创建用户 
passwd 用户名	//设置用户密码
usermod -l 新用户名 原用户名	//修改用户名
userdel -f -r 用户名 //删除用户
1.密码不可以是回文:例如(121)
2.密码长度大于8位且是字母和数字的集合
3.Ctrl + D 退出当前用户
4.需要在管理员权限进行设置
5.cat /etc/passwd    查看所有用户信息
6.pwd	//查看当前目录
1.2用户组管理
cat /etc/group //查看所有的用户组

groupadd 组名 //创建用户组
groupmod -n 新组名 原组名	//修改用户组名
groupdel 组名	//删除用户组

groups 用户名 //查看用户所在的组
1.3用户组内成员管理
gpasswd -a 用户名 组名 //将用户添加到用户组
gpasswd -d 用户名 组名 //从用户组中删除用户

grep 组名 /etc/group	//查看组内用户

2.系统管理

2.1设置时间
date //显示当前时间
date -d "yyyy-MM-dd HH:mm:ss" //显示指定的时间
date -s "yyyy-MM-dd HH:mm:ss" //设置时间,需要管理权限

由于硬件的原因,机器或多或少的与标准时间对不上,一个月的误差几秒到几分钟不等。对于服务器来说时间不准,会有很多麻烦。例如,支付的时候,无法下单,游戏无法登录等。

timedatectl set-ntp true  //开启时间同步服务器
ntpdate time.nist.gov  	//与时间服务器同步
2.2切换用户
logname //显示当前登录的用户
who -H //显示所有登录的用户
su 用户名	//切换用户
id //显示当前用户的信息
sudo //以管理员权限运行其他命令
2.3进程管理
top //实时监控系统的进程状态(类似Windows系统的任务管理器)
  	//按q退出

ps //显示当前运行的进程信息
ps -A //显示系统中所有进程信息
ps -ef //显示系统中所有的进程信息(完整信息)
ps -u 用户名 //显示指定用户的进程信息
  
kill 进程pid	//杀死指定的进程
kill -9 进程pid //强制杀死指定的进程
killall -u 用户名 //杀死用户的所有进程
2.4关机和重启
shutdown //默认1分钟之后关机(不同版本会有差异)
shutdown now //立即关机
shutdown 20:25 //系统会在今天20:25关机
shutdown +1 "警告信息" //1分钟之后关机,并显示警告信息
shutdown -r +1 "警告信息" //1分钟后关机并重启,显示警告信息
shutdown -c //取消关机

reboot //重启

3.目录管理

3.1查看目录
ls	//显示所有文件或目录(不包含隐藏文件)
ls -l //显示所有文件或者目录的详细信息(不包括隐藏文件)
ls -al	//显示所有文件或目录的详细信息(包括隐藏文件)

注意:带"."的表示隐藏文件,带"d"表示目录;"-"表示文件
pwd	//查看当前所在目录
3.2切换目录
cd 路径 	切换目录
cd /   切换到根目录
cd ..	返回上一级目录
3.3新建目录
mkdir [目录]		//创建文件夹
mkdir -p [目录]  //创建多级文件夹

rmdir [目录]	//删除文件夹(只能删除空的文件夹)
rmdir -p [目录] //级联删除目录(文件夹必须都是空的)
3.4删除目录
rm [文件] //删除文件
rm -r [目录]  //删除文件夹
rm -r -f [目录]	//删除目录和目录里面所有的内容不可恢复    
3.5复制文件/目录
cp [源文件] [目标目录] //把源文件复制到目标目录
cp [源文件] [目标文件] //把源文件的内容复制到目标文件
cp -r [源目录] [目标目录] 
  	目标目录存在:源目录复制到目标目录
  	目标目录不存在:自动创建目标目录,再把源目录中所有的内容复制到目标目录
cp -r aaa/* ccc  	
3.5移动文件/目录
mv [源文件] [目标目录] //把文件移动到目录
  注意:目标目录一定要存在,否则表示修改文件名
mv [源文件] [目标文件]  //修改文件名称
mv [源目录] [目标目录]  //移动文件夹
  目标目录存在:把源目录移动到目标目录
  目标目录不存在:表示修改目录名称

4.文件的属性

在这里插入图片描述

4.1所属组修改
chgrp -v [用户组] [文件目录]	//修改文件所属的用户组
chgrp -R dev-group /tmp/work	//将文件夹的所有东西的属组改为dev-group    
4.2所属用户修改
chown [用户] [文件或目录]	//修改文件的所属用户
chown [用户]:[用户组] [文件或目录] //修改属主或者属组
chown -R [用户]:[用户组] [目录] //修改目录及其所有内容的用户和用户组
4.3权限修改
chmod -R 数字权限 文件或目录
  r=4,w=2,x=1
  rwx=4+2+1=7(可读可写可执行)
  
chmod -R 符号权限 文件或目录
  u=rwx //用户权限
  g=rwx //用户组权限
  o=rx  //其他用户权限
    
chmod -R o-rwx bbb		//将文件夹bbb的权限设置为其他人没有权限

5.文件管理

5.1创建文件
touch a.txt	//不存在就创建,存在就修改时间属性
touch a{1..10}.txt	//批量创建文件a1~a10
mkdir folder{1..10}	//	一次新建多个文件夹    
stat a.txt	//查看文件的详细信息    
5.2编辑文件

vi和vim是命令版的文件编辑器,功能类似于Windows的记事本,可以对文件进行创建、编辑、保存等操作。这些都是通过命令来完成的。

vi/vim的三种模式:

命令模式:通过快捷键达到快速输入的目的
编辑模式:对文件进行编辑
末行模式:对文件进行退出、保存等操作
  • 切换模式
"i": 进入编辑模式
按"esc": 回到命令模式
按":"键:进入末行模式
按两次"esc": 回到命令模式

在这里插入图片描述

  • 命令模式
dd  快速删除一行
ndd 删除当前n行    
yy  拷贝一行
nyy 拷贝当前行后的n行
大P 当前光标前粘贴
小p 当前光标后粘贴
    
gg	回到开头行
shift+g	回到结尾行    
  • 末行模式
:wq  保存并退出
:wq! 强制保存并退出
:q		正常退出
:q!  忽略所有更改,并强制退出
:/text		查找文件中的内容,text是要查找的关键词
5.3文件查看
cat -n 文件		//查看文件内容
less -N 文件名		//分屏显示文件内容
head -n	文件名		//查看文件的前一部分(n表示行数)
tail -n 文件名 	//查看文件的后一部分
grep [选项] 关键词 文件名	//根据关键词搜索文本内容
  [-n] 显示行号
  [-i] 搜索是忽略大小写
vim 文件名 +行号		//vim定位到文件的指定行
5.4输出字符串
echo 字符串	//直接输出字符串到命令行
echo 字符串>文件 //将字符串输出到文件(覆盖原文件)
echo 字符串>>文件 //将字符串输出到文件(不覆盖原文件)
5.5软连接
ln -s 目录文件路径	快捷路径
5.6搜索文件
//语法:
find 目录 条件
  
find . -name "*.txt"	//搜索当前目录及其子目录下的所有.txt文件
find . -ctime -20 //搜索最近20天的文件
find . size 0 //搜索长度等于0的文件

6.压缩解压

6.1gzip压缩文件
gzip 文件	//压缩文件
gzip *	//压缩当前目录下的所有文件
       
gunzip 文件 //解压文件
gunzip *	//解压当前目录下的所有文件    
6.2tar打包压缩

tar 命令能够将用户所指定的文件或目录打包成一个文件,但不做压缩。

一般Linux上常用的压缩方式是选用tar将许多文件打包成一个tar文件,再调用gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。

tar [必要参数] <文件或目录列表>
  -c:	创建一个新tar文件
  -v:	显示运行过程的信息
  -f:	指定文件名
  -z:	调用gzip压缩命令进行压缩
  -t: 列出文件中的内容
  -x:	解开tar文件
  -C:	指定解压路径
  • 打压缩包
tar -cvf 打包文件名 文件名	//打包文件并指定打包之后的文件名(仅打包不压缩)		
tar -zcvf 压缩文件名 文件名/文件夹 //压缩文件或者文件夹并指定压缩文件名(打包压缩)
  • 解压缩包
tar -xvf aaa.tar	//将tar包中的文件提取到当前目录
tar -xvf aaa.tar.gz -C 解压目录	//将压缩包解压到指定目录
  • 查看压缩包
tar -tvf aaa.tar.gz 
6.3zip打包压缩
  • zip打包压缩
zip -q -r 压缩文件名 文件/文件夹
  • 解压zip压缩包
unzip -l 压缩文件	//查看压缩文件内容(不解压)
unzip -d 指定输出目录 压缩文件	//解压文件到指定目录

7.网络管理

7.1配置ip地址
ifconfig //显示激活的网卡信息
ifconfig ens37 down //关闭ens37网卡
ifconfig ens37 up 	//启动ens37网卡
ifconfig ens37 192.168.31.99	//配置ens37网卡ip地址
ipconfig ens37 192.168.31.100 netmask 255.255.255.0 //配置ip地址和子网掩码
7.2查看网络状态
ping 192.168.31.100	//测试网络是否连通
netstat //显示网络状态
netstat -i //显示网卡列表

8.安装程序

8.1yum的基本使用

yum是一个软件包管理器,它可以帮助我们做一些下载、安装、卸载、更新软件包等操作。

yum -y install tree  //安装tree工具(在命令行显示目录结构的程序)
yum remove tree 	//移除tree工具
yum list tomcat	//列出所有tomcat软件包
8.2yum源修改

yum源指的是互联网的软件包的服务器,CentOS默认的Yum源服务器默认是国外的,访问速度比较慢。我们可以自己配置国内的yum源。

CentOS默认的yum源配置文件在/etc/yum.repos.d/CentOS-Base.repo路径下,我们可以找到这个文件改掉就可以了。

#检测是否安装
rpm -qa | grep wget    
#安装下载工具
yum -y wget install
#进入yum源所在的文件夹
cd /etc/yum.repos.d
#备份yum源(以免搞坏了,再改回来就行)
mv CentOS-Base.repo CentOS-Base.repo.back
#下载阿里的yum源
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
8.3rpm安装程序

rpm是早期Linux自带的软件包管理工具,也可以进行安装、卸载等操作。和yum不同的是rpm只能安装本地已经下载好的软件包。

9.Linux安装卸载JDK

9.1卸载jdk
#查询已安装的JDK包
rpm -qa | grep jdk 

在这里插入图片描述

# 卸载jdk1.7的所有依赖
sudo yum -y remove java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_6

# 卸载jdk1.8的所有依赖
sudo yum -y remove java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_6
9.2安装jdk

下载jdk并上传至Linux系统的/usr/java目录

1.到Oracle官网下载`jdk-8u271-linux-x64.tar.gz`安装包
2.将jdk-8u271-linux-x64.tar.gz安装包上传到Linux系统中/usr/java目录下
	 需要使用ftp上传工具,也可以使用finalshell直接拖拽

解压安装包

进入/usr/java目录中对jdk的压缩包解压
tar -zxvf jdk-8u271-linux-x64.tar.gz 

配置JAVA_HOME环境变量

vim /etc/profile
#把下面的内容一次性全部复制进去
export JAVA_HOME=/usr/java/jdk1.8.0_271
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

让当前环境变量生效

source /etc/profile

Shell

1.第一个shell脚本

1.新建一个.sh文件
    touch a.sh
2.编写a.sh文件的内容
    #!/bin/bash
    #这是第一个shell脚本
    echo 'hello'
    echo 'shell'
3.执行
    ./a.sh
    bash.sh

2.注释

单行注释
    #这是一个注释
    
多行注释
    :<<字符
        注释的内容
        字符

3.变量

定义变量:
    普通变量:1.变量名=变量值 (这个变量值不可以有特殊符号)
    		2.变量名='变量值'(会对其中的值原样输出)
    		3.变量名="变量值"(如果双引号里面有其他变量,会把变量的值进行拼接,然后赋值)
    命令变量:1.变量名=`命令`
    		2.变量名=$(命令)
a=10   
b="$a"
c='$a'    
echo $a	//10
echo $b	//10
echo $c	//$a         
使用变量:
    1.$变量名
    2."$变量名"
    3.${变量名}
	4."${变量名}"
只读变量:	readonly 变量名
删除变量:	unset变量名    

4.数组

定义数组
    arr=(1 2 3 4 5)
给数组的元素赋值
    arr[0]=1
获取元素
    ${arr[0]}
获取长度
    ${#arr[*]}
	${#arr[@]}

5.算术运算符

+	加法	expr $a + $b
-	减法	expr $a - $b
*	乘法	expr $a \* $b
/	除法	expr $a / $b
%	取余	expr $a % $b
=	赋值	a=$b
++/-- 自增,自减	((a++))
    
注意: 表达式和运算符之间要有空格
      完整的表达式要被反引号包含 (`expr 2 + 2`)

6.字符串运算符

=	检测俩字符串是否相等,相等返回true	[ $a = $b ]
!=	检测俩字符串是否不相等,不相等返回true	[ $a != $b ]
-z	检测俩字符串长度是否为0,为0返回true	[ -z $ a ]
-n	检测俩字符串长度是否不为0,不为0返回true	[ -n "$a" ]
$	检测俩字符串是否为空,不为空返回true	[ $a ]
    
注意:[ "${a}" = "${b}" ]   0为真,1位假    

7.关系运算符

-eq	[ $a -eq $b ]
    检测俩个数是否相等,相等返回true
-ne [ $a -ne $b ]
    检测俩个数是否不相等,不相等返回true
-gt	[ $a -gt $b]
    检测左边的数是否大于右边的,如果是,则返回true
-lt	[ $a -lt $b ]
    检测左边的数是否小于右边的,如果是,则返回true
-ge [ $a -ge $b ]
    检测左边的数是否大于等于右边的,如果是,则返回true
-le [ $a -le $b ]
    检测左边的数是否小于等于右边的,如果是,则返回true

8.布尔运算符

!	[ !false ]
    取反运算
-o	[ $a -lt 20 -o $b -gt 100 ]
    或运算,有一个表达式为true,则返回true
-a	[ $a -lt 20 -a $b -gt 100 ]
    与运算,俩个表达式都为true,才返回true

9.逻辑运算符

&&	[[ true && true ]]	逻辑and
||	[[ false || false ]] 逻辑or     

10.判断语句

If[ 条件 ]		If[ 条件 ]			If[ 条件1 ]
then			  then				   then
    语句体				语句体			    	语句体
fi    			  else					elif[ 条件2 ]
    				   语句体					语句体
    			  fi					else
                      						  语句体
                      					fi

11.选择语句

case 值 in
模式1)
    语句体
    ;;
模式2)
    语句体2
    ;;
esac

12.循环

12.1for循环
for 变量 in 范围			for loop in A B C
do						   do
    循环体							echo $loop
done    					done
12.2while循环
while 条件
do
    循环体
done    

13.函数

无参无返回值:
    函数名(){
        函数体
    }

有参无返回值:
    czbk(){
    echo "第一个参数$1"
    echo "第2个参数$2"    
}

czbk a b
    
有参有返回值:
    czbk(){
    echo "接收到参数$1和$2"
    return $(($1 + $2))    
}

czbk 10 20
echo $?    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值