您的位置:首页 > 运维架构 > Linux

Linux 基础入门--笔记

2017-09-11 20:46 387 查看
文本主要是记录在学习实验楼中的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

具体的参数列表如下:



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 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。
![这里写图片描述](http://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


![这里写图片描述](http://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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell linux