常用apt命令.
apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
apt 命令执行需要超级管理员权限(root)
apt 语法
apt [options] [command] [package ...]
options
:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。command
:要进行的操作。package
:安装的包名。
常用命令
c
安装指定的软件包:sudo apt install <package_name>
安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
c
ps -e | grep apt
ssh 用户名@IP地址
rpm -q zip //查询有无安装某个包
安装虚拟机、Xshell(连接终端)、Xftp(本地与服务器传输文件)
查看ubuntu服务器的ip地址
安装 sudo apt install net-tools
查看ip ifconfig
sudo apt-get update
sudo apt-get install openssh-server
XShell 7连接VMware 16虚拟机上的Ubuntu 20.04
1、用户登录和查看系统手册
c
//连接
ssh 用户名@ip地址
//登录后显示
用户名@rose-virtual-machine 用户名@主机名
//超级用户下创建用户
useradd ylp # 用户名
pwasswd ylp # 密码
123123qwe
//查询命令 man
man man
下表显示了手册的 章节 号及其包含的手册页类型。
1 可执行程序或 shell 命令 //常用命令
2 系统调用(内核提供的函数) //系统开发人员使用
3 库调用(程序库中的函数) //比如C语言的函数库
4 特殊文件(通常位于 /dev)
5 File formats and conventions, e.g. /etc/passwd //系统配置文件
6 游戏
7 杂项(包括宏包和规范,如 man(7),groff(7))
8 系统管理命令(通常只针对 root 用户)
9 内核例程 [非标准
//如果知道某个命令 比如ls
man ls
ls --help
2、关机和重启
关机前要查看在线用户和通知
c
shutdown -h 10/12:00/00:00 //分别为10分钟后,中午12点,凌晨关机
shutdown -h now //立即关机
shutdown -c //取消
shutdown -r //重启
shutdown -h 10 系统将会在10分钟后关机 //可以跟一个提示字符串,会发送给所有用户
reboot = shutdown -r now
halt = shutdown -h now
powerofff //除了关机如果可以还会断电源
3、Linux目录结构
bin
:放一些常用命令
boot
:系统启动需要加载的核心文件
dev
:设备目录,Linux里一切皆文件,所以一些外部设备也是当作文件放在这里
etc
:系统内的配置文件,包括第三方的配置文件
home
:普通用户的家目录,每创建一个新用户,就会在home目录下创建一个家目录
lib
:存放系统调用的库文件
lib64
:和lib类似
media
:系统会识别一些设备,然后挂载在这个目录里,比如U盘、光驱
opt
:给主机额外安装软件使用的,一般空
proc
:内核系统,存放运行的特殊文件
root
:超级用户的家目录
run
:系统运行的一些临时文件,系统重启后就会清理
sbin
:放的超级用户的命令
srv
:系统重启后需要读取的数据
sys
:存放Linux2.6以后的文件系统
tmp
:放一些临时文件,重要文件不要放这,可能被清理掉
usr
:用户的很多软件和文件都放在这,类似windows的C盘里的Program Files
var
:存放经常变化的文件,比如系统的日志
经常使用到的目录 etc
、home
、root
、usr
、var
4、Linux命令的执行流程
在操作系统中,通常有shell和kernel两个概念,也就是外核和内核。
kernel是核心,管理操作系统的硬件资源,包括内存、cpu、硬盘,运行在核心态,就是说运行在这个状态,CPU想干什么就干什么。
shell其实就是一个运行程序,比如在登录Xshell时,就是启动了一个bash
执行一个命令,就是把命令的第一个单词当作一个程序查找
比如man ls 其他参数
5、文件名和文件名通配符
文件名:
- 除斜线外所有的字符都是命名的合法字符
- 斜线/作为路径分割符
- 区分大小写,尽量不要依靠大小写区分
通配符:
- 星号
*
:*file匹配file, makefile,不匹配 .profile
点字符(.)和斜线(/)都需要显式匹配 - 问号
?
:匹配任意单一字符 - 方括号
[ ]
: 匹配括号内任一字符,也可以用减号指定一个范围
[A-Z]* *.[ch]匹配所有.c.h文件 - 波浪线
~
~ 当前用户的主目录(home)
~ylp 用户ylp 的主目录 - 点文件
.
当前文件 和..
点点文件上级目录
6、目录与路径的一些概念
cd /home/ylp/dir1 绝对路径 /根目录
cd ./ 其实就是当前路径
7、ls列出文件目录
例:drwxr-xr-x 2 rose rose 4096 8月 1 13:56 桌面
第一个字符为文件类型
c
- 普通文件 b 块设备文件(Block)
d 目录文件 c 字符设备文件(Char)
p 命名管道文件(Pipe)v
l 符号连接文件(Link)类似Windows里的文件快捷方式
c
ls 文件名 //列出文件
ls 目录 //列出目录下所有文件
ls -l //长列表显示详细信息
ls -lh //以人能看懂的形式显示,字节大小变成k、M
ls -a //显示所有文件,包括隐藏文件
8、目录和文件的新建、删除、拷贝、移动
c
//1、创建目录
mkdir dir1
mkdir -p dir1/dir2 //多级创建,先创建dir1再dir2
//2、删除目录
rmdir dir2/dir1 //删除空目录
rm -rf dir2 // r删除有内容的 一般还要+f,如果是只读的文件,+r删除会提示要不要删除,+f就不会了
//3、创建文件
touch file1
//4、拷贝文件
cp 源文件 目标文件/目标目录
//5、移动
mv 文件/目录 目标目录
mv 文件 重命名
9、查看文件内容:cat、tac、nl、more、less、head、tail
c
cat -n 文件 // -n显示行号,文件内容太多会一下显示所有
tac //从后显示前面 ,倒叙
nl //可以空格向下翻页 q推出
less // 自由翻页 j一行向下 k向上 空格一页一页翻
head -n 3 文件名//固定看头部几行内容
tail //尾部几行
10、vim文本文件的编辑
vim hello.c 默认命令状态,jk上下,hl左右
i 插入状态
Esc 退出编辑状态
:wq 保存退出
:q!不保存退出
:0 回到第一行
命令状态 /create 全文搜索 n键 到下一个create
vim写代码并不方便,适合修改配置文件
11、链接文件
c
ln -s hello.c h1 //-s 软链接、符号链接 创建了链接文件h1
vim h1 =vim hello.c
ln hello.c h1 //硬链接 inote引用+1 连接数+1
此时删除hello.c h1还是能访问数据的
通常使用符号链接
12、文件的压缩和解压缩
c
Examples:
tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.压缩
tar -tvf archive.tar # List all files in archive.tar verbosely. v显示压缩或者解压缩的过程
tar -xf archive.tar # Extract all files from archive.tar. 解压缩
test.tar 只是打包,没有压缩
Linux下的三种主要压缩:
-j .bz2(压缩率高文件小,但速率慢)
-z .gz(快)
-J .xz(最新的,自动提供最佳的压缩率)
c
tar -zcvf test.tar.gz test //后缀gz是为让人知道用了哪种压缩
tar -zxvf test.tar.gz test1 //解压缩
//windows下的压缩包
apt install zip unzip
zip -r test.zip test
13、文件权限和所属用户与组的修改
Linxu是一个多用户系统,不同的用户访问不同的文件,有不同的权限
修改用户权限只能由root用户
文件类型 | 所有者权限 | 所属组权限 | 其他用户权限 |
---|---|---|---|
- | rwx | rwx | rwx |
读/写/执行 | 读/写/执行 | 读/写/执行 | |
1代表有权限 | 1/1/1 | 1/1/1 | 1/1/1 |
4/2/1 | 4/2/1 | 4/2/1 |
c
//user group others all
chmod u/g/o/a + 加入/-去除/ =设定 r/w/x 文件或者目录
chmod u=rwx,g=rx,o=r 文件名
chomd o-x 文件 //其他用户没有执行权限
14、用户和用户组的管理
只有root用户可以创建用户和管理组
c
//查看组
groups(或groups xxx查看某用户所属组,xxx为用户)
groupsadd 组名 //添加组
cat /etc/passwd //查看用户信息
vim /etc/group //查看组
//添加用户
useradd -g group1 zhangsan
passwd username //修改密码
//修改用户组、组名
usermod -g groupname username
groupmod -n newGroupName originalName
//删除用户、组
userdel zhangsan //
groupdel groupName
15、grep在文本文件里查找符合条件的字符串
c
grep -i hello hello.c //i忽略大小写 在hello.c中搜索hello,返回那一行
ls -l | grep ^d //ls-l的结果给grep,结果匹配正则表达式
16、输入输出重定向和管道机制
标准输入:stdin,0表示,默认来自键盘的输入
标准输出:stdout,1表示,默认输出到终端窗口
标准错误:stderr,2表示,默认输出到终端窗口
重定向就是把输入输出定义在一个文件,不显示在终端,而是输出到一个文件中
c
//输出重定向
>: stdout重定向到文件,文件内容会被覆盖
>>: stdout重定向到文件,文件内容不会被覆盖,而是在原有基础上添加
2>: stderr重定向到文件,文件内容会被覆盖
2>>: stderr重定向到文件,文件内容追加
&> or >& or 2>&1: stdout和stderr作为同一个数据流重定向到文件
&>>:stdout和stderr重定向追加
//输入
tr ' ' '\t' <test.txt //把test.txt里的空格换成了Tab
管道:使命令和命令之间可以协作
c
// |就是管道,把前面命令的输出当作后面的输入,前提后面的输入是要求文本输入
ls -l /etc | grep ^d