Linux应用基础

命令行快捷键

按键作用
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命令执行后都无法恢复

optionsfunction
-i删除前逐一询问确认
-f[force]即使原档案不存在或只读(有写保护),也不提示
-r( recursive递归方式 很多命令都有)将目录及以下之档案亦逐一删除

rm -r *:删除当前目录下的所有文件及目录

2:ls 输出该目录下的文件

optionsfunction
-a不忽视以.开头的入口(入口是该目录下的一些目录项)
-l显示所有文件对不同权限访问者的属性

属性开头-表示非文件,d是文件owner-属主/所有者-rwx
group-组用户-r-x
others-其他人-r-x

3:find 在目录中查找文件

find 起始路径 选项

optionsfunction
-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

optionsfunction
-c只执行到编译,不链接,生成 .o目标文件
-o指定生成文件名
-m32/64指定以32/64位环境进行编译,生成x位文件
-I指定库路径
-gGDB调试信息

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 查看位置

软件安装

  1. 在线安装
  2. 从磁盘安装deb软件包
  3. 二进制软件包安装
  4. 源代码编译安装

1:在线安装

apt包管理工具:APT(Advance Packaging Tool高级安装工具)

使用apt-get下载过程

  1. 在本地的数据库中搜索待下载软件的相关信息,包括软件源、软件依赖等,所以我们经常下载前要执行 sudo apt-get update命令来从软件源镜像服务器(可以修改为国内源,速度更快)上下载软件包列表,来保持列表是最新的
  2. 根据信息在相关服务器上下载软件安装

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 -premove,移除某个已安装的软件包
-I显示deb包文件的信息
-s显示已安装软件的信息
-S搜索已安装的软件包
-L显示已安装软件包的目录信息

dpkg不能像apt一样解决依赖关系,所以需要apt来解决

$ sudo apt-get update
#-f install 修复依赖关系,-y 对询问默认为yes
$ sudo apt-get -f install -y

3:二进制包安装

  1. 从网络上下载二进制包解压到合适目录
  2. 将包含可执行的主程序文件的目录添加进PATH环境变量

4:源码安装(最复杂)

下载源码后,设置配置文件,再执行make。

虚拟机和安装Linux系统

如果是本地安装需要将iso镜像文件制作到U盘,或者刻录到光盘中,以此作为驱动器来安装OS

虚拟机会创建一个虚拟的光驱,只需要本地提供iso文件即可

最大硬盘大小:硬盘占用量根据你加入的应用程序的增加而增加,但最大不能超过这个限制,定个20GB或者40GB日常使用

内存容量:运行时占用实际的计算机内存,若本机内存8GB,建议使用4GB,不需要用到GUI界面可以用1-2GB。如果使用大于8GB,缺少的内存可能就会由硬盘提供,会影响运行效率。

处理器选择:多核多CPU在需要并发运行时使用,一个CPU可以有多个内核,每个内核有各自的crash(处理停机等情况),核之间由总线相连,CPU之间信息通过内存传输

网络适配器:

  1. 桥接:对外来看,host和guest机在同一网段,子网掩码、网关和DNS相同
  2. NAT:guest机要访问网络,需要通过host(类似网关);但外机想访问guest,需要通过主机进行网络地址转化,改变端口映射才可以。
  3. Host only:不联网,只允许host和guest机进行交流

一般采用NAT,不用桥接是因为虚拟机直接连接物理网络会占用该网段的资源。

分区:

基础版:交换swap分区和/根分区

/swap:内存不足时进行补充,休眠

/boot:内核和grub,更新内核时会改动这个分区

GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

/Home:存储多个用户数据,可以挂到其他OS上,相当于备份的功能

软件分布:

二进制包(安装包)

  1. rmp 红帽包管理工具
  2. deb debian

源码包:编译后安装

  1. tar
  2. tar.gz
  3. zip
  4. 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/的目录下删除提示的文件

标题:Linux应用基础
作者:abandon
地址:HTTPS://www.songsci.com/articles/2021/04/03/1617416324643.html

    评论
    0 评论
avatar

取消