简 述: 在 Linux
中,对于一些经常会使用到的命令(不做知识点的搬运工),作业个简短的记录📝,主要作为日后快速查找。还有对于操作系统的主次版本号的含义,shell
,bash
的区别等简单做一个说明。主要有如下知识点:
- Linux 和 GNU 的区别
- shell 和 bash 的区别
- 光标相关快捷键
- 文件目录的结构组成,
- 文件 / 文件夹操作命令 tree,pwd,mkdir,rm,cp,mv,touch
- 显示文件相关信息 cat,more,head,less,tial
- 软硬链接 ln -s
- 用户组,权限 chmod, chown
- 文件查找和检索文件内容 find,grep
- 压缩与解压 tar,rar,zip,gz,bz2
[TOC]
本文初发于 “偕臧的小站“,同步转载于此。
Linux 和 GNU 的区别与联系:
Linux 发行版 == Linux 内核 + GNU 应用软件的操作系统
Linux 是类 Unix 计算机操作系统的统称
Linux 操作系统的内核也是 ”Linux“
Linux 这个单词只表示 Linux 内核,但是实际上人们已经习惯用 Linux 来形容基于 Linux 内核的整个操作系统
Linux 是由芬兰大学生 Linus Torvallds 1991 年编写
GNU 是一个类 Unix 操作系统。它是由多个应用程序、系统库、开发工具乃至游戏构成的程序集合。
总结:
Linux 确实存在,许多人都在使用它,但它仅仅是所用系统的一部分。Linux是内核:它是为你运行的其他程序分配计算机资源的程序。内核是操作系统的基本部分,但是它自己并无用处;它只能在完整的操作系统框架下才能发挥作用。Linux一般和GNU操作系统一起使用:整个系统基本上就是GNU加上Linux,或叫GNU/Linux。所有被叫做“Linux”的发行版实际上是GNU/Linux发行版。
详细参考:
- Linux和GNU系统 https://www.gnu.org/gnu/linux-and-gnu.html
- GNU是什么? https://www.gnu.org
Linux 版本号和 PATH:
Linux 版本号: 主版本号是双数为 STL 支持 5 年;此版本.04 (4月份稳定版),.10为 debug 版本
环境变量: 一些列的路径,在 shell 里面输入的命令,系统就会在这个路径里面去查找该命令是否存在;若存在则执行对应的操作
echo $HOME echo $PATH
shell 和 bash 的区别:
shell
–unix 全称:Bourne(伯恩) shellbash
–linux 首字母缩写:Bourne age shell
解释一下,先有 Unix 系统,当时是以伯恩开发的和系统进行交互的软件,命名为 shell ;随后在出现 Linux (类 Unix)系统,伯恩想要将 shell 迁移到 Linux 上面,但是又不重名,所以称呼为 Bourne age shell,简写为 bash。
shell 命令参数风格:
命令参数,其实是由带 - 和不带 - 两种的。
光标相关快捷键:
history
(crtl + p/n 向上向下遍历历史命令)crtl + b/f
(前进后退:backward,forward)crtl + a/e
(移动到首尾:begin,end)crtl + u/k
(删除一行、删除光标到结尾)crtl + h/d
(删除光标前面、后面一个字母: del)Tab
单词提示补全
Linux 目录文件结构:
Linux 目录根文件/结构
/bin
二进制文件,可执行文件,shell 命令/dev
Linux 下一切皆文件,硬盘,显卡,显示器/lib
动态库/met
手动的挂载目录/media
外设的自动的挂载目录,如 U 盘/root
超级用户的家目录/usr
->unix system resource头文件,游戏,用户安装的程序(usr/local)
/etc
存放配置文件/opt
安装第三方应用程序(如:火狐浏览器,notepadqq)/home
Linux 操作系统下所有用户的家目录/tmp
存放临时文件,可能重启会被清除里面的文件/boot
系统开机的一些配置文件
文件目录相关的命令:
tree
查看目录的内容- # -C 表示输出带彩色, -N 直接显示编码输出(中文不乱码);
alias tree='tree -CN'
- -L 显示多少层的树
- # -C 表示输出带彩色, -N 直接显示编码输出(中文不乱码);
ls
查看文件或者目录-a 显示包括影隐藏文件, -l 每个文件的详细信息
-F 若是文件夹,则文件夹名字后加 / 标识
-h 以人类能够看得懂的方式显示,大小带单位
Linux 下文件夹永远是 4K; 而 unix 下不是 4K。
pwd
显示完整当前路径 (printf work dir)mkdir
创建文件夹- -p 循环创建多个文件夹
touch
创建文件- 若是文件已存在,则只更改文件创建时间
rm
删除目录(删除之后,不能恢复)-r 递归删除;-f 删除时候不弹出确认是否;-i 删除时候添加提示信息
rmdir (辣鸡,只能删除空文件夹)
cp
复制文件、文件夹- cp fileA fileB (fileB 无,则创建;fileB 已存在,则覆盖)
- cp dirA/ dirB
- dirB 无 (dirA 文件夹(含) 拷贝到 目录 dirB)
- dirB 存在 (dirA 文件夹(不含) 拷贝到 目录 dirB)
mv
移动、改名
显示文件内容命令 cat / more:
cat
把文件内容打印到终端more
浏览文件(回车浏览下一行;空格翻页;q 退出)less
和 more 相似head
显示文件头部的前 10 行tail
显示文件尾部 10 行
软硬链接:
软连接 ln -s:
可以看做 快捷方式
ln -s 文件名 快捷方式名
(文件名带上绝对路劲,快捷方式任何地方都可用)目录也可以创建快捷方式
硬链接 ln:
ln 文件名 硬链接名
(不需要带路径)
用户权限,用户,用户组 chmod / chown:
- 目录必须要有执行权限,才可以进去
- 查看所属用户 cat /etc/passwd
- 查看所属于组 cat /etc/group (看到的 x 表示加密的密码)
chmod
修改文件或者目录的权限(同命令,在 Linux 可运行,在 Unix 不一定可以通过);含义:u、g、o、a (usr/group/other/all)- 默认是使用 a(all) 所有人的权限
- eg: chmod ugo+x 20200314_205632.png (加减不同权限用逗号)
- eg: chmod 777 20200314_205632.png (覆盖权限)
- eg: chmod -440 20200314_205616.png (加减权限)
- 默认是使用 a(all) 所有人的权限
chown
修改文件所有者或所属组- chown 新的所有者 文件名
- chown 新的所有者:新的组 文件名
chgrp
修改文件所属组(可以看做弱一点的命令)- chgrp 新的组 文件名
文件查找和检索 find / grep:
find
根据文件属性查找name、type、size、ctime/mtime/atime (创建、修改、访问日期)、mindepth/maxdepth/ (最浅、深的层数)
- eg: find ~/ -name “*.txt”
- eg: find . -type d (七种文件类型:f,d,l,p,s,c,b)
- eg: find . -size +4k -size -1M (4k < 文件大于 < 1M)
- eg: find . -ctime -2 (在2天之内创建的文件)
- eg: find . -maxdepth 2 (查找当前目录下最深为 2 层的目录)
高级查找:
find . -type d -exec ls -l {} ; (ls -l 为具体的shell 命令,红色为固定格式 )
# exec 也可以替换为 ok; ok还会弹出确认提示,要加上分号 find . -type d -exec 命令 {} \; find . -type d -ok 命令 {} \;
find . -type d | xargs shell命令 (用管道效率比上面高)
grep
根据文件内容查找- grep -r (有文件夹) ”查找的内容“ 搜索路径 -n; (-n 显示匹配到的字符串的行数)
- eg: grep -r “aa” ~/Desktop -n (文件夹可以没有)
- grep -r (有文件夹) ”查找的内容“ 搜索路径 -n; (-n 显示匹配到的字符串的行数)
压缩包的管理:
Linux 常见压缩格式 .gz / .bz2:
.gz
–gzip 工具压压缩出来的.bz2
–bzip2 工具压压缩出来的- 上面两个命令,只能压缩文件,很弱,一般是被间接使用
常用压缩命令 tar / rar / zip:
总结:
压缩:
tar zcvf 压缩包名 原材料 (若含文件夹,压缩则需要 -r)
rar a 压缩包名 原材料 (若含文件夹,压缩则需要 -r)
zip 压缩包名 原材料 (若含文件夹,压缩则需要 -r)
解缩:
tar zxvf 压缩包名 -C 解压路径
rar x 压缩包名 解压路径
unzip 压缩包名 -d 解压路径
tar
–压缩解压- 参数:
- c -创建压缩文件
- x -释放压缩文件
- v -打印提示信息(可不写)
- f -指定压缩包的名字
- z -使用 gzip 压缩文件 -xxx.tar.gz
- j -使用 bzip 压缩该文件 -xxx.tar.bz2
- 压缩:
- tar 参数 压缩包名字 原材料
tar zcvf test.tar.gz A b.txt c.png d.exe
- 解压:
- -C -解压目录
tar zxvf test.tar.gz -C 解压目录
- 参数:
rar
–压缩解压- 压缩:
rar a 压缩包名(不用指定后缀) 压缩内容
(有目录则加 -r 参数) - 解压:
rar x 压缩包名 解压目录
- 压缩:
zip
–压缩解压- 压缩:
zip 参数 压缩包名 原材料
- 解压缩:
unzip 解压文件 -d 解压路径
- 压缩:
系列地址:
https://github.com/xmuli/linuxExample
欢迎 star 和 fork 这个系列的 linux 学习,附学习由浅入深的目录。