Linux备忘2

1、shell变量赋值

定义shell变量非常的简单
name=string
name是变量名,变量名是用小写字母命名
=是赋值符号,两边不能有空格,否则将视为命令。
string是被赋的变量值
例如:赋值字符或者字符串
v1=centos — v1 =centos(这时候v1会被视为一个命令来执行,没有v1这个命令所以会报错)
v2=’this is a shell script’
shell中输出变量:用 符 号 , 用 符号就表示v1是一个变量。
例如:赋值整数以及加减乘除和幂运算
a=10
b=20
shell中做加减乘除运算,必须要用双层小括号(()),单层小括号不起作用
数字的运算、判断大于小于也要用双层小括号
a和b是变量,要把ab的运算结果输出,那么前面也要加变量符号$,表示输出的是一个变量

#!/bin/bash

v1=ce
echo $v1
a=10
b=20
#echo $(($a+$b))
echo $((100-20+30*2))
echo $((3**2)) --- 这里表示3的二次幂
#注意两点:1、双层括号 2、输出要用$符号,表示是一个变量
i=10

while (($i>=5));do
echo $i;
((i--));
done;

2、shell字符串相关的操作

这里写图片描述
例如:

v2="this is a shell script."

echo ${#v2}
echo ${v2}
echo ${v2:5}  #从前面截取5个字符,输出后面所有字符
echo ${v2:5:6}    #从前面截取5个字符,从截完的字符串中再取6个字符
echo ${v2#this}    #删除开始的字符串  
echo ${v2#t*i}      #最短匹配,删除从t到最近的i    结果:s is a shell script.
echo ${v2##t*i}   #最长匹配,删除从t到最远的i     结果:pt.

注:从结尾删除,把#换成%即可

3、判断、输出、证明

test判断

-f 文件是否存在
-d 目录是否存在
-r 文件是否有读权限
-w 文件是否有写权限
-x 文件是否有执行权限

判断命令是test和[],-f -d -w等是它的参数

filename=/home/zhangsan
test -f $filename && echo 'exist' || echo 'not exist'  
test -d $filename && echo 'exist' || echo 'not exist'

chmod 400 路径\文件名:r–
取消写和执行权限,只有读权限。。
某个用户创建了这个文件,那么就算chmod 400取消了执行权限,也还是可以删除这个文件,因为这个是该用户创建的。

[]判断

1、在中括号中必须都要实用空格来分隔
2、在中括号中的变量,最好都要以双引号括起来
3、在中括号中的常数,最好都以单引号括起来
例如:

[ '10' == '12' ] && echo 'yes' || echo 'no'
a=this
b=thisa
[ "$a" != "$b" ] && echo 'yes' || echo 'no'
#!bin/bash

#[]  中括号里面要用这几种特殊的符号  -eq(等于) -ne(不等于) -gt(大于) -ge -lt -le
#if while等条件表达式里面一般都用[]

#(()) 双层小括号里面可以用这六种比较运算符  == != > >= < <=
#只要整数运算等才用到双括号


i=10

#while (($i>=5));do
while [ $i -qt 5 ];do
echo $i;
((i--));
done;

注意:结束符,加分号

4、循环

5、

web=`/bin/pgrep httpd`
if [ "$web" != ""]
then 
    echo "the web service is running"
esle
    echo "the wen service is NOT running"
    /etc/rc.d/init.d/httpd start
fi
cat if_esle(文件没有后缀名)
#!/bin/sh

echo "please input a file name:"
read file_name
if [ -d $file_name ]
    then
    echo "$file_name is a directory"
elif [ -f $file_name ]
    then
    echo  "$file_name is a common file"
elif [ -c $file_name -o -b $file_name]     -o and的意思,-c设备文件 -b块文件   设备文件如:/dev/sdb
    then
    echo "$file_name is a device file"  
esle
    echo "$file_name is an unknown file"
fi
cat userinfo.sh
/bin/echo "please input the username"
read username
/bin/grep $username /etc/passwd > /dev/null 2> /dev/null
if [ $username -eq 0]
then
    echo "username is : $username"   这里用单引号就不行
else
    echo  "user $username does not exists"
    exit 1
fi

#list userinfo blow
userinfo=`/bin/grep ^$username:x /etc/passwd`
userid=`/bin/echo $userinfo | awk -F : '{print $3}'`     这里还是要:分割一下
groupid=`/bin/echo $userinfo | awk -F : '{print $4}'`
homedir=`/bin/echo $userinfo | awk -F : '{print $6}'`


groupname=`grep $groupid /etc/group`

6、删除会话

#删除samba用户
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\10206801>net use  \\10.8.61.238  /delete
\\10.8.61.238 已经删除。

6 创建一个function

相当于创建一个方法,带参数

create or replace function inserttest( num int)
returns integer
as $BODY$
    declare id int;
    begin 
        FOR id in 1..num LOOP
            insert into test values (cast (id as text),'aa');
        end LOOP;
        return num;
    end;
$BODY$
language plpgsql;

调用function,传入参数

select inserttest(3)

7、慕课网Linux软件安装管理

1、软件包分类

源码包

Linux最早的软件包就是源码包。 — 类似于买家具,从自己种树到砍木头,到自己做好家居。
Windows没Linux稳定,它的C盘会越用越大,删不干净,会产生大量的垃圾文件。
但是Linux的源码包甚至连卸载命令都没有,把安装目录直接删了,任何垃圾文件都不存在了。这是源码包优点。
这里写图片描述

二进制包(RMP包、系统默认包)

—- 类似于直接到家具厂 ,买现成的。
如果是纯源码包,但是安装很麻烦。所以考虑用二进制包。标题的RMP包,系统默认包指的都是二进制包。
这里写图片描述

脚本安装包

这里写图片描述

2、服务管理

运行级别

3命5图6重启。。。0关机
2– 其实就是不完全的字符界面。
这里写图片描述

1、runlevel  表示查看当前级别:
前面一个字母表示我在进入这个级别之前我在哪个级别,3表示当前级别。 
N表示null,空的意思。意思是没有从其他级别进入3级别,一开机就进入到了3级别。
2、init 表示改变运行级别:
虽然init 5没有成功,但是runlevel还是认为从3到了5级别。
例:
[root@localhost usr]# runlevel  
N 3
[root@localhost usr]# init 5
[root@localhost usr]# runlevel
3 5

注意:init 0和 6 代表关机和重启,这种方式是直接调用系统的0级别和6级别,它不一定会正确的结束系统正在运行的服务,不可靠,所以不推荐使用。还是建议用shutdown

设置系统默认运行级别:
修改一下配置文件即可,Linux一切归文件。
注意不允许设置默认级别为0 和6

[root@localhost usr]# cat  /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

id:3:initdefault:
服务分类

这里写图片描述
什么叫服务管理?把不需要或者暂时不需要的服务给停掉,这就是服务管理的一种。同时也是服务器优化的重要手段之一。

8、mysql

什么是索引:用来帮助快速寻找数据的 数据结构。。搞清这个主谓宾
讲的东西还是要专业,正统一些。面试的时候给人一种专业的感觉。
mysql的数据都是存储在文件里面 。
这里写图片描述

怎么读取查询(select * from table where id=1)的数据?? 逐行扫描

address可以快速定位到某个点的话,就比以前的逐行扫描快不少。

9、数据结构

红黑树

当树不平衡了,就要提供一个方法去维持平衡。
颜色不过就是一个标记。。。
如何保持平衡????就是下图的第四点,每条路径包含相同数目的黑色节点。
当要插入一个数据的时候,可能插不进去。这个时候要变换颜色(都换成黑色),才能插。。。

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值