tar 解压
解压
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、.tar 用 tar –xvf 解压
2、.gz 用 gzip -d或者gunzip 解压
3、.tar.gz和.tgz 用 tar –xzf 解压
4、.bz2 用 bzip2 -d或者用bunzip2 解压
5、.tar.bz2用tar –xjf 解压
6、.Z 用 uncompress 解压
7、.tar.Z 用tar –xZf 解压
8、.rar 用 unrar e解压
9、.zip 用 unzip 解压
打包,压缩
一、 命令语法
tar [选项…] [FILE]…
二、 选项详解
使用 tar --help命令能够阅读tar命令的详细用法解析。
示例
tar -cf archive.tar foo bar # 从文件 foo 和 bar 创建归档文件archive.tar。
tar -tvf archive.tar # 详细列举归档文件 archive.tar中的所有文件。
tar -xf archive.tar # 展开归档文件 archive.tar中的所有文件。
选项
1、 主要选项:
-A, --catenate, --concatenate 追加 tar 文件至归档
-c, --create 创建一个新归档
-d, --diff, --compare 找出归档和文件系统的差异
–delete 从归档(非磁带!)中删除
-r, --append 追加文件至归档结尾
-t, --list 列出归档内容
–test-label 测试归档卷标并退出
-u, --update 仅追加比归档中副本更新的文件
-x, --extract, --get 从归档中解出文件
2、压缩选项
-a, --auto-compress 使用归档后缀名来决定压缩程序
-I, --use-compress-program=PROG ,通过 PROG 过滤(必须是能接受 -d 选项的程序)
-j, --bzip2 通过 bzip2 压缩归档
-J, --xz 通过 xz 压缩归档
-z, --gzip, --gunzip, --ungzip 通过 gzip 压缩归档
-Z, --compress, --uncompress 通过 compress 压缩归档
3、辅助选项
-v, --verbose 详细地列出处理的文件
-f, --file=ARCHIVE 使用归档文件或 ARCHIVE 设备,该选项后必须接打包的.tar*
系统备份与还原
tar包方法
CSDN博客
主要命令:
打包 / 目录
tar -cvpzf /media/Disk/myDisk/ubuntu_backup@`date +%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/tmp --exclude=/boot --exclude=/home --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/run /
进入 liveCD 系统(我用的ubuntu安装盘,然后进入try ubuntu)
mount /dev/sdX /mnt
解压 tar 包
tar -xvpzf /media/Disk/myDisk/ubuntu_boot_backup@2016-6-6.tar.gz -C /
创建 打包时排除的文件夹
cd /mnt
mkdir proc tmp boot home mnt sys media
然后修改 /etc/fstab /boot/grub/grub.cfg 中的uuid
在liveCD中修改
sudo blkid 查询各个分区的uuid,找到/分区的uuid和swap分区的uuid
squashfs 方法
CSDN博客
主要步骤与上面类似,只不过备份和还原用的是squashfs
mksquashfs /mnt /data/ubuntu_main.sfs(文件名任意)
mount -o loop /media/ubuntu/移动硬盘盘符/ubuntu_main.sfs /rescovery/mnt
cp -a /recovery/mnt/* /mnt
其他工具
我是从实体机备份,然后还原到虚拟机。
因为是efi启动,所以有个efi分区,所以打tar时打了两个,一个主分区的包,一个efi分区的包
先用gparted iso光盘启动,分配虚拟机硬盘
分区 | 格式 | 大小 |
---|---|---|
efi | fat32 | 512M (最终只用了20M) |
linux | ext4 | 38G |
swap | linux-swap | 1G |
然后ubuntu16 iso 光盘启动,进入liveCD
然后加载tar包的 iso光盘镜像,里面有主分区和efi的备份
然后tar 解压还原
主分区mount 方式ro, 导致read-only file system
这是因为硬盘有错误,而且/etc/fstab中设置了 errors-remount=ro 即硬盘出错后,以ro方式重新挂载。
这时候直接remount没有用,因为错误没修复
mount -o / rw,remount 这条命令不起效
用fsck命令,这时又提示了错误
/dev/sda2 has unsupported feature(s): metadata_csum
e2fsck need newer version of e2fsck
这意思是e2fsck版本低,需要升级
我进入liveCD,然后下载安装e2fs相关deb安装包,升级到了1.44.1-1版本,有的说升到1.43.X就可以了
参考博客
e2fs下载链接
e2fs下载链接2(没试过)
pkgs下载e2fs
这时候可以执行fsck了 fsck -y /dev/sda2
加 -y很必要,因为修复过程成要很多yes/no,一律yes
这时候可以成功启动了。
read-only system错误
最近虚拟机经常遇到,无法修改文档,无法执行很多操作,因为系统盘以RO方式挂载了。
fdisk -l
查看盘符,找到系统盘
df -lh
查看挂载点
但是用mount -l
才能查看到挂载状态 rw / ro
修复:下面选一个
fsck.ext4 -y /dev/sda2
e2fsck -y /dev/sda2
fsck -y /dev/sda2
查看各种系统信息的方法
lsb_release -a
用于查看所有Linux发行版的信息
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
uname -a
Linux hx-Precision-3520 4.15.0-142-generic #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
cat
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS"
cat cat /proc/version
Linux version 4.15.0-142-generic (buildd@lgw01-amd64-039) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)) #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021
cat /etc/issue
Ubuntu 16.04.5 LTS
top 命令
列表的含义
项目 | 含义 |
---|---|
PID | 进程id |
USER | 进程所有者 |
PR | 优先级 |
NI | nice值,负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量 |
RES | 进程使用的,未被换出的物理内存大小 |
SHR | 共享内存大小 |
S | 进程状态 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存的百分比 |
TIME+ | 进程使用CPU总时间 |
COMMAND | 命令名,命令行 |
tftp
使用方法,命令,见:
参考网页
ps
Usage:
ps [options]
Basic options:
-A, -e all processes
-a all with tty, except session leaders
a all with tty, including other users
-d all except session leaders
-N, --deselect negate selection
r only running processes
T all processes on this terminal
x processes without controlling ttys
Selection by list:
-C <command> command name
-G, --Group <GID> real group id or name
-g, --group <group> session or effective group name
-p, p, --pid <PID> process id
--ppid <PID> parent process id
-q, q, --quick-pid <PID>
process id (quick mode)
-s, --sid <session> session id
-t, t, --tty <tty> terminal
-u, U, --user <UID> effective user id or name
-U, --User <UID> real user id or name
The selection options take as their argument either:
a comma-separated list e.g. '-u root,nobody' or
a blank-separated list e.g. '-p 123 4567'
Output formats:
-F extra full
-f full-format, including command lines
f, --forest ascii art process tree
-H show process hierarchy
-j jobs format
j BSD job control format
-l long format
l BSD long format
-M, Z add security data (for SELinux)
-O <format> preloaded with default columns
O <format> as -O, with BSD personality
-o, o, --format <format>
user-defined format
s signal format
u user-oriented format
v virtual memory format
X register format
-y do not show flags, show rss vs. addr (used with -l)
--context display security context (for SELinux)
--headers repeat header lines, one per page
--no-headers do not print header at all
--cols, --columns, --width <num>
set screen width
--rows, --lines <num>
set screen height
Show threads:
H as if they were processes
-L possibly with LWP and NLWP columns
-m, m after processes
-T possibly with SPID column
Miscellaneous options:
-c show scheduling class with -l option
c show true command name
e show the environment after command
k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]
L show format specifiers
n display numeric uid and wchan
S, --cumulative include some dead child process data
-y do not show flags, show rss (only with -l)
-V, V, --version display version information and exit
-w, w unlimited output width
--help <simple|list|output|threads|misc|all>
display help and exit
For more details see ps(1).
scp和ssh的关系
ssh介绍
SSH为Secure Shell的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝。
利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
使用SSH服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务器,B机器需要安装SSH客户端。
安装ssh
A.安装ssh服务器
sudo apt-get install openssh-server
B.远程登陆
ssh 用户名@IP
如:ssh lee@192.168.0.100
scp:远程拷贝文件
注意:使用该命令的前提条件要求目标主机已经成功安装openssh-server
sudo apt-get install openssh-server
使用格式:
单个文件:scp 用户名@目标主机Ip:/拷贝文件的绝对路径 保存到本机的路径
拷贝文件夹:scp -r 用户名@目标主机Ip:/拷贝文件的绝对路径 保存到本机的路径
如:scp lee@192.168.0.106:/home/lee/ftp/share/123.py f:/123.py
ls -al 各个字段含义
drwxr-xr-x 14root root 4096 11-20 18:05分段解释
d: 这个应该是目录吧然后14就是文件数.
rwxr-xr-x 这里是三段分开解释.r表示可读W表示可写x表示运行
rwx 表示文件所有者的权限
r-x 表示文件所有者所在组的权限
r-x 表示其他人的权限
第一个 root用户
第二个 root用户组
4096 是文件大小
11-20 14:30 是创建时间
app 文件名
gnu utils
GNU Binutils是一系列二进制工具的集合。主要包括:
ld —— GNU链接器
as—— GNU汇编器
但也包括以下二进制工具:
addr2line:从目标文件的虚拟地址获取文件的行号或符号。
ar:可以对静态库做创建、修改和提取的操作。
c++filt:反编译(反混淆,demangle)C++符号的工具。
dlltool:创建创建Windows动态库。
gold:另一种新的、更快的仅支持ELF的链接器。
gprof:性能分析(profiling)工具程序。
nlmconv:可以转换成NetWare Loadable Module(NLM)目标文件格式。
nm:显示目标文件内的符号信息。
objcopy:复制和转译目标文件。
objdump:显示目标文件的相关信息,亦可反汇编。
ranlib:产生静态库的索引。(和nm -s功能类似)
readelf: 显示ELF文件的内容。
size:列出目标文件或库文件的section大小。
strings:列出文件中可打印的字符串信息。
strip:从目标文件中移除符号信息。
windmc:Windows消息资源编译器。
windres:Windows资源文件编译器。