Linux笔记

Linux笔记


指令

权限管理

chgrp

chown

chmod:更改权限时直接用=就行了,chmod a=rwx,u=r…

pwd:查看当前目录

文件操作

mkdir

rmdir:必须为空目录

rm

cp

mv:可以用来改名

basename:获取文件名

dirname:取得目录名

查看操作

cat:更多的使用less比较好

tac

nl:会输出行号

more,less:查看更多,less更加方便

head:只显示头几行 -n参数指定几行

tail(尾巴):只显示尾巴几行,-n 参数指定行

file:查看文件类型

查找

which command:查找命令所在位置

whereis、locate、find:查找文件,find比较慢,locate是在某个数据库中,但是每天只更新一次

压缩

压缩:tar -cz -f file.tar.gz file

解压缩:tar -xz -f file.tar.gz

-c:创建打包文件

-x:解压打包文件

-z:使用gzip处理

-f:指定压缩文件

截取

cut -d ":" -fn /etc/passwd:以:为分割符进行分割,选取第n列

其他

seq 1 100:获取1-100的值,也可以使用{1…100}、{a…d}

shell

  • shell是与kernel进行沟通的工具、bash就是多数Linux系统默认的shell

  • 设置变量:

k=v,变量里边包含命令:命令使用符号``包含或者 ( u n a m e − r ) , 变 量 内 部 嵌 套 变 量 使 用 (uname -r),变量内部嵌套变量使用 (unamer)使{},记忆:变量 , 命 令 : {},命令: ()

取消变量:

unset name

环境变量:

  • env:查看变量

  • 导出变量:

export name 将变量导出到环境变量,子程序是在shell中新开的一个shell,新的shell不能访问父shell的变量,但是如果变量导出即可访问,子程序只会继承父程序的环境变量,而不会继承自定义变量

$RANDOM:随机获取数值

变量处理

  • read:读取输入到变量,-p:提示,-t:只等待一段时间
  • declare:类型声明

-i:数字类型

-a:数组类型

-r:只读类型

数组:var[1]=2var[2]=3的形式进行声明

限制资源使用:ulimit

命令别名:alias lm=“ls -la”、unlias lm:取消别名

历史命令:histroy,history 3:最近的3个命令

数据流重导向

  • 标准输入:< 或 <<
  • 标准输出:> 或 >>
  • 标准错误输出:2> 或 2>>

两个符号的重导向进行数据的累加而不进行数据删除

/dev/null会吃掉所有导向该设备的信息,如果不想将信息显示也不想导入文件可以将其导入该处

命令执行依据

command 1;command 2;command 3:连续下达命令

command 1&&command 2、command 1||command 2:短路与和短路或

管线命令

command 1 | command 2:命令1的输出作为命令2的输入,命令2必须能够接收标准输入

查找命令:

grep -n ‘exp’ content.txt:exp可以为正则表达式或者普通的文本,-n显示行号

diff file1 file2:比较两个文件不同

shell scripts

只要文件可执行就可以使用 ./shell.sh 的方式进行执行,如果文件可读的话就可以使用bash shell.sh 或者 sh shell.sh (bash的连接文件)的方式使用bash执行

上边两种执行方式称为直接执行,是新开一个bash进行执行,就是子程序,所以执行完毕后在父窗口是访问不到执行时变量的

另外一种方式就是使用父bash进行执行,source shell.sh

#!/bin/bash :声明使用/bin/bash 进行执行。不然可能会有些系统无法判断使用什么shell执行

$?:判断shell执行状态,0执行成功,1失败,可以使用exit n 的形式自定义返回

数值运算除了使用declare声明,还可以使用如下方式:

#!/bin/bash
echo $((2*3))

可以利用$?获取上一条命令的表达式作为判断依据对下一步就行处理,也可以使用&&、||操作符

默认参数

$0:脚本文件名

$1…:参数

$#:参数个数

@ 、 @、 @*:获取全部参数

使用shift命令对参数进行偏移,默认偏移1,也可以在shift后加数字指定偏移

条件判断

[]可以用于判断

[ "${name}" == "a" ]&&echo"yeah"

大于、小于应该使用 -gt、-lt

if then

name1="a"
name2="a"
if [ "${name1}" == "${name2}" ];then
	echo "name1=name2"
elif [....];then
	echo "....."
else
	echo "name1!=name2"
fi

多个判断分开写,然后使用&&、||

case in esac

case $1 in
	"hello")
		echo "你输入的参数1为hello"
		;;
	"shell")
		echo "你输入的参数1为shell"
		;;
	*)
		echo "请输入参数"
		;;
esac

两个分号结束语句

函数

定义方式

function name(){

}

函数内部也有默认变量$0代表函数名、$1…代表参数

调用函数只需要写函数名即可,如果有参数在函数名后加参数

循环

while do done 满足条件循环、until do done直到满足条件就终止循环

while [ "${yn}" != "yes" ]
do
	read -p "input some: " yn
done

for do done

for animal in cat,dog,pig
do
	echo "animal is ${animal}"
done
echo "find root"
for user in $(cut -d ":" -f1 /etc/passwd)
do
	if [ "${user}" == "root" ];then
		echo "root in /etc/passwd"
	fi
done

for do done 数值处理

for ((i=1;i<10;i++))
do 
	echo ${i}
done

debug

bash -n :查看语法

bash -v :查看过程

bash -x:执行到的语句显示

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值