Linux期末复习

第一章:初认识linux

第二章:基本命令

常用的命令


绝对路径:是使用 /写起来的

[root@centos ljq]# cd /home

相对路径: 是使用 .写起来的

[root@centos home]# cd ./ljq

文件操作命令


文件处理命令 :

ls、cd、pwd、touch、mkdir、cp、mv、 rm、rmdir

ls


[root@centos ljq]# ls
[root@centos ljq]# ls -a    所有文件,包括隐藏文件
[root@centos ljq]# ls -l   查看文件属性和权限

cd


cd /home    绝对路径

cd ./home   相对路径

pwd


[root@centos ljq]# pwd
/home/ljq

mkdir 创建新的目录


[root@centos ljq]# mkdir -p ./123/ testmkdir  递归创建目录,

rmdir 删除目录


[root@centos ljq]# rmdir -p testmkdir/

cp (复制文件或目录)


[root@centos ljq]# cp -fr if hello

#赋值if到hello

文件查看命令 :


[root@centos ljq]# cat /etc/passwd   #全部输出

[root@centos ljq]# more /etc/shadow   #可以分页看

[root@centos ljq]# head /etc/passwd    #从前面开始看

[root@centos ljq]# tail -3 /etc/passwd  #从后面开始看


文件搜索命令:


grep 【查找字符串】

[root@centos ljq]# grep root /etc/services    
rootd           1094/tcp                # ROOTD
rootd           1094/udp                # ROOTD

which

[root@centos ljq]# which ls
alias ls='ls --color=auto'
        /usr/bin/ls

find

[root@centos ljq]# find /etc -name passwd   #通过名字查找
网络管理与通信命令:
[root@centos hello]# ifconfig 
#参看IP主机号
[root@centos hello]# netstat
#打印网络系统的状态信息
-a  所有端口
-at  所有tcp端口
-au   所有udp端口

ping 连接百度网站

[root@centos hello]# ping www.baidu.com

write 向另一个用户进行交互

[root@centos ljq]# write centos

image-20210606150901840

wall root用户向所有用户发送信息

image-20210606151334082

image-20210606151256543

解压缩解命令:

gzip 压缩 只是压缩文件,不压缩目录 不会保留源文件

[root@centos hello]# gzip hello.java   #压缩
[root@centos hello]# ls
hello  hello.java.gz  if

[root@centos hello]# gzip -d hello.java.gz   #解压缩
[root@centos hello]# ls
hello  hello.java  if 

[root@centos hello]# gunzip hello.java.gz    #解压缩
[root@centos hello]# ls
hello  hello.java  if

zip压缩 文件和目录 会保留源文件

【就是要自己设置压缩包的名字】

[root@centos hello1]# zip -r ljq.sh.zip ./ljq.sh   #压缩
  adding: ljq.sh (stored 0%)
[root@centos hello1]# ls
ljq.sh  ljq.sh.zip


[root@centos hello1]# unzip ljq.sh.zip     #解压缩
Archive:  ljq.sh.zip
 extracting: ljq.sh                  
[root@centos hello1]# ls
ljq1.sh.zip  ljq.sh  ljq.sh.zip
[root@centos hello1]# 


bzip2压缩:

tar压缩:

[root@centos hello1]# tar -zcvf ljq.gz.tar ljq.sh  #压缩名字为ljq.sh的文件 压缩包名为ljq.gz.tar

ljq.sh
[root@centos hello1]# ls
ljq1.sh.zip  ljq.gz.tar  ljq.sh  ljq.sh.zip


[root@centos hello1]# ls
ljq1.sh.zip  ljq.gz.tar  ljq.sh.zip
[root@centos hello1]# tar -zxvf ljq.gz.tar   #解压 
ljq.sh
[root@centos hello1]# ls
ljq1.sh.zip  ljq.gz.tar  ljq.sh  ljq.sh.zip
[root@centos hello1]# 

帮助命令:

man

[root@centos hello1]# man ls

info

[root@centos hello1]# info ls

whatis 查询命令功能

[root@centos hello1]# whatis ls
ls (1)               - list directory contents
ls (1p)              - list directory contents

whoami 查看当前用户

[root@centos hello1]# whoami 
root

第三章:用户和用户组

文件基本属性

chown  :修改文件或者目录的拥有者

例子: chown root testchown.sh

image-20210604095542294

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

例子:
chmod 777 testchmod
chmod u=rwx,g=rx,o=r  test1 

image-20210604095408688

chgrp  :修改文件或者目录的拥有组【组】
例子: 
chgrp akak testchgrp

image-20210604095832342

ls -l   查看文件属性和所有组
img

363003_1227493859FdXT

cat /etc/passwd  【查看用户信息】
cat /etc/shadow, /etc/group  【查看密码】
cat /etc/group  【查看组】


第四章shell编程:

输出

echo "hello word!"
执行shell脚本的方法
chmod +x ./tesh.s
sh text.sh
shell变量

var=123
echo "$var"
~                       
拼接字符串

myvar="hello"
myvar1=""$myvar",word!"
#变量拼接
myvar2="$myvar word2!" 
echo $myvar1 
echo $myvar2 
                                  
获取字符串长度

#!/bin/sh
string="hello word"
echo ${#string}                       
数组

#!/bin/sh
arr1=(1 2 3 4 5 6)
#输出下标为2的数
echo ${arr1[2]}
#输出所有数据
echo ${arr1[@]}
#输出数组长度
echo ${#arr1[@]}
                      
shell算术运算符

#!/bin/bash

val=`expr 2 + 2`
echo "两数之和为 : $val"

注意:表达式和运算符之间要有空格,不然会报错误,然后还要是反引号 expr是一个计算工具,可以这样理解,把数据放进里面,就开始运算。

要注意空格的问题。。。。

#!/bin/sh
var=`expr 2 + 2`
echo "两个数的和:$var"
var1=`expr 3 == 3` 
echo $var1
if [  3 == 3 ];then
echo "true"
fi 
exit 0
shell关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

相关字符的意思:

-eq是等于

-ne是不等于

-gt是大于

-lt是小于

-ge是大于或等于

-le是小于或等于

案例实现:

#!/bin/sh
a=10
b=20

if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
then
   echo "$a -ne $b: a 不等于 b"
else
   echo "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
then
   echo "$a -gt $b: a 大于 b"
else
   echo "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
then
   echo "$a -lt $b: a 小于 b"
else
   echo "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
then
   echo "$a -ge $b: a 大于或等于 b"
else
   echo "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
then
   echo "$a -le $b: a 小于或等于 b"
else
   echo "$a -le $b: a 大于 b"
fi
布尔运算符

!或 ==

#!/bin/sh
a=10
b=20
if [ $a != $b ] 
then
echo "$a != $b : a 不等于b"
else "$a == $b : a 等于b"
fi
exit 0

逻辑运算符

&&逻辑和 ||逻辑或

因为一个判断要使用一个[],如果两个判断的话就是[ ] [ ] 而且用这个判断的话,就要使用这些逻辑运算符

#!/bin/sh
a=10
b=20
if [[ $a -lt 100 && $b -gt 100 ]];then 
#意思就是a小于100 和b大于100
echo "ture"
else echo "false" 
fi
exit 0

image-20210606124851167

流程控制


if判断语句 【总结:就是有if的后面都要添加then】

for((file1=1;file1<=100;file1++))
do
if (($file1<=20))
then
echo "$file1"
else
fi
done
for循环

第一种C语言的格式:

for ((i=1; i<=100; i++))
do
echo $i
done

第二种python的格式:

for i in {1…100}
do
echo $i
done
if判断和for一起使用

#!/bin/sh
#aaaa.sh
var=123
echo "$var"
#for file1 in {1..100}

for((file1=1;file1<=100;file1++));do
if (($file1<=20));then
echo "$file1" 
elif (($file1 <=50));then
echo "path:$file1"
else echo "test:$file1"
fi
done

image-20210606130103353

while选择语句

int=1
while(($int<=8));do
echo $int
let "int++"   
#let是运算
done
exit 0                

结果:

image-20210606130459017

until选择语句

返回值是false才可以进入循环

#!/bin/bash

a=0
until [ ! $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done
select选择语句

#/bin/sh
echo "请按照顺序选择" 
select i in "11" "22" "33"
do
echo "选择了$i" 
break
done

exit 0

case … esac选择语句

echo "其输入1-4数字:"
echo "输入:"
read int
case $int in 
1) echo "1t";;
2) echo "2t";;
3) echo "3t";;
4) echo "4t";;
*) echo "没有数据";; 
esac

image-20210606122338253

read site

case "$site" in
   "runoob") echo "菜鸟教程" 
   ;;
   "google") echo "Google 搜索"
   ;;
   "taobao") echo "淘宝网"
   ;;
*) echo "没有数据";; 
esac
~             

这个是可以自定义输入的信息的,不用规定为数字列表

image-20210606122204585

shell函数

#!/bin/sh
#vi fun.sh
demofun(){
echo "这是一个函数" 
}
echo "函数开始" 
demofun
echo "函数结束" 
exit 0

结果:

image-20210606131859976

2.函数

!/bin/sh
#vi fun.sh
demofun(){
echo "这是一个函数" 
}
fun2(){
 echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: " 
    read aNum
    echo "输入第二个数字: " 
    read anotherNum
    echo "两个数字分别为 $aNum$anotherNum !"
    return $(($aNum+$anotherNum))
}
echo "函数开始" 
demofun
fun2
echo "两个数的和为:$? !" 
echo "函数结束" 
exit 0

函数返回值在调用该函数后通过 $? 来获得。

结果:

image-20210606132507451

函数参数:

fun3(){
echo "$1参数"
echo "$2参数"
}
fun3 1 2
输出的数为1参数 2参数

第六章:进程管理

参看进程ps

ps -aux

ps  -ef
kill -9 进程号

或者kill -15 进程号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值