Linux实验楼学习笔记
知识误区
Shell和终端
-
终端
终端本质上是对应着 Linux上的/dev/tty
设备,Linux 默认提供了 6 个纯命令行界面的 “terminal”来让用户登录。在物理机系统上你可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,当切换到其中一个终端后想要切换回图形界面,你可以按下[Ctrl]+[Alt]+[F7]来完成。 -
Shell
通常在图形界面中对实际体验带来差异的 Shell(壳)。有壳就有核,这里的核就是指 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。
Shell 既是用户交互的界面,也是控制系统的脚本语言。
su,su-,sudo区别
-
su
可以切换到用户 user,执行时需要输入目标用户的密码,sudo 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。 -
su -
命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。 -
sudo 普通用户执行一些或者全部的root命令的一个工具
文件权限
- 一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件
linux目录结构
- Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架。以下是FHS标准(Filesystem Hierarchy Standard 中文:文件系统层次结构标准)
Shell变量和环境变量
- Shell变量(/etc/bashrc),又称变量, Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号
- 设置变量
declare 变量名
变量名= XXX
变量赋值echo $变量名
打印变量值
- 设置变量
- 环境变量( /etc/profile )环境变量的作用域比自定义变量的要大,如 Shell 的环境变量作用于自身和它的子进程。在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,除了创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。
linux指令汇总
Linux用户管理
-
查看用户
who am i
,whoami
,pwd
(打印所在文件位置,例如 /home/20175234 ) -
创建用户
sudo adduser 20175234
(不可以数字打头哦,仅是示例) -
修改用户密码
sudo passwd 20175234
-
切换登陆用户
su -l 20175234
-
参看用户组
groups 20175234
,cat /etc/group | sort
(查看 /etc/group 文件) -
更改用户组
sudo usermod -G sudo lilei
(使用root用户或者其他已经在 sudo 用户组的用户,将20175234用户加入 sudo 用户组) -
删除用户
sudo deluser 20175234 --remove-home
文件权限管理
-
变更文件所有者
sudo chown 用户 文件名
-
修改文件权限
- 方式一:二进制数字表示
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)对应一个 " rwx ",也就是一个 “ 7 ” ,则chmod 600 文件名
说明只有拥有者可以读写
-方式二:加减赋值操作
g、o 还有 u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限。chmod go-rw 文件名
可以实现上述操作。
- 方式一:二进制数字表示
文件基本操作
- 获取当前路径
pwd
- 新建空白文件
touch 文件名
- 新建目录
mkdir 目录
mkdir -p 目录
同时创建父目录
- 复制文件
cp 文件 路径
- 复制目录
cp -r/R 目录 目录
- 删除文件
rm 文件
rm -f 文件
删除有只读文件的权限的文件
- 删除目录
rm -r/R 目录
- 移动文件
mv 源目录文件 目的目录
- 重命名文件
mv 原文件名 新文件名
- 批量处理文件
touch file{1..5}.txt
使用通配符批量创建 5 个文件rename 's/\.txt/\.c/' *.txt
批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件rename 'y/a-z/A-Z/' *.c
批量将这 5 个文件,文件名和后缀改为大写
- 查看文件
-
cat、tac打印文件内容到标准输出,cat 为正序显示,tac 为倒序显示
-
cat -n 文件名
打印行号 -
nl
添加行号并打印
-
more/less 文件名
分页查看文件 -
head/tail 文件名
tail -n 文件名
查看末尾n行文件tail -f 文件名
查阅正在改变的日志文件
-
file 查看文件类型
-
PATH路径
$ echo "PATH=$PATH:绝对路径" >> .zshrc
>>
表示将标准输出以追加的方式重定向到一个文件中,注意前面用到的>
是以覆盖的方式重定向到一个文件中,使用的时候一定要注意分辨。在指定文件不存在的情况下都会创建新的文件
变量修改和删除
-
修改变量
-
删除变量
unset temp
-
让变量生效
source .zshrc
或者. ./.zshrc
搜索文件
- whereis,简单快速查找二进制文件
- local,快而全,通过“ /var/lib/mlocate/mlocate.db ”数据库查找,可以使用updatedb 更新后再查找
- which,小而精,来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令
- find 精而细,可以通过文件类型、文件名进行查找,也可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索
文件打包与解压
- zip:
- 打包 :
zip something.zip something (目录请加 -r 参数)
- 解包:
unzip something.zip
指定路径:-d 参数
- 打包 :
- tar:
- 打包:
tar -cf something.tar something
- 解包:
tar -xf something.tar
指定路径:-C 参数
- 打包: