linux命令行与脚本,《Linux命令行与shell脚本编程大全》笔记

本文详细介绍了Linux操作系统的基本概念,包括启动过程、硬件设备管理、桌面环境以及Shell的使用。重点讲解了Shell命令,如cd、ls、mv等,并探讨了文件权限、用户管理和重定向。此外,还提到了如何在后台运行程序以及环境变量的设置。对于程序员来说,了解这些基础知识对于日常的代码编写和系统管理至关重要。
摘要由CSDN通过智能技术生成

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

1 初识Linux Shell

本章主要讲了一些基本概念,我们下面直接以只记录知识点。

Linux的启动过程

Linux内核在启动的时候,首先创建一个init进程,然后init进程加载其他进程,具体到Ubuntu里,init进程会到/etc/init.d目录下执行所有脚本和程序。

硬件设备管理

内核的另一个职责是管理硬件设备,任何Linux需要与之通信的设备,都要把驱动集成到内核。以前每次添加新硬件,都要重新变异内核,后来提出了 内核模块的概念,它允许将驱动代码插入运行中的内核。

Linux设备文件有三种,字符型设备文件,块设备文件,网络设备文件。

Linux桌面环境

目前有X Window, KDE 和GNOME,Ubuntu是默认是X Window。

2 走进shell

3 基本的bash shell命令

shell的启动

shell通常是在用户登录终端的时候启动,登录时系统启动的shell依赖于用户账户的配置。

在/etc/passwd文件中就包含了这些信息。

#### 基本操作

cd touch cp ln mv rm file cat more less

4 更多的bash shell命令

ps top kill killall mount umount df du

sort 可以对文件种的字符排序,可以指定将字符看成  数字 时间等各种格式。

grep搜索数据

find是查找文件,grep查找文件中的内容。

compress bzip2 gzip zip

tar

5 理解shell

如何在后台运行一个程序,比如我们需要在当前terminal执行其他操作

在执行命令后面加上 &

内部命令和外部命令

通过type commandname 就可以知道一个命令是shell 内建命令还是外部命令。

6 使用Linux环境变量

全局环境变量 env printenv

局部环境变量 只能在定义他们的进程中可见,比如用户定义局部环境变量。

创建局部环境变量 var=value

创建全局环境变量 var=value export var

删除环境变量 unset

默认环境变量有很多,我们就不意义记录了,但也要记住,不是所有的默认环境变量都会在运行set 命令时列出,也不是所有的默认环境变量都必须有默认值。

PATH环境变量

$PATH是默认寻找程序的路径。

如何让环境变量持久化

登录linux时,bash shell会作为登录shell启动,登录shell会从5个启动文件中读取命令。

/etc/profile $HOME/.bash_profile $HOME/.bashrc $HOME/.bash_login $HOME/.profile

交互式shell

如果bash shell不是登录系统时启动的,比如我们自己启动的terminal,那么我们启动的也叫作交互式shell,交互式shell不会像登录shell

一样运行,但它依然提供了命令行提示符来输入命令。如果bash是作为交互式shell启动的,他就不会访问/etc/profile,只会检查用户缪璐

的.bashrc文件。.bashrc有两个作用,一个是查看/etc目录下通用的bashrc文件,一个是为用户提供一个定制自己的命令别名和私有脚本函数的地方。

数组变量

环境变量可以作为数组使用 var=(value1 value2 value3) echo ${var[2]} ${var[*]}

7 理解Linux文件权限

在linux文件系统中,用户账户信息在/etc/passwd里,但密码是存放在/etc/shadow,这个文件只有root用户才能访问。

useradd 创建新用户

userdel 删除用户

usermod 修改账户

passwd  修改密码

chpasswd 大批量修改密码

finger 查看用户账户信息

/etc/group 是关于组的信息,在/etc/passwd中我们可以看到user所属的组,同时在/etc/group里也会列举出每个组的成员。

groupadd groupmod

chmod改变文件或目录的安全设置  chown chgrp 修改用户或组

15 重定向

0 标准输入 1 标准输出 2 标准错误输出

所以 1>file 是将标准输出dump到file,此时标准错误输出会显示在屏幕上

2>file 会将标准错误输出dump到file,此时标准输出会显示到屏幕上

如果想将输出分别dump到两个文件中 可以采用 1>file1 2>file2

在shell脚本中如何重定向? >&2

但这么做,会导致特别麻烦,因为每一个语句的输出都要重定向。

在这里,我们可以做永久重定向。 exec 1>file1 exec 2>file2

此时,在脚本中 echo “” >&2 就会直接重定向到文件file2

但这么看起来也没什么太大的意义,只不过不需要自己在外面写了

在脚本中重定向输入 exec 0< file 告诉脚本是从file中读取,而不是从STDIN中读取。

创建自己的重定向

在shell种,最多可以有9个打开的文件描述符,这样我们可以用exec 3>file echo “” >&3 来创建自己的重定向

如果我们用了一个文件描述符号,该怎么恢复它呢?exec 3>&1 exec 1>file exec 1>&3

后台运行脚本

在脚本后面加上 &就可以了。比如我们只有一个shell界面的情况下,要查看程序的资源占用,那么就 先运行程序 exefile &

然后继续输入top

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值