Linux 日常使用

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
解压 tartar -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光盘启动,分配虚拟机硬盘

分区格式大小
efifat32512M (最终只用了20M)
linuxext438G
swaplinux-swap1G

然后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 命令

top命令
列表的含义

项目含义
PID进程id
USER进程所有者
PR优先级
NInice值,负值表示高优先级,正值表示低优先级
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资源文件编译器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值