菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
367
0

linux 命令

原创
05/13 14:22
阅读数 81426
必要的分区:根分区/和swap分区。  其他分区根据需要而定。  swap分区是不需要挂载点的。

linux的组成:内核,shell(用户与系统交互的界面),文件系统,应用程序

乌班图,redhat,centos都是基于linux内核开发的发行版。

ls    ls *.conf    ls h*.conf   ls -a    ls可以正则查找

//输出重定向,1个大于号2个大于号,
cat <test1>test2  //cat 输入重定向符 输入文件名  输出重定向符 输出文件名,把test1里面的文件复制到test2。可以把命令的输出到文件中去。
ls >test3    //ls的输出不到文件而是到test3文件中去。
ls >>test3   //一个大于号是覆盖之前的内容,2个大于号是内容追加到文件末尾。
defergfr 2>test3       //错误重定向:把错误信息写入文件

cat /etc/passwd | grep root       //文件中查找root

linux的查找是找整个分区,which查找文件,whereis查找指定文件,locate查找,find查找,find查找实例。
which这个命令在/usr/bin/which下面。


ifconfig eth0   //查看第一个网卡信息
ifconfig eth0 down  //停掉这个网卡
ifconfig eth0 up    //启动网卡


vi  
ctrl+F,ctrl+B   //向下向上翻页
set nu    //行号显示出来
set nonu   //取消行号
dd     //删除一行
u     //撤销
ctrl+r   //反撤销
yy     //复制当前行
p      //粘贴
/word   //查找
n  N    //查找上一个下一个


进程:每个进程不影响。
程序:代码的集合。 程序再运行的过程中产生进程,可以产生多个进程。产生几个进程取决于程序怎么写的。程序结束的时候进程也会结束。
每一个进程都有一个进程号。
ps  //查看所有软件的进程信息
ps -ef   //显示进程信息,UID是进程是基于用户启动的,pid是进程号,ppid是父进程,父进程是子进程的父亲,子进程是父进程派生出来的,
ps aux   //也可以查看进程信息,只是有了cpu使用率内存使用率,
ps aux | grep apache
进程跟软件一样是又分类的,守护进程(后台进程)(服务进程),交互进程(既可以手动开始也可以系统启动的时候启动)
ps aux | grep sendmail     //是开机启动的发送邮件进程,
service sendmail stop      //就是去关闭sandmail进程,可以认为的干预,
killall       //将相关的进程都杀掉
ps -ef | grep apache
killall -u apache      //会发现apache进程并没有全部被杀死,因为apache的父进程没有杀掉,会再次派生出子进程,
kill 3957      //根据进程号来杀


shell:
bash也是shell的一种,shell是命令解释器。
shell是以行为单位的,shell只有整数和字符串。

#!/bin/bash            //调用bash脚本的时候,是通知系统用什么解释器去解释这个脚本,如果bash是默认的shell就可以不写,            
# Program
# this is a program
echo -e "hello world"
exit 0

shell脚本的2中执行方式:1.sh 文件名    2. ./文件名(权限不够,文件权限是-rw-r--r--),chmod 744 文件名,就可以执行文件了。shell脚本执行的时候会创建进程,执行完了之后把结果传递到父进程里面来。

//定义shell变量,name=string,变量名用小写命名,=是赋值,两边不能有空格,否则视为命令会报错,v1='ccdcdc',v2=centos,如果是字符串要加单引号或者双引号。如果只有一个单词可以不加。

v1=centos
v2="heool"
echo $v1   //输出变量

a=10
b=20
echo $a
echo $b
c=$(($a*$b))   //加减乘除运算要加双层小括号才行
echo $c
echo $((100-200*2))

v2="vdvdvdv"
echo ${#v2}      //获取字符串的长度
echo ${v2:2}     //从第二个字符开始截取
echo ${v2:2:2}   //从第二个字符开始截取截取2个


//判断:文件是否存在,目录是否存在,是否有权限。
test判断命令,test -f文件是否存在,test -d目录是否存在,test -r文件是否有读权限,test -w文件是否有写权限,test -x文件是否有执行权限。

#!/bin/bash
filename=/home/zhanshan
test -f $filename && echo 'exit' || echo 'not exit'        //文件存在就输出存在不存在就输出不存在

[]判断命令:中括号中必须都要使用空格来分隔,中括号中的变量最好以双引号括起来,常数以单引号括起来。左中括号后面、==前后、右中括号前面、都要加空格。中括号更多用再在if条件判断里面
[ "Sa" == "Sc" ] && echo "yes" || echo "no"
[ '12' == '10' ] && echo "yes" || echo "no"

#!/bin/bash
a=this
b=there
[ $a == $b ] && echo 'yes' || echo 'no'
[ $a != $b ] && echo 'yes' || echo 'no'

if [ -f $filename ]; then      //文件是否存在
    echo 'file exit'
fi

if [ -f $filename ]; then      //文件是否存在
    echo 'file exit'
else
    echo 'else'
fi

if test -f $filename; then      //文件是否存在
    echo 'file exit'
fi


if [];then
    echo
elif
    echo
elif
    echo
fi

case $name in
esca

//多分支判断
#!/bin/bash
echo 'please input you number'
read number     //读取输入
if [ $number == 1 ];then
  echo 'is 1'
elif [ $number == 2 ];then
  echo 'is 2'
elif [ $number == 3 ];then
  echo 'is 3'
else
  echo 'not 1,2,3'
fi


//多分支判断
#!/bin/bash
echo 'please input you number'
read number     //读取输入
case $number in
'a')
  echo 'is a';;
'b')
  echo 'is b';;
'c')
  echo 'is c';;
*)
  echo 'not a,b,c';;
esac



//循环:while condition; do done , untile condition; do done;,for (());do done;
i=10
while(($i>=5));do      //while [ $i -gt 5 ];do
echo $i;
((i--))
done;   //(())小括号里面支持==,!=,>,>=,<,<=[]里面用-eq,-ne,-gt,-ge,-lt,-le


i=10
until(($i<=5));do      //不执行的条件
echo $i;
((i--))
done;


for((i=1;i<=10;i++));do      //不执行的条件
echo $i;
done;


//多分支判断
#!/bin/bash
function print(){
    echo "your input is $1"
}
echo 'please input you number'
read number     //读取输入
case $number in
'a')
  print 'a';;
'b')
  print 'b';;
'c')
  print 'c';;
*)
  print 'none';;
esac

 

发表评论

0/200
367 点赞
0 评论
收藏