命令行快捷键
按键 | 作用 |
---|---|
Ctrl+d |
键盘输入结束或退出终端 |
Ctrl+s |
暂停当前程序,暂停后按下任意键恢复运行 |
Ctrl+z |
将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a |
将光标移至输入行头,相当于Home 键 |
Ctrl+e |
将光标移至输入行末,相当于End 键 |
Ctrl+k |
删除从光标所在位置到行末 |
Alt+Backspace |
向前删除一个单词 |
Shift+PgUp |
将终端显示向上滚动 |
Shift+PgDn |
将终端显示向下滚动 |
Tab |
自动补全命令参数 或者提供该命令的帮助信息(强烈推荐) |
Linux命令
1:rm 删除命令
rm [options] name...
rm命令执行后都无法恢复
options | function |
---|---|
-i | 删除前逐一询问确认 |
-f | [force]即使原档案不存在或只读(有写保护),也不提示 |
-r | ( recursive递归方式 很多命令都有)将目录及以下之档案亦逐一删除 |
rm -r *
:删除当前目录下的所有文件及目录
2:ls 输出该目录下的文件
options | function |
---|---|
-a | 不忽视以.开头的入口(入口是该目录下的一些目录项) |
-l | 显示所有文件对不同权限访问者的属性 |
属性开头-表示非文件,d是文件owner-属主/所有者-rwx
group-组用户-r-x
others-其他人-r-x
3:find 在目录中查找文件
find 起始路径 选项
options | function |
---|---|
-size | 限制文件大小 |
-atime | 文件在n*24h以前访问过 |
-ok command ; | 查找到了,执行ok后面跟的command命令 |
find ./kernel/ -name bochsout.txt -ok rm {} \;
4:grep 在文件中查找字符串
grep 表达式 目标文件
-
grep “abc” file1
-
ls -l | grep "^-r.x"
:“|”是管道,将列出的文件传给grep作为目标文件 (其他要点看正则表达式)
用于选择当前目录下行首为“-r.x”的文件
5:cd 进入某一路径、文件
绝对路径:cd /usr/local/bin
.不受当前路径影响
相对路径:当前在usr/local/dev,要想一步到位进入bin文件。使用cd ../bin
(cd ..和cd bin命令的结合版本)
-r:复制目录
6:mkdir 创建空目录
mkdir -p dad/son/grandson 创建多级目录
7:gcc
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器 ,工具集中包含编译工具gcc、链接工具ld
options | function |
---|---|
-c | 只执行到编译,不链接,生成 .o目标文件 |
-o | 指定生成文件名 |
-m32/64 | 指定以32/64位环境进行编译,生成x位文件 |
-I | 指定库路径 |
-g | GDB调试信息 |
8:help info man 帮助命令
shell命令分为内建和外部命令
help 命令是用于显示 shell 内建命令的简要帮助信息,外部命令可以用--help
参数。
man是比help更详细的帮助手册,对所有命令都适用
info是GNU项目超文本帮助系统,能显示更多GNU工具信息。man和info是两个集合,有交集
9:gzip压缩
-d -S -l -r 重要参数
10:tar打包
侧重于备份,尽量保证完整性
-zcvf create 创建压缩包
-zxvf extract 解压压缩包
11:wc统计
wc [-CLW] file_list (C-character L-line W-word)
Ex:ls -l | wc -l 表示当前目录下文件和目录的总数
whereis tmux 查看位置
软件安装
- 在线安装
- 从磁盘安装deb软件包
- 二进制软件包安装
- 源代码编译安装
1:在线安装
apt包管理工具:APT(Advance Packaging Tool高级安装工具)
使用apt-get下载过程
- 在本地的数据库中搜索待下载软件的相关信息,包括软件源、软件依赖等,所以我们经常下载前要执行
sudo apt-get update
命令来从软件源镜像服务器(可以修改为国内源,速度更快)上下载软件包列表,来保持列表是最新的 - 根据信息在相关服务器上下载软件安装
apt-get常用的参数
install |
其后加上软件包名,用于安装一个软件包 |
---|---|
update |
从软件源镜像服务器上下载/更新用于更新本地软件源的软件包列表 |
upgrade |
升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常会在更新之前执行一次update |
dist-upgrade |
解决依赖关系并升级(存在一定危险性) |
remove |
移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件 |
autoremove |
移除之前被其他软件包依赖,但现在不再被使用的软件包 |
purge |
与 remove 相同,但会完全移除软件包,包含其配置文件 |
clean |
移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt/archives/ |
autoclean |
移除已安装的软件的旧版本软件包 |
--reinstall |
重新安装软件包 |
apt-get选项
选项 | 说明 |
---|---|
-y |
假定对所有的询问选是,不提示 |
-f |
尝试修补依赖问题 |
# 更新软件源
$ sudo apt-get update
# 升级没有依赖问题的软件包
$ sudo apt-get upgrade
# 升级并解决依赖关系
$ sudo apt-get dist-upgrade
软件搜索
在软件仓库中查找软件的工具apt-cache
sudo apt-cache search software1,software2,...
2:dpkg安装
参数 | 说明 |
---|---|
-i |
安装指定 deb 包 |
-R |
后面加上目录名,用于安装该目录下的所有 deb 安装包 |
-r -p |
remove,移除某个已安装的软件包 |
-I |
显示deb 包文件的信息 |
-s |
显示已安装软件的信息 |
-S |
搜索已安装的软件包 |
-L |
显示已安装软件包的目录信息 |
dpkg不能像apt一样解决依赖关系,所以需要apt来解决
$ sudo apt-get update
#-f install 修复依赖关系,-y 对询问默认为yes
$ sudo apt-get -f install -y
3:二进制包安装
- 从网络上下载二进制包解压到合适目录
- 将包含可执行的主程序文件的目录添加进PATH环境变量
4:源码安装(最复杂)
下载源码后,设置配置文件,再执行make。
虚拟机和安装Linux系统
如果是本地安装需要将iso镜像文件制作到U盘,或者刻录到光盘中,以此作为驱动器来安装OS
虚拟机会创建一个虚拟的光驱,只需要本地提供iso文件即可
最大硬盘大小:硬盘占用量根据你加入的应用程序的增加而增加,但最大不能超过这个限制,定个20GB或者40GB日常使用
内存容量:运行时占用实际的计算机内存,若本机内存8GB,建议使用4GB,不需要用到GUI界面可以用1-2GB。如果使用大于8GB,缺少的内存可能就会由硬盘提供,会影响运行效率。
处理器选择:多核多CPU在需要并发运行时使用,一个CPU可以有多个内核,每个内核有各自的crash(处理停机等情况),核之间由总线相连,CPU之间信息通过内存传输
网络适配器:
- 桥接:对外来看,host和guest机在同一网段,子网掩码、网关和DNS相同
- NAT:guest机要访问网络,需要通过host(类似网关);但外机想访问guest,需要通过主机进行网络地址转化,改变端口映射才可以。
- Host only:不联网,只允许host和guest机进行交流
一般采用NAT,不用桥接是因为虚拟机直接连接物理网络会占用该网段的资源。
分区:
基础版:交换swap分区和/根分区
/swap:内存不足时进行补充,休眠
/boot:内核和grub,更新内核时会改动这个分区
GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
/Home:存储多个用户数据,可以挂到其他OS上,相当于备份的功能
软件分布:
二进制包(安装包)
- rmp 红帽包管理工具
- deb debian
源码包:编译后安装
- tar
- tar.gz
- zip
- rar
shell:命令解析器--解析输入命令并执行操作
网络基础
MAC:硬件固定的地址
IP协议:包含源IP地址和目的IP地址字段,节点有全网唯一的32位IP地址
IP地址是逻辑地址,用来唯一标识网络中一个节点(主机或路由器)
32位IP地址构造,由网络标识和主机标识构成,网络标识分为A,B,C类(不同位数)
掩码:把不需要知道的位掩藏,只显示出需要的,如11110011,需要末尾三位的值,通过&00000111
通过与操作获取网络标识码,
如果两个网络标识相同->相同网段-本地主机, 不同->不同网段-远程主机
IP地址=网络地址+子网号+主机号,子网号是从主机号中分离出来几位拿来用的。
桥接模式,即虚拟机IP和本机的网络地址相同
shell编程
./xx.sh
可以执行,但执行xx.sh
却显示命令找不到,是因为默认的PASH没有这个脚本文件的路径
linux遇到过的问题
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock(/var/lib/dpkg/lock-frontend), is another process using it?
这种情况需要找到并且杀掉所有的apt-get 和apt进程
//方法一:
sudo ps -aux | grep apt //找到所有apt进程
sudo kill -9 xxxx //xxxx为进程号,杀掉xxxx后面9个进程(包括xxxx)
//方法二:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
//方法三:
去到/var/lib/dpkg/的目录下删除提示的文件