Linux入门 (笔记)

时间:2023-03-08 17:46:37

  Man can conquer nature.

  "人定胜天"

一、基本操作
   1、重要快捷键

Tab 补全命令、目录、参数、文件名等
Ctrl+c 强制终止当前的程序
Ctrl+d 键盘输入结束或退出终端
Ctrl+z 将当前程序放到后台运行,恢复为前台使用fg
Ctrl+a 将光标移至输入行首,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动
方向键"上"键

恢复之前输入过的命令

2、通配符

* 匹配0各或多个字符
? 匹配任意一个字符
[list] 匹配list中的任意单一字符
[!list] 匹配除list中字符外的任意单一字符
[c1-c2] 匹配c1-c2中任意单一字符 如:[0-9][a-z]
[str1,str2,...] 匹配str1或str2(或更多)其一字符串
{c1..c2} 匹配c1-c2中全部字符 如{1..10},注意是每个字符匹配一次

3、man

 man <name>      #查看name指定内容的详细说明,可以是命令,C库函数等,具体见man man

二、用户及文件权限管理
   1、用户管理

 who [选项]... [ 文件 | 参数1 参数2 ]    #显示当前已登录的用户信息
sudo adduser <name> #添加新用户
sudo passwd <name> #为用户设置密码,不加<name>则设置当前用户的密码
su <name> #切换登录用户
groups <name> #查看用户属于哪些用户组
sudo usermod -G <g-name> <u-name> #为用户添加用户组
sudo deluser <u-name> --remove-home #删除用户并删除该用户的Home目录

2、文件权限

 ls [选项]... [文件]...             #列出文件的信息
chown [选项]... [所有者] 文件名 #修改文件的所有者
chgrp [选项]... 用户组 文件... #修改文件所属的用户组
chmod [选项]... 模式... 文件... #修改文件的读写执行权限

三、文件和目录操作
   1、目录操作

  tree <name>     #以树形结构显示目录的结构,注意tree工具需要自行安装
cd <name> #切换到指定目录
pwd #获取当前目录的绝对路径
mkdir <name> #创建新目录

2、文件操作

 touch <name>            #创建空白文件
cp <name> <p-name> #复制文件到指定目录
rm [选项]... <name> #删除文件或空目录,加上-r参数可以删除非空目录
mv <name> <p-name> #移动文件到指定目录,或者修改文件名
cat [选项] <name> #正序打印文件内容
tac [选项] <name> #倒序打印文件内容
nl [选项] <name> #添加行号并打印文件内容
more <name> #分页查看文件内容
less <name> #类似于more
head <name> #查看文件开头的内容
tail <name> #类似于head但是是从末尾开始
file <name> #查看文件类型

四、环境变量与文件查找
   1、变量

 declare var     #声明变量
var=XXX #给变量赋值
echo $var #打印变量内容
unset var #删除一个环境变量

2、环境变量

 set             #显示当前shell所有环境变量
env #显示与当前用户相关的环境变量
export #显示从shell中导出成环境变量的变量

3、命令的查找路径与顺序

 echo $PATH      #输出的内容为系统查找命令的各个路径,按照排列的顺序查找并调用找到的第一个命令

4、添加自定义路径到PATH

 PATH=$PATH:path-name    #临时修改当前shell的PATH变量

5、文件查找

 whereis <name>          #搜索二进制文件、man帮助文件或者源代码文件
locate <name> #查找指定目录下不同类型的文件
which <name> #用来确定是否安装了某个指定的软件
find [path] [opt] [act] #在指定目录下搜索满足指定条件的文件

五、文件打包与解压缩
   常用的文件压缩打包/解压缩工具:

 zip / unzip
rar
tar

具体参见man手册

六、文件系统操作与磁盘管理
   1、查看磁盘和目录容量

 df      #查看磁盘容量,常加上 -h 参数以易读的方式打印

2、磁盘操作

 dd                              #用于转换和复制文件
mount [opt] [sour] [dir] #挂在磁盘到指定目录
umount [dir] #卸载已挂载的磁盘
sudo fdisk [opt] #查看硬盘分区表信息

七、命令执行顺序控制与管道
   1、命令执行顺序

 cmd1;cmd2;cmd3;...      #按顺序执行cmd1,cmd2,...
cmd1 && cmd2 #只有cmd1执行成功才执行cmd2
cmd1 || cmd2 #只有cmd1执行失败才执行cmd2
cmd1 | cmd2 #将cmd1的输出作为cmd2的输入

2、常用到管道的命令

 cut     #打印每一行的某一字段
grep #在文本中或标准输入中查找匹配字符串
wc #统计并输出一个文件中行、单词和字节的数目
sort #将输入按照一定方式排序后输出
uniq #用于过滤或者输出重复行

八、简单文本处理
   1、文本处理命令

 tr      #删除或替换一段文本信息中的某些文字
col #将Tab换成对等数量的空格,或者反转这个操作
join #将两个文件中包含相同内容的那一行合并在一起
paste #将多个文件合并在一起,并以tab隔开

九、数据流重定向
   1、简单重定向

 cmd > name      #将cmd1执行的结果重定向到指定文件或指定设备中,替换原来的内容
cmd >> name #类似于 > ,但是这里是追加到文件末尾,而不是替换
cmd < name #方向与 > 相反
cmd << name #方向与 >> 相反

2、重定向到多个文件

 cmd | tee name1 name2 ...       #将cmd1的执行结果重定向到标准输出和指定文件中

3、完全屏蔽命令输出

 cmd > /dev/null         #将命令的执行结果导入"黑洞"文件中

十、软件安装
   1、在线安装

 sudo apt-get [工具]      #用于安装、更新、卸载等操作的公共程序集
工具 说明
install 后面加上软件包名,用于安装一个软件包
update 更新本地软件
upgrade 升级本地可更新的全部软件包,但存在依赖关系时不会升级
remove 移除已安装的软件包,包括与被移除软件有依赖关系的软件包,但不包含配置文件
purge 移除软件包和配置文件
clean 移除下载到本地的已经安装好的软件包

:本文只是作为笔者学习过程中的一份学习笔记,更多更详细的内容请参见相关书籍或相关文档