linux学习笔记[华电](1)——Shell命令

这学期正好在学习linux,趁此机会写个笔记。当时不知道,居然下了一个中文版的ubuntu,用起来确实有点恶心。。。

linux 常用命令


/etc/passwd(是文件而不是命令)

cat /etc/passwd

用户可以通过打开这个文件,来查看用户配置信息。

在这里插入图片描述

在这里插入图片描述

如果成功显示的格式:

用户名:密码:用户id:组id:账号描述:主目录:登录shell(默认是bash)


passwd

passwd 用户名

普通用户只能修改自己的密码,root可以修改任何人的密码,并且不需要知道之前的密码。


id

id

可以查看当前登录用户的信息

在这里插入图片描述


变量

创建或修改一个变量:变量名=变量值
显示变量的值:echo $变量名
删除变量:unset 变量名
导出环境变量:export 变量名

总之一顿骚操作之后就明白怎么用了。

在这里插入图片描述


查看环境变量

set
env

都可以用来查看环境变量,打印出一堆东西

在这里插入图片描述


PATH变量

echo $PATH

PATH 是shell命令搜索路径,会去PATH包含的目录中寻找和命令同名的可执行文件

在这里插入图片描述


环境变量PS1

echo $PS1

主命令提示符。可以自定义。默认为用户名@主机名:当前工作目录:$(普通用户)或#(root)

在这里插入图片描述


环境变量 PS2

echo $PS2

一般用于命令太长,一行写不完的时候,下一行接着上一行,行首会有“>”。

在这里插入图片描述


环境变量HOME

echo $HOME

用户的主目录:/home/用户名

在这里插入图片描述


source 或者 .

source 脚本文件

在当前shell中执行脚本文件
这里有一个我已经写好的创建变量的脚本

在这里插入图片描述

和bash命令对比,可以明显看出source是在当前shell中进行的,而不是另起一个进程。

在这里插入图片描述


pwd

pwd

查看当前目录路径

在这里插入图片描述


cd

cd 路径名
cd ..(返回上层目录)
cd -(返回上一次cd的目录,可以理解为反复横跳)
cd (返回HOME)

用法都很简单,但远比windows上的cd要强大。

在这里插入图片描述


man

man [页号] 命令名

可以查看某指令的帮助信息。
页号1:linux内置
页号2:linux系统调用
页号3:库函数

在这里插入图片描述


| (管道)

ls | less

将左边命令的stdout作为右边命令的stdin,实现管道的功能。

在这里插入图片描述


重定向

> (输出重定向)
ls > 文件名

将左边指令的stdout重定向到右边的文件中(覆盖)。

在这里插入图片描述

ls > 文件名 2>&1

把stderr重定向到已经一定重定向stdout的文件中(听起来有点绕)。例子中因为没有错误信息,所以结果保持不变。

在这里插入图片描述

set –o noclobber

因为> 会把原有文件的内容冲掉,所以比较危险。set –o noclobber这个命令可以保证如果文件存在,我就不执行重定向。

>|

如果我无论如何都要强制执行,就是用>|。

>> (追加重定向)
ls >> 文件名

用法和前面的差不多,只不过是追加方式

< (输入重定向)
cat < 命令或文件

把右边的stdout变为左边的stdin。

在这里插入图片描述

<< (界限符)
wc << 界限字符
  ...
界限字符

这个可不是重定向了,虽然长得很像。主要是作为界限符来使用。

在这里插入图片描述


*,?,[,],[-],{,}

用于匹配,类似于正则表达式,但是要简单一些。具体用法见例子。

在这里插入图片描述


read

read file

从终端读入字符串放在右边的变量中。

在这里插入图片描述

之前已经写好了一个bash脚本,包含一条read命令。

在这里插入图片描述


test

test可用于整数测试,字符串测试,文件测试和逻辑测试。

在这里插入图片描述

在Linux中,0表示true,1表示false,这和高级程序设计语言刚好相反。并且由此补充一个c中的main函数至少要有的参数(虽然平常打比赛都不写的。。。)。

int main(int argc,char **argv,char **env)
{
	return 0;
}

当然,程序员都是比较懒的,test命令又可以写成“[”。

在这里插入图片描述


expr

进行表达式计算的,注意要有空格,否则会被误认为是string。

在这里插入图片描述


if语句

下面的这些bash语法感觉上会比较晦涩,老师说能用bash写脚本的都是大神,推荐我们使用python写。。。
学长说,他就是因为不会写shell脚本,所以才在工作中吃了点亏,哈哈哈。

if [ expression ];
then
statements
elif [ expression ];
then
statements
else
statements
fi

case语句

上课的时候老师说,这都是什么反人类的语法。。。。

case $var in
val1)
statements;;
val2)
statements;;
*)
statements;;
esac

for语句

for var in list
do
statements
done

while语句

while expression
do
statements
done

util语句

until expression
do
statements
done

函数

function 函数名()
{
statements
}

特殊的shell变量

都是用来表达特定含义的变量,比较重要,老师说了必考,哈哈哈哈。

$# 传递给脚本或函数的参数个数
$0 脚本程序自身的名称(命令行名称)
$1 传给脚本或函数的第一个参数
$2 ...
$3 ...
$4 ...
$? 上一条语句的返回值
$$ 执行本脚本的进程的PID值
$* 将所有的参数作为一个字符串
$@ 将所有的参数分解为包含若干字符串的数组

这一章到这里就结束了,下一期接着写有关vim的。
最近忙着参加预推免,耽误了一些课。特此感谢mj同学和lqz同学帮我录制上课视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值