Linux 基础入门--笔记

文本主要是记录在学习实验楼中的Linux基本入门课程时,所做的学习笔记。

一~四 基础

1.光标移动
ctrl + a / ctrl + e 光标移动到最前或者最后
alt + backspace 删除当前光标内容并移动到最后
* 匹配0 或者 多个字符
? 匹配任意一个字符
[list] 匹配list 中任意一个
[!list] 匹配除 list 外的
[c1- c2 ] 匹配中的任意一个
{string1, string2 …} 匹配string 1 和string2 .. 中的任意一个
{c1..c2} 匹配 c1 到c2 中的全部

who 可以打印
adduser lilei 添加用户
groups shiyanlou 查看所属的组
sudo usermod -G sudo lilei 移动的sudo 组
sudo deluser lilei –remove -home 删除用户
sudo chown shiyanlou $path可更改权限,所属用户

sudo chmod +777 $filename
具体的参数列表如下:


Linux 基础入门--笔记_第1张图片

rwx = 7 最高权限为+ 777, 700 表示仅用户刻可读可写,可执行。
chmod go-rw $filename
g、o 还有 u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限。
useradd 只创建用户,还需要自行设定密码。
adduser 像一个程序,需要输入,确定等操作。

五. 环境变量与文件查找

1. 环境变量

5.1 一下三句话实现了简单的创建变量,赋值,读取变量。

declare tmp 
tmp=shiyanlou
echo $tmp

变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。
5.2 环境变量
通常涉及的变量有三种:
- 当前 Shell 进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效。
- Shell 本身内建的变量。
- 从自定义变量导出的环境变量

命令 说明
set 显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。
![这里写图片描述](https://img-blog.csdn.net/20170911205944867?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjI2MzcwNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
temp=shiyanlou
export temp_env=shiyanlou
env|sort>env.txt
export|sort>export.txt
set|sort>set.txt

然后使用vimdiff 来比较差别。

vimdiff env.txt export.txt set.txt
![这里写图片描述](https://img-blog.csdn.net/20170911210300946?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjI2MzcwNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 永久生效 按变量的生存周期来划分,Linux 变量可分为两类: 1. 永久的:需要修改配置文件,变量永久生效; 2. 临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。 这里介绍两个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件:
cd /home/shiyanlou
ls -a

这个 .profile 只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。
5.3 命令查找路径与顺序

echo $PATH
gedit hello_shell.sh  //内容自行填充

chmod 755 hello_shell.sh
./hello_shell.sh
gedit hello_world.c  //内容自行填充

gcc -o hello_world hello_world.c

mkdir mybin
mv hello_shell.sh hello_world mybin/

5.4 添加自定义路径到”PATH“ 环境变量
通过
PATH=$PATH:/home/shiyanlou/mybin
一定要使用绝对路径
然后就可以在任意命令窗口执行上面 hello_shell, hello_world 两个程序

在每个用户的 home 目录中有一个 Shell 每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。zsh 的配置文件是 .zshrc,相应 Bash 的配置文件为 .bashrc 。它们在 etc 下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的配置文件。

我们可以简单地使用下面命令直接添加内容到

echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc

上述命令中 >> 表示将标准输出以追加的方式重定向到一个文件中,注意前面用到的 > 是以覆盖的方式重定向到一个文件中,使用的时候一定要注意分辨。在指定文件不存在的情况下都会创建新的文件。

5.5 修改和删除已有变量
变量修改

变量设置方式 说明
${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据
${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据
${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据
${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据
${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串
${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串

删除变量

unset temp

让环境变量立即生效
前面我们在 Shell 中修改了一个配置脚本文件之后(比如 zsh 的配置文件 home 目录下的 .zshrc),每次都要退出终端重新打开甚至重启主机之后其才能生效,很是麻烦,我们可以使用 source 命令来让其立即生效,如:

source .zshrc

source 命令还有一个别名就是 .,注意与表示当前路径的那个点区分开,虽然形式不一样,但作用和使用方式一样,上面的命令如果替换成 . 的方式就该是:

. ./.zshrc

source 命令还有一个别名就是 .,注意与表示当前路径的那个点区分开,虽然形式不一样,但作用和使用方式一样,上面的命令如果替换成 . 的方式就该是:

2. 搜索文件

与搜索相关的命令常用的有 whereis,which,find 和 locate
whereis 简单快速
locate 快而全
which 小而精
find 精而细
find 很强大,目前用不到,用到再学

酷炫,看起来像黑客帝国
在terminal 的颜色中将字体颜色改为黑底绿字,然后…

sudo apt-get update;sudo apt-get install cmatrix
cmatrix

测试;
有一个非常重要的文件(sources.list)但是你忘了它在哪了,你依稀记得它在/etc/目录下,现在要你把这个文件找出来,然后设置成自己可以访问,但是其他用户并不能访问
找到sources.list文件
把文件所有者改为自己(shiyanlou)
把权限修改为仅仅只有自己可读可写

sudo find /etc/ -name sources.list
sudo chown shiyanlou /etc/apt/sources.list
sudo chmod -177 /etc/apt/source.list

你可能感兴趣的:(码农,linux)