整理了Linux下最为基础的命令,可以当一篇Linux入门来看。
目录资源管理
ls
list
参数说明
-l
: 查看详细信息
-a
: 查看隐藏文件
-al
: 查看隐藏文件并且显示详细信息
输出说明
如果使用-l参数查看所有详细信息,则可以看到类似如下的输出:
drwxr-xr-x 3 root root 4096 May 4 13:37 installPacket
-rw-r–r– 1 root root 178589686 May 4 12:32 jdk-8u231-linux-x64.rpm
- 第一个字符代表类型,d为目录,-为普通文件,l表示软链接(符号链接)还有别的但是不多见。
- 第二个字段长度固定为9字符,分为三组表示拥有者权限、拥有组权限和其他人权限。
- 第三个字段表示硬链接(实体链接)数。对于文件,这个数目就等同于一共有多少个路径可以访问到这个文件区块,即硬链接的个数。对于目录,绝对路径算第一个链接,另外自身有一个./也链接到这个目录,所以至少为2,而且这个目录下面的子目录都有../链接到这个目录,所以每一个子目录可以使这个链接数+1(注意目录是不允许手动创建硬链接的,所以从这个链接数就可以算出子目录的数量)
- 第四个和第五个字段分别表示所属人和所属组
- 第六个字段表示大小(以字节数为单位)
- 第七个字段表示修改时间和日期
- 最后一个字段是文件名,如果是软链接还会显示原文件的位置,可能是相对路径也有可能是绝对路径,这个要看创建软链接的时候的输入。
cd
change directory
改变工作目录,后面可以接绝对路径或者相对路径
pwd
print working directory
打印当前目录(绝对目录)
mkdir
make directory
新建目录
rmdir
remove directory
移除(空的)目录
cp
copy
复制文件。会复制文件的所有内容并且产生一个新的文件inode,映射到磁盘一块新的区块进行存储。
参数说明
-a
:等于-pdr 请参考下列说明;(常用)
-p
:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r
:递归持续复制,用于目录的复制行为;(常用)
-f
:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次
-i
:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l
:进行硬式连结(hard link)的连结档创建,而非复制文件本身。可以用来制作硬链接,等于ln
-s
:复制成为符号连结档 (symbolic link)。等于ln -s,可以用来制作软链接(快捷方式)
-u
:若 destination 比 source 旧才覆盖destination 。
后面的参数先写原文件路径再写目的目录路径
rm
remove
参数说明
-f
: 就是强制删除,不会再次警告。如果没有找到文件或者目录也不会报错
-r
: 递归删除,用来删除目录
mv
move
可以用来移动文件或者改名
后面的参数先写原文件路径再写目的目录路径(或者重命名的新名字)
参数说明
-f
: 如果已经存在,直接覆盖
-u
: 如果目标文件已经存在,当目标版本低时覆盖
ln
link
创建文件硬链接。先写链接名,再写原文件名
-s
: 改为创建文件软链接。
locate
快速查找文件。原理:locate 只在 /var/lib/slocate 资料库中找,这个数据库默认每天更新,也可以通过updatedb
手动更新。
locate passwd
文件操作
touch
新建文件
cat
catenate
从第一行打印文件所有内容
tac命令可以从最后一行往前显示
echo file1 > file2
可以将file1内容写入file2中,如果文件不存在会创建。如果文件中本来有内容会被覆盖。
echo file1 >> file2
可以将file1内容追加到file2的另起一行中。
参数说明
-b
: 显示行号(空白行不标号)
-n
: 显示行号(空白行也标号)
nl
Number of Lines
打印文件并显示行号(空白行不标号)
类似cat -b
more
以man的那种翻页形式展示文件内容。
less
支持使用/或者?进行搜索,输入n寻找下一处,q离开。感觉比more更加好用。
echo
echo不是专门写入文件的命令,但是也可以做。
echo content > file
可以将内容写入文件中,如果文件不存在会创建。如果文件中本来有内容会被覆盖。
echo content >> file
可以将内容追加到文件的另起一行中。
vim
使用vim文本编辑器打开文件,如果文件不存在则新建。
常用操作
命令模式:
- x删除光标处字符
- v进入视图模式,光标移动选择文本。然后按y可以复制,或者d剪切
- yy直接复制该行,dd直接剪切该行
- p将剪贴板中的内容粘贴到光标处
- i进入编辑模式
- : 进入底线命令模式
底线命令模式:
- wq 保存退出
- q! 不保存强制退出
- set nu 显示行号(只是显示,并不是加入文件内容)
- set nonu取消行号
- ECS或者退格,返回命令模式
stat
查看文件的详细属性,如stat /etc/fstab
diff
diff 命令可以比较两个文件的不同。
diff <srcfile> <desfile>
输出形如:
0a1
> Kubuntu
2d2
< Arch Linux
4c4,5
< CentOS
---
> Arch Linux
> Centos
首先,对于每个不同的部分会有一个范围和类型说明:0a1, 2d2, 4c4,5。左边是源文件中涉及的行,右侧是目标文件中涉及的行,中间字母表示修改类型,a表示增加,d表示删除,c表示修改。
下面是具体的更改内容:< 表示源文件中对应行的内容,> 表示目标文件中对应行的内容,两者之间会用—隔开。如果是增加,则只显示目标文件中对应添加的内容,而如果是删除,则只显示对应源文件中删除的内容。
patch
补丁命令,可以将diff生成的输出文件,应用到源文件上。有时候用来更新软件源代码用。
patch -p0 <srcfile> <diff-file>
权限操作
chgrp
change group
改变文件或目录所属组。
-R
: 表示递归改变目录下的所有内容所属组
后面先写组名,再写文件名。
chown
change owner
改变文件所属者和所属组。
chown [–R] 属主名 文件名
chown [-R] 属主名: 属组名 文件名
chmod
Change mode
改变文件属性
通过三个数字来表示属性,每一个数字通过加法得到:
- r=4
- w=2
- x=1
用户和用户组管理
配置文件
/etc/passwd 用户信息配置文件
/etc/shadow 用户密码文件(已加密)
/etc/group 用户组文件
/etc/gshadow 记录组的密码的文件。
/etc/login.defs 默认用户配置
/etc/skel/ 创建用户时,会自动将这个下面的文件拷贝到用户的主目录中
用户
useradd
添加用户,后面跟用户名
-m
: 同时创建用户目录
-g
: 指定用户组名
-d
: 指定用户目录
userdel
删除用户
-r
: 同时删除用户目录所有内容
usermod
更改用户的配置,参数选项和useradd类似
passwd
后面不加任何东西可以改当前用户密码。
后面加用户名可以改用户密码
-l
: 锁定用户,使得用户无法登陆
-d
: 移除用户密码,同样可以达到使得用户无法登陆的目的
-u
: 解锁用户,适用于锁定的用户
-f
: 强迫用户下次登陆时改密码
su
Substitute User
不加东西默认切换到root用户
后面可以加上用户名表示切换到指定用户
whoami
查看自己的用户名
id
显示当前用户和用户组信息
umask
显示当前用户的umask。
umask描述了当前用户创建新文件时默认的权限,用777减去umask就得到了默认权限的代码。比如umask为022,则创建的文件默认权限为755。
用户组
groupadd
可以创建一个用户组
-g
: 可以指定用户组的ID
groupdel
删除用户组
groupmod
修改用户组配置
-n
: 更改名字,先写新名字,再选已有的用户组,表示将已有的一个组改为新名字
-g
: 更改组ID
newgrp
切换到后面指定的组,前提是用户属于多个组而且在指定的组中。
gpasswd
可以用来添加用户到组中(不会将用户从原来的组中删除):gpasswd -a it kgroup,将it用户加入kgroup组中。也可以移除:gpasswd -d it kgroup,将it用户从kgroup中移除。
可以用来设置组密码:gpasswd kgroup。移除密码:gpasswd -r kgroup
groups
可以查看一个用户属于那些组群。groups it 查看it用户的所属组群。
硬件管理
df
Disk free
可以显示当前计算机的磁盘情况(分区)
-a
: 列出所有文件系统
-h
: 以易于阅读的格式显示空间大小,而不是字节数
-i
: 不用磁盘容量而是inode的数量来显示
du
Disk Usage
可以显示当前目录(也可以在后面输入指定的目录)及其子目录的大小
-a
: 还显示文件大小
-h
: 以容易阅读的方式显示空间大小
du -sh
:显示当前目录占用
mount
挂载,使得根目录系统以外的文件能够被访问到。
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
mount -a 可以马上挂载/etc/fstab中刚修改的内容。
此外,mount还可以挂载nfs等远程主机的文件系统。
umount
卸载,将挂载的目录弹出
umount [-fn] 装置文件名或者挂载点
free
显示内存空间情况。-h
以便于阅读的方式显示(默认是字节数,带参数后自动换算成MB和GB等)
lspci
显示主板硬件。
lsusb
显示usb插入的硬件。
lshw
list hardware。生成硬件报告,包含所有硬件的详细信息。
fdisk
fdisk -l 查看磁盘信息。看不到逻辑卷信息。
mkfs
格式化一个分区,或者格式化一块没有分区的磁盘。可以用mkfs.etx4的形式来实际使用,将分区格式化为指定的分区格式。
lsblk
lsblk -f 可以查看所有分区的UUID和文件系统,展示比较清晰。
常见配置文件
/etc/fstab 开机自动挂载的配置文件。
对于exfat的文件系统挂载到ubuntu上时可能出现无法修改权限的问题,使用UUID=05EE-2B25 /mnt/zhitai exfat defaults,umask=000 0 0
的方式挂载即可。
/proc/swaps 查看交换分区和交换文件
逻辑卷管理
逻辑卷划分的关系是:先将若干物理卷揉碎成PE,然后若干PE组合成vg,之后从vg中分出若干个逻辑卷。
查看vg中剩余空间的命令可以用vgdisplay
拓展逻辑卷分为两步:先增加容量,再调整文件系统大小增加逻辑卷空间。
- lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv
- resize2fs /dev/ubuntu-vg/ubuntu-lv
系统和任务管理
ps
Processes Status 显示进程信息
-a
: 显示当前终端运行的所有进程
-u
: 显示进程用户信息
-x
: 显示进程的参数
通常用-au
就够了,后面可以加上|管道符,然后接上grep xxx,表示将显示结果交给grep过滤,找到含有xxx关键字的进程。以java为例可以写作 ps -au|grep java
前后台切换
Ctrl+z可以将当前的前台执行的任务挂起。
jobs
命令可以查看此shell内后台执行的任务。
fg
可以将jobs中的任务拉回前台。
命令后面加&可以让命令直接在后台执行。
pstree
以子进程父进程的关系呈现树状进程结构。
-p
: 显示id
-u
: 显示进程用户
可以使用pstree -pu
kill
可以杀掉进程
kill -9 id
: id是通过ps查到的进程ID,一串数字。这个指令可以结束进程。
nohup
no hung up
nohup command &
: 中间的command替换成正常的指令,表示即使终端退出依然在后台执行。比如可以配合脚本,让脚本一直跑在后台。
uname
-a
显示完整的操作系统信息。
hostname & hostnamectl
hostname 可以查看和设置计算机名。
hostnamectl可以更详细地查看计算机名。
crontab
crontab -e
可以以编辑器打开目前用户的计划任务配置文件(如果没有则新建),所有的修改、添加、删除都可以以编辑文件的方式进行配置。
文件中每一行表示一个计划任务,从左到右依次指定 分时日月周 和执行的用户,最后是命令。时间的表示可以用逗号列出多个,也可以用-来指定范围,*表示通配,而\表示每隔一段时间执行。
例如以下命令表示每隔6小时执行一次脚本:
* */6 * * * python3 /root/py/hpv.py
/var/spool/cron/目录下保存着用户的计划任务,以创建的用户名为文件名。
atd
可以用来完成一次性的定时任务。
systemctl
系统管理,通常用来管理服务。
- start 开启服务
- stop 停止服务
- restart 重启服务
- reload 重新加载服务的配置文件
- enable 设置开机启动
- is-enabled 查看是否为开机启动
- disable 取消开机启动
- status 查看服务的状态
- systemctl list-units –type=service 查看所有已启动的服务
前台和后台运行
- & 后台运行
- jobs 查看后台的进程
- fg %job-number 把后台进程拉到前台
- ctrl+z暂停进程
- bg %job-number将前台暂停的进程放入后台并开始
后台服务
以mysql为例
启动服务
service mysqld start
停止服务
service mysqld stop
重启服务
service mysqld restart
查看端口占用
netstat -ntpl
可以看到端口占用的情况,以及监听的进程。
软件安装和卸载
首先,简单介绍Linux的软件安装大方向,按照从高层到地层的顺序:
- 使用在线软件包管理器安装。
- 使用软件包管理器如rpm,一般是通过rpm运行.rpm安装包进行离线安装和卸载。类似于“添加和卸载程序”。
- 使用开发者提供的二进制文件直接运行。开发者通常会编译好代码形成可执行程序,然后以压缩包的形式提供在网络上。解压后就可以直接运行(严格来说不算安装?)。如有需要,可自己解决环境变量等问题。
- 使用开发者提供的源代码,自己编译安装。开发者以压缩包的形式把源代码放到网上,下载下来之后需要自己本地编译安装,需要自己解决依赖。
在线软件包管理器
根据Linux发行版的不同,主流的包管理器包括yum(Fedora, RedHat, CentOS,RedHat系默认)和apt(Debian系默认)。这些在线软件包管理器的特点是,必须连接互联网才能使用,而且包管理器可以自动解决软件包之间的依赖关系。
类似应用商店的存在。但是有一点不同的是,有时候需要添加仓库才能找到想要安装的软件。
下面介绍两个用的最多的工具。
apt-get
Debian系默认安装。
使用apt-get安装软件步骤如下:
有可能需要添加软件包仓库。软件包仓库是一些公共站点,提供软件包下载服务,可能有许多镜像站,可以查找挑选距离自己较近的镜像。编辑
/etc/apt/sources.list
文件,添加一行deb [web或ftp地址] [发行版名字] [main/contrib/non-free]
。然后终端键入apt-get update
在更新apt-get,加载新的仓库。使用
apt-get install <package_name>
进行安装,如果没有找到,可以试试添加别的仓库试试。
更新软件可以使用apt-get upgrade
更新所有软件,apt-get dist-upgrade
更新系统。
卸载有两种方式:
apt-get remove packagename
保留配置文件的卸载。apt-get –purge remove packagename
删除配置文件的彻底卸载。
yum
在线安装,所以需要联网
yum install gcc
- install:安装rpm软件包;带上
-y
: 表示安装过程一路选yes,不再确认 - update:更新rpm软件包;
- check-update:检查是否有可用的更新rpm软件包;
- remove:删除指定的rpm软件包;
- list:显示软件包的信息;
- search:检查软件包的信息;
- info:显示指定的rpm软件包的描述信息和概要信息;
- clean:清理yum过期的缓存;
- shell:进入yum的shell提示符;
- resolvedep:显示rpm软件包的依赖关系;
- localinstall:安装本地的rpm软件包;
- localupdate:显示本地rpm软件包进行更新;
- deplist:显示rpm软件包的所有依赖关系。
仓库配置文件:/etc/yum.repos.d目录中
yum配置文件:/etc/yum.conf
软件包管理器
这里指rpm之类的离线软件包管理器。
rpm
rpm -ivh
后面加安装包文件即可
rpm -qa
可以查看已经安装的软件,也可以用rpm -qa|grep java
这种格式来过滤查找。
rpm -e
后面加软件名称(通过上面一条指令查询出来的软件全名)可以卸载软件,或者可以使用rpm -e --nodeps
来强制移除软件所有文件。
解压安装
tar解压
压缩包安装,通常是.tar.gz后缀的文件。这种安装方式最为普适,但是由于仅仅是把目录解压出来,所以可能需要自己解决依赖、设置环境变量等。
tar -zxvf
后面加压缩包即可
zip解压
unzip -d <dir> <zip_file>
指定解压目录和压缩文件路径来解压。也可以带上-o
来默认覆盖已存在的目录。
zip -r <zip_file> ./*
将当前目录下所有文件压缩,-r
表示递归添加所有子目录中的文件。
编译安装
如果压缩包里是源代码,还没办法直接运行,需要自行编译安装。
进入解压后的目录后,make
指令来编译,编译后make install
来安装。
如果有报错,可能是依赖缺少,需要花点时间先安装所有依赖的其他软件包。
配置环境变量
如果是rpm或者yum安装的话,通常不用配置环境变量,而使用tar压缩包安装则一般要配置环境变量才能在任何目录中使用应用。
环境变量配置文件所在的位置是:/etc/profile
直接在文件里编辑即可。
格式大概是:用:做分隔,用$取变量,要记得export出去才能使用。例如配置jdk环境变量:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
命令可以使得修改立即生效,之后可以echo $PATH
来查看现在的环境变量内容
网络
常用配置文件
/etc/sysconfig/network-scripts/* 保存着网卡的配置信息
/etc/resolv.conf 域名解析器的配置文件
/etc/hosts 和windows下的hosts文件相同,事先储存一些域名和ip的对应信息
/etc/services 定义了Linux系统中所有服务的名称、协议类型、服务端口等信息
traceroute
yum install traceroute
可以查询到指定地址中途的路由节点
ifconfig
查看网络配置信息
ping
-c
指定发送次数
netstat
查看网络状态,得知整个Linux系统的网络情况。可以查看网络连接、路由表、接口统计、伪装连接、组播成员
arp
查看arp表
tcpdump
抓包。例如tcpdump -i eno16777736 可以抓取指定网卡的数据包。
scp
远程复制(传输文件)。由于是基于ssh连接的,所以端口号要用-P 参数指定远程主机的ssh服务端口号(默认22)。
rsync
远程同步文件(每次只复制改变的部分)。适用于在计划任务中进行备份。
安全策略
last
查看成功的登陆记录
-n
: 后面接一个数字,表示显示最近多少条记录
还可以在后面接上一个用户名,表示只查看这个用户的登陆记录
lastb
查看失败的登陆记录
-n
: 后面接一个数字,表示显示最近多少条记录
还可以在后面接上一个用户名,表示只查看这个用户的失败登陆记录
iptables
iptables -I INPUT -s 159.203.219.38 -j DROP
封禁ip地址,可以禁止和该ip地址的双向沟通
iptables -D INPUT -s ***.***.***.*** -j DROP
解封ip地址
iptables --list
查看封禁和允许的配置
iptables -A OUTPUT -m string --string "www.baidu.com" --algo bm --to 65535 -j DROP
封禁指定的域名,禁止和该域名的双向沟通。
firewall
除了要在运营商那里配置安全组之外,本机的防火墙也要设置。安全组可以理解成套在机子外面的一层保护,但是如果本机不设置还是无法与外界交流。
查看已有规则
firewall-cmd --list-ports
开放端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
关闭、开启和重启服务
开放端口之后要重启才能生效
systemctl restart firewalld.service
也可以直接关掉,以后就不用操心防火墙了。
systemctl stop firewalld
如果担心安全问题可以再启动起来。
systemctl start firewalld
应对暴力破解
主要有以下策略:
- 修改远程登录端口
- 限制登录IP
- 使用非root用户登录
- 使用其他工具,如fail2ban
第一条中,修改/etc/ssh/sshd_config文件中的Port 将前方的#注释删除,并将22修改为你想要使用远程登录的端口,例如54231。然后重启sshd。
第二条中,以sshd:172.16.*.*
的格式在/etc/hosts.allow文件中添加允许ssh登陆的ip记录,并在/etc/hosts.deny文件中添加sshd:all:deny
记录,就可以把除允许ip外的所有ip全部封禁。然后使用service sshd restart
指令来重启使得配置生效。
第四条中,可以使用fail2ban配合firewall或者iptables对登陆失败过多的ip地址进行封禁。具体可以参考CentOS 7 下安装和使用 Fail2ban
关于前三条具体可以参考:拒绝ssh远程暴力破解
bash技巧
命令查询 type
通过type可以查看一个命令的类型,并且根据命令的类型告知一些基本的额外信息。常见的类型有:
- alias,还会展示原本对应的长命令。
- 可执行文件,会显示命令文件所在的位置,和which功能一样。
命令别名 alias
可以用来给一个长命令创建一个短名,大大make life easier。alias xxx="xxx xxx xxx"
最常见的用法是写在.profile里面,这样在每次进入bash的时候都可以使用别名。
查看目前生效的别名:alias
输出流定位
在命令后面加上> 文件名
可以把命令的结果输出到文件中,而不是显示在控制台上。
>> 文件名
的效果是,如果文件已经存在,则会另起一行把内容写在后面,不会覆盖掉原来的内容。这个在给主机添加公钥的时候非常方便。
管道符 |
使用管道符|
连接两个命令,可以把前一条命令的执行结果作为后一条命令的参数之一(具体哪个参数要看命令本身)一次完成计算。最后输出的结果是后面命令的结果,只不过使用的内容来自前者。
最常用的应用之一就是ps -aux | grep xxx
这样查询进程了。
一次多命令
;
分号可以在一次先后执行两条命令,两条命令的执行彼此独立。比如echo abc ; echo ddd
&&
连接两条命令时,只有当前一条命令执行成功后,后一条才会开始执行。
||
连接两条命令时,只有当前一条命令执行失败时,后一条才会执行。
screen
screen是一款文字界面增强软件。如果在只安装了文字界面的虚拟机上,由于鼠标无法使用,就无法选择文本进行复制粘贴的操作。使用screen进入一个窗口后再操作,可以用组合键Ctrl+a+[ 进入复制界面,此时窗口内显示的内容被定格,可以用键盘上下左右移动光标选择复制开始的位置回车,再在复制结束的位置回车就可以将中间的内容存入剪贴板了。然后在任何需要的地方Ctrl+a+] 即可粘贴所复制的内容。
一些常用的操作:
screen -S <session-name>
创建名为 session-name 的screen session(可包含多个windows)screen -ls
查看所有sessionscreen -r <session-name>
返回名为session-name 的screen session,如果一共只有一个,则可以省略名称。- Ctrl + a + d 退出当前session
tmux
可以直接使用包管理器安装使用。
tmux也是性质和screen 相同的终端复用器,但是强大的地方在于方便分屏操作。一些常用操作:
tmux -s <session-name>
打开一个新的终端tmux new -s myname
以myname为名打开新终端tmux ls
查看后台终端有哪些tmux attach -t <session-name>
返回终端。tmux a
回到上一个终端。- Ctrl + b 然后 " 上下分屏 % 左右分屏
- Ctrl + b 然后 x 关闭当前windows
- Ctrl + b 然后↑ ↓ ← → 切换windows
- Ctrl + b 然后 PgUp PgDn 上下翻页
- Ctrl + b 然后 d 退出session,但是可以随时回来
界面切换
以CentOS7为例,如果安装了图形界面,则可在字符界面和图形界面两者之间切换:
systemctl set-default multi-user.target
设置默认以字符界面启动,重启生效。
systemctl set-default graphical.target
设置默认以图形界面启动,重启生效。
startx
在字符界面时,启动图形界面。
快捷操作
Ctrl+L 清屏,效果等同于clear
Ctrl+R 关键字搜索历史使用过的命令
Ctrl+xx (连按两下x) 跳到行末或行首
!! 代表上一条命令
!$ 代表上一条命令的最后一个参数
history 查看历史输入的命令,储存在.bash_history中
日志清理
linux的日志一般不会自己清理,长时间运行可以会产生大量日志垃圾文件。
用journalctl --disk-usage
可以查看当前日志占用的大小
用journalctl --vacuum-size=500M
可以设定希望保留的日志大小。或者可以用journalctl --vacuum-time=2d
设置日志希望保留的时间。
压缩解压
linux上常见压缩格式有:.zip .gz .tar.gz,下面就分别说明一下解压这些压缩包有什么需要注意的,以及自己如何制作这些格式的压缩包。
tar
解压 tar -zxvf xxx.tar.gz
压缩tar -zcvf <xxx.tar.gz> <directory>
zip
解压:unzip xxx.zip
. 注意!!:解压会把原来压缩包的所有文件直接抛在当前目录。所以如果不想被文件淹没的话最好用-d指定一个解压的目录,或者先把压缩包放在一个新目录里再解压。
压缩:zip -r xxx.zip xxx/
可以压缩一个目录输出到xxx.zip文件。
gz
解压:gunzip xxx.zip
压缩:gzip xxx
会把源文件删除掉。可以用gzip -c xxx > xxx.gz
。gzip适合压缩单个文件,而不适合压缩目录。
网页浏览
linux文字界面常用的浏览器有elinks,这个浏览器无论是在ubuntu还是centos或者openeuler上面都能够轻松地使用包管理器直接安装使用。
几个常用的快捷键:
- up down:调到下一个或上一个链接。left:回到上一个界面。right:点击链接进入下一个界面。
- Insert上翻 Delete下翻
- t 打开新标签页 c 关闭当前标签页 <前一个标签页 >后一个标签页
- Esc 调出菜单栏/关闭当前对话框等
其他更好的替代命令
ncdu
apt install ncdu
可以非常用户友好地展示所有目录的占用资源情况,方便进行空间管理。
hexyl
apt install hexyl
hexyl <filename>
命令行二进制查看器。
未完待续…
以后随着学习的深入将继续补充这篇文章。