软件包管理及shell命令

目录

一、软件包管理

1. 软件包管理

(1)流行的两种软件包管理机制
  • Debian Linux首先提出“软件包”的管理机制——Deb软件包
    • 将应用程序的二进制文件、配置文档、man/info帮助页面等文件合并打包在一个文件中,用户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作。
  • Redhat Linux基 于这个理念推出了自己的软件包管理机制——Rpm软件包。
  • 随着Linux操作系统规模的不断扩大,系统中软件包间复杂的依赖关系,导致Linux用户麻烦不断。
  • Debian Linux开发出了APT软件包管理器。
    • 检查和修复软件包依赖关系
    • 利用Internet网络帮助用户主动获取软件包
  • APT工具再次促进了Deb软件包更为广泛地使用,成为Debian Linux的一个无法替代的亮点。
(2)软件包的类型
  • Ubuntu有两种类型的软件包:二进制软件包(deb)和源码包(deb-src)
    • 二进制软件包(Binary Packages):它包含可执行文件、库文件、配置文件、man/info页面、版权声明和其它文档。
    • 源码包(Source Packages):包含软件源代码、版本修改说明、构建指令以及编译工具等。先由tar工具归档为.tar.gz文件,然后再打包成.dsc文件。
  • 在用户不确定一个软件包类型时,可以使用file命令查看文件类型
linux@ubuntu:~$ file  g++_4.1.2-9ubuntu2_i386.deb
g++_4.1.2-9ubuntu2_i386: Debian binary package (format 2.0)
(3)软件包的命名

在这里插入图片描述

2. 在线软件包管理

(1) APT工作原理
  • Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。因此,对于用户,这些镜像服务器就是他们的软件源(reposity)。
    在这里插入图片描述
  • 在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list 列出最合适访问的镜像站点地址。
  • 软件源配置文件只是告知Ubuntu系统可以访问的镜像站点地址。但那些镜像站点都拥有什么软件资源并不清楚。若是每安装一个软件包,就在服务器上寻找一边,效率是很低的。因而,就有必要为这些软件资源列个清单(建立索引文件),以便本地主机查询。这就是APT软件包管理器的工作原理。
(3)更新软件源
第一种方式:修改/etc/apt/sources.list 
第二种方式:图形界面更换软件源 
更换以后需要更新一下软件源:sudo apt-get update

在这里插入图片描述

(4)APT相关命令

在这里插入图片描述

3. 离线线软件包管理

在这里插入图片描述

二、Linux shell命令(权限、输入输出)

1. Shell介绍

(1)Shell概述
  • Shell是一个命令行解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以用Shell来启动、挂起、停止、编程等操作。
  • Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
  • Shell还是一个功能强大的编程语言、编写方面、调试方便、灵活性强。
  • Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
(2)Shell分类

在这里插入图片描述

(3)查看当前系统的Shell

查看当前系统有哪些

shell cat /etc/shells 

查看当前是什么

shell echo $SHELL

立即关机

linux@ubuntu:~$ sudo  shutdown  -h  now

立即重新启动

linux@ubuntu :~$ sudo  shutdown  -r  now 
linux@ubuntu :~$ sudo  reboot   now

定时关机

linux@ubuntu:~$ sudo  shutdown  -h  +45   “That is all, game over.”

定时重启

linux@ubuntu:~$ sudo  shutdown  -r  +60

2. 权限相关命令

(1)切换用户

Linux下分为

  1. 超级用户(根目录、安装软件等)
  2. 普通用户

su - 或 su -l root 切换到超级用户下(root)并且环境变量也切换到root下
su -l (root) 可以访问任意用户不止root用户一个

linux@linux:~$ su -
linux@linux:~$ su -l root

su 或 su root 只linux@linux:~$ su是切换到超级用户下(root)

linux@linux:~$ su
linux@linux:~$ su root
(2)设置用户密码
passwd		     修改自己的密码 
passwd username  修改指定用户的密码
(3)修改文件权限

字母法:chmod (u g o a) (+ – =) (r w x) (文件名)
u:(user )当前用户下权限
g:(group )同组用户下权限
o:(other)其他用户下权限
a:(all)所有用户加权限
r:可读权限
w:可写权限
x:可执行权限
在这里插入图片描述

数字法:chmod + 数字组合 + 文件名
在这里插入图片描述
按八进制来计算数字

3. 基本命令

(1)date

date - print or set the system date and time

date +%T date +%Y/%m/%d 
date +%H:%M date +"当前时间为:%Y/%m/%d %H:%M:%S" 
date +"三个月之后:%Y/%m/%d %H:%M:%S" -d "+3 month" 
date +"三天前:%Y/%m/%d  %H:%M:%S" -d "-3 day" 
date -s "20300111 19:43:44"
(2)clear

清屏命令
相等于 Ctrl + l

(3)df

df - report file system disk space usage

常用参数:

-a :列出所有文件系统 
-k :列出磁盘的分配情况(KB) 
-h :同-k, 但大小以G、M,K单位显示 
-l :仅列出本地文件系统
(4)du

du - estimate file space usage

常用参数:

-a :仅列出空闲的文件数 
-h :列出磁盘的使用情况(KB) 
-s :列出总的空闲空间(KB)

4. 输入输出相关操作

(1)输出命令

echo - display a line of text

Echo the STRING(s) to standard output.

-n     do not output the trailing newline 
-e     enable interpretation of backslash escapes 
-E     disable interpretation of backslash escapes (default)
(2)输入输出重定向
  1. 输出重定向
    在这里插入图片描述
  2. 输入重定向
    在这里插入图片描述
(3)通配符、管道
  1. 通配符
    在这里插入图片描述
  2. 管道

   管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。

(4)历史查询
history
(5)命令置换

在这里插入图片描述

三、Linux shell命令(文件搜索、文件处理、压缩解压)

1. 查看文件相关命令

(1)cat
cat file 输出file文件中所有内容
cat
cat - 在屏幕上输入什么就输出什么
(2)tac
tac file 输出file从后往前输出内容
(3)more
more file 内容一页显示不下,按enter可以往下翻页,不能往上翻页
(4)less
less file 内容一页显示不下,按上下键可以进行上下翻页
(5)head
head file 默认显示前十行
head -n file 显示前n行
(6)软链接和硬链接
ln  [ -s ]   target  link_name

   选项“-s”表示为创建软链接。在缺省情况下,创建硬链接。参数target为目标文件,link_name为链接文件名。如果链接文件名已经存在但不是目录,将不做链接

软链接和硬链接的区别
   软链接源文件名字更改之后该链接失效,需要把源文件的名字改回来,该链接才会重新有效
   硬链接源文件名字更改之后该链接依然有效

2. 文件搜索相关命令

(1)查找文件命令
①. find
	-name 按文件名查找
	-type 按文件类型查找
	-a 逻辑与
	-0 逻辑或
	! 逻辑非
	-exec rm {} \;

find . -name “file” 当前目录下查找file文件
find /home -name “file” home目录下查找file文件

find . -type f 当前目录下普通文件
find . -type l 当前目录下链接文件

逻辑与 -a 可省略

find . -name “file” -type l
find . -name “file” -a -type l 查找当前目录下file文件 与 是链接文件

逻辑或 -o 不可省略

find . -name “file” -o -type l 查找当前目录下file文件 或 是链接文件

逻辑非

find . !-name “file” 查找当前目录下 非 file文件

查找之后删除命令

find . !-name “file” -exec rm {} ; 查找当前目录下 非 file文件 并且执行rm命令删除文件

(2)查找文件内容命令
①. grep

grep, egrep, fgrep, rgrep - print lines that match patterns
语法:grep [选项] 要查找的内容 查找的位置 常用选项:

-A    除了显示符合范本样式的那一列之外,并显示该行之后的内容。 
-B    除了显示符合样式的那一行之外,并显示该行之前的内容。 
-C    除了显示符合样式的那一行之外,并显示该行之前后的内容。 
-i    忽略字符大小写的差别。 
-r    查找位置是目录时用 
-n    在显示符合样式的那一行之前,标示出该行的列数编号。

grep -A 2 “hello” file 查找file文件中“hello”字符并显示该字符的后两行
grep -B 2 “hello” file 查找file文件中“hello”字符并显示该字符的前两行
grep -C 2 “hello” file 查找file文件中“hello”字符并显示该字符的前后两行
grep -i -C 2 “hello” file 查找file文件中“hello”字符忽略该字符的大小写 并显示该字符的前后两行
grep -in -C 2 “hello” file 查找file文件中“hello”字符忽略该字符的大小写 并显示该字符在第几行 并显示该字符的前后两行
grep -irn -C 2 “hello” . 查找当前目录下的所有file文件中“hello”字符忽略该字符的大小写 并显示该字符的前后两行
grep -irn -C 2 “hello” /bin 查找 bin 目录下的所有file文件中“hello”字符忽略该字符的大小写 并显示该字符的前后两行

(3)其他相关命令
①. which

which ls 显示ls命令所在的路径

②. whereis

whereis ls 显示ls命令所在的路径并且显示该命令的man手册所在的路径

3. 文件处理相关命令

(1)cut
-b: 以字节为单位取出固定字符区间 
-c :以字符 的单位取出固定字符区间; 
-d :后面接分隔字符。与 -f 一起使用; 
-f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;

grep “linux” /etc/passwd | cut -b 1,2 显示passwd文件中“linux” 第1个、2个字符
grep “linux” /etc/passwd | cut -b 2-4 显示passwd文件中“linux” 第2-4个字符
grep “linux” /etc/passwd | cut -b 2- 显示passwd文件中“linux” 第2-个字符到结尾全部显示出来
grep “linux” /etc/passwd | cut -d “:” -f 1,2 显示passwd文件中“linux” 按“:”分隔符来分段显示第1段和第2段(按着文件中的分段来选取分隔符)

(2)sed
-r:使用扩展正则表达式
-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
-i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行

编辑命令

a:  追加 
i:   插入 
d:  删除 
s:  替换 
p:  打印

sed -n ‘1p’ passwd 打印passwd文件中第1行
sed -n ‘1,4p’ passwd 打印passwd文件中1-4行
sed -n ‘$p’ passwd 打印passwd文件中最后一行

sed -i ‘1d’ passwd 删除passwd文件中第一行

sed -i ‘1ahi’ passwd 在passwd文件的第一行追加一行 “hi”
sed -i ‘1ihi’ passwd 在passwd文件的第一行插入一行 “hi”

sed -i ‘s/linux/Linux/’ passwd 把passwd文件中的小写linux替换成大写Linux只替换首个小写的linux
sed -i ‘s/linux/Linux/g’ passwd 把passwd文件中的小写linux全部替换成大写Linux
sed -i ‘20,40s/linux/Linux/g’ passwd 把passwd文件中20-40行的小写linux全部替换成大写Linux

(3)awk

awk ‘{[pattern] action}’ {filenames} # 行匹配语句 awk ‘’ 只能用单引号

$n	当前记录的第n个字段,字段间由FS分隔
$0	完整的输入记录
NF	一条记录的字段的数目
NR	已经读出的记录数,就是行号,从1开始
awk '{print $0}' file 将file中所有打印(print)出来
awk '{print $1,$2}' file 将file中第一列,第二列打印(print)出来
awk '{print NR,$1}' file 将file中第一列打印(print)出来并显示行号(NR)
awk '{print NF,$1}' file 将file中第一列打印(print)出来并显示列号(NF)
awk '{print $NF}' file 将file中最后一列打印(print)出来
awk -F ':' '{print $1}' file 将file文件中按分隔符‘:’打印第一列
awk -F ':' '$1=="linux" {print $0}' file 将file文件中判断$1行是否等于linux,如果等于将这一行全部打印出来,并按分隔符‘:’打印
awk -F ':' '$1="linux" {print $0}' file 将file文件中$1行全部赋值成linux,并按分隔符‘:’打印

4. 解压缩相关命令

(1)giz与gunzip

   将一个文件压缩成.gz格式的压缩文件,移植性好
   这个命令没有归档功能,每次只能压缩一个文件。生成相应名字的压缩包

在这里插入图片描述

(2)bzip2与bunzip2

   bzip2命令是.bz2文件的压缩程序
   bzip2在性能上优于gzip,提供了最大限度的压缩比率。
在这里插入图片描述

(3)zip与unzip

   压缩后的文件后缀名为 .zip,可以压缩目录,原文件保留。
   方便在Linux和微软Windows间交换文件

在这里插入图片描述

(4)tar

   tar命令主要用于将若干文件或目录合并为一个文件,以便备份和压缩。当然,之后出现tar程序的改进版本,可以实现在合并归档的同时进行压缩。
   tar命令符号模式的一般语法格式为

tar  [ -t | -x | -r | -c | -v | -f | -j | -z ]  tarfile  filelist 

	-t		显示归档文件的内容 
	-x		释放归档文件 
	-c		创建一个新的归档文件 
	-r		追加的方式归档文件 
	-v		显示归档和释放的过程信息 
	-f		用户指定归档文件的文件名,否则使用默认名称 
	-j		由tar生成归档,然后由bzip2压缩 
	-z		由tar生成归档,然后由gzip压缩

在这里插入图片描述

四、Linux shell命令(进程、用户管理)

1. 进程管理相关命令

(1)进程的概念
  1. 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
  2. 进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。
(2)查看进程的命令
①. ps

在这里插入图片描述

ps -aux	显示当前所运行的进程
ps -elf	比aux命令多显示一个当前进程的一个父进程(PPID)
②. top

   监视进程
   通常会全屏显示,而且会随着进程状态的变化不断更新整个系统的信息也会显示,为查找问题提供了便利可以显示系统总共有多少CPU和内存资源以及负载平衡等信息。

在这里插入图片描述

③. pstree

   将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以init这个基本进程为根,如果有指定使用者id, 则树状图会只显示该使用者所拥有的进程。
在这里插入图片描述

(3)发送信号命令
①. kill

使用kill命令终止进程
kill [-signal] PID
   signal是信号
   PID是进程号

   kill 命令向指定的进程发出一个信号signal,在默认 情况下,kill 命令向指定进程发出信号15,正常情 下,将杀死那些不捕捉或不忽略这个信号的进程

kill -l 查看当前有哪些进程号

在这里插入图片描述

kill -9 (程序的PID号) PID号可用top命令查找

在这里插入图片描述

2. 用户管理相关命令

(1)用户管理相关文件介绍
①. 用户的属性
	用户名
	口令
	用户ID(UID)
	用户主目录(HOME)
	用户shell
②. etc/passwd文件

/etc/passwd文件是系统能够识别的用户清单。用户登陆时,系统查询这个文件,确定用户的UID并验证用户口令

	登陆名
	经过加密的口令
	UID
	默认的GID
	个人信息
	主目录
	登陆shell

在这里插入图片描述

③. etc/group文件

包含了UNIX组的名称和每个组中成员列表每一行代表一个组,包括4个字段:

	组名
	加密的口令
	GID号
	成员列表,彼此用逗号隔开

在这里插入图片描述

(2)用户管理相关命令介绍
①. 添加用户 adduser

adduser
   语法:adduser
   实例:
         adduser newuser

   添加用户名为newuser的新用户

②. 初始化口令 passwd

使用passwd命令可以修改用户口令
root用户可以修改任何用户的口令
   语法:passwd [-k] [-l] [u] [-f] [-d] [-S] username

   使用方法:
      passwd username

③. 设置用户属性 usermod

usermod
   语法:usermod [-u uid [-o]] [-g group] [-G gropup,…] [-d home [-m]]
            [-s shell] [-c comment] [-l new_name] [-f inactive]
            [-e expire] [-p passwd] [-L|-U] name

举例用户oldname改名为newname,注意要同时更改家目录:

   usermod –d /home/newname –m –l newname oldname

④. 删除用户 deluser

deluser
   语法: deluser

   使用方法:

      deluser --remove-home user1

   删除用户user1的同时删除用户的工作目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值