Linux 解析

补充

sudo :输入当前用户密码使用root超级权限

su 用户名 :进入某用户权限下,默认不写用户名就进入root

su - :进入root权限并切换root的shell

env :环境变量

grep 123 test* : 查找在以test开头的文件中,包含“123”的行

&  表示任务在后台执行,如要在后台运行redis-server,则有  redis-server &

&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo '2'    

| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l

|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"

 基础语法

ls
pwd
mkdir test
rmdir test
rm test              //remove
mv oldname newname
cp test test1        //copy
clear
sudo    //按照root执行(执行一次)
su    进入root用户权限
su -进入root用户权限并进入root目录
apt-get install package_name    ubuntu安装
chmod +x package_name //给文件加可执行权限
ubuntu deb文件安装:sudo dpkg -i *.deb

文件
cat test    //由第一行开始显示文件
tac test    //倒序显示文件
head -2 test   //显示文件头2行
tail test
nl          //显示行号
wc -l file_name #显示行数量
scp file_name target_address
scp -r ... ...  //递归复制整个目录下所有文件

用户&用户组
useradd -d /home/sam -m sam

磁盘管理
df -h    //-h按照易读的方式展示
du -h
fdisk

yum ( for CentOS
yum list    //列出所有可安装的包
yum install package_name
yum remove  package_name 
yum update  package_name
注:Ubuntu没有yum源,所以要想使用yum安装软件必须要配置yum安装源。
在/etc/yum/repos.d/目录下创建两个文件,fedora-163.repo和fedora-updates-163.repo。

VIM 

 Shell

shell programming:

#!bin/bash

-----------------------------------------------------------------------------------------
输出
echo string 
echo "hello world"
echo -e "hello \n world" #-e开启转义
echo -e "hello \c"       #\c不换行
echo `date`    #命令
printf "%5.2d %s \n" 123.4567 "123"    #类似C

-----------------------------------------------------------------------------------------
字符串
my_name="Wesley"
my_name="Wesley Liu"
str='this is a string\n'    #单引号中均原样输出,双引号里可以有变量/转义字符
readonly my_name   #设置为只读
echo ${my_name}    #使用变量名
echo ${#my_name}   #字符串长度
echo ${my_name:1:4}#截取
unset my_name      #删除变量

-----------------------------------------------------------------------------------------
循环语句
for loop in 1 2 3 4 5 // for((i=1;i>=5;i++))
do
    echo "value is $loop"
done

while(($a<=5))
do
    echo $a
    let "a++"
done

until [! $a -lt 10]
do
    echo $a
    a=`expr $a + 1`
done

case $a in
    1) echo "1";;
    2) echo "2";;
    *) echo "No matches";;
esac

break
continue

-----------------------------------------------------------------------------------------
函数
my_function(){
    echo "input one number"
    read num1
    echo "input another"
    read num2
    return $(($num1+$num2))
}
my_function
echo "the sum is $?" #获取函数返回值

-----------------------------------------------------------------------------------------
#条件语句
if [ $a == $b ]
then
    echo "a=b"
elif [ $a -lt $b ]
then
    echo "a<b"
else
    echo "no matcher"
fi

-----------------------------------------------------------------------------------------
数组
array_name=(value0 value1 value2 value3)
array_name[1]=value0
value=${array_name[2]}
value=${#array_name[3]}
echo ${array_name[*]}

-----------------------------------------------------------------------------------------
#这是注释

-----------------------------------------------------------------------------------------
参数传递
./shell.sh 1 2 3  #传递三个参数
echo "length: $#";
echo "file name: $0";
echo "first para: $1";
echo "second para:$2";
echo "all: $*"; #所有参数当作一个字符串输出
echo "all: $@"; #每个参数都当作一个字符串输出

-----------------------------------------------------------------------------------------
运算符
a=10
b=20
val=`expr 2 + 2`  #注意空格
val=`expr $a + $b`
val=`expr $a - $b`
val=`expr $a \* $b` #乘号前转义
val=`expr $b / $a`
a=$b
    if [ $a == $b ]    
    then               # == != 
        echo "a=b"
    fi

    if [ $a -eq $b ]    #关系运算,-eq -ne -gt -lt -ge -le
    then
        echo "a=b"
    fi

    if [ $a -ge 10 -a $b -ge 20 ]    #布尔运算,-o或运算 -a与运算
    then
        echo "correct"
    fi

    if [[ $a -lt 100 && $b -gt 0]]   #逻辑运算 && ||
    then
        echo "true"
    fi

a="abc"
b="def"
    if [ $a = $b ]    #字符串运算,= != -z 
    then
        echo "a=b"
    fi
    if [ -z $a ]      #a长度为0,返回true
    if [ $a ]         #a为空,返回true

-----------------------------------------------------------------------------------------

输入输出重定向
command > file    #输出重定向
command < file    #从file读取
command >>file     #追加到文件末尾
/dev/null文件

-----------------------------------------------------------------------------------------
test1.sh:
url="baidu.com"
test2.sh:
. ./test1.sh 或者 source ./test1.sh
echo "url: $url"

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值