2.常见linux指令
[Linux基础]-常见linux指令
[TOC]
常见linux指令
【1】Linux用户和用户组
📌【Linux账号管理】用户处理指令
(1)用户切换
su 用户名 (随后输入用户密码)
# 切换到超级管理员su root
(2)用户密码重置
sudo passwd 用户名(随后根据提示确认新的密码 )
sudo passwd root
(3)添加用户
useradd 选项 用户名
执行权限:root
命令所在路径:/usr/sbin/useradd
选项 | 说明 |
---|---|
-c comment | 指定一段注释性描述 |
-d 目录 | 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录 |
-g 用户组 | 指定用户所属的用户组 |
-G 用户组 | 指定用户所属的附加组 |
-s Shell文件 | 指定用户的登录Shell |
-u 用户号 | 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号 |
用户名 | 说明 |
用户名 | 指定新账号的用户名,后续可使用这个用户名进行系统登录 |
(4)设置用户密码
passwd 选项 用户名
执行权限:超级用户可以指定所有用户的密码,而普通用户只能修改自身用户密码
命令所在路径:/usr/sbin/passwd
选项 | 说明 |
---|---|
-l | 锁定口令,即禁用账号 |
-u | 口令解锁 |
-d | 使账号无口令 |
-f | 强迫用户下次登录时修改口令 |
passwd myuser
# 随后输入新密码并确认即可
(5)修改用户
usermod 选项 用户名
执行权限:root
# 将用户myuser用户名修改为user1
usermod -l myuser user1
(6)删除用户
userdel 选项 用户名
执行权限:root
选项 | 说明 |
---|---|
-f | 强制删除用户,即使用户当前已登录 |
-r | 删除用户的同时,删除与用户相关的所有文件 |
(7)查看登录用户信息
who
执行权限:所有用户
命令所在路径:/usr/sbin/who
📌Linux用户组
(1)增加用户组
groupadd 选项 用户组
执行权限:root
选项 | 说明 |
---|---|
-g GID | 指定新用户组的组标识号(GID) |
-o | 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同 |
# 添加用户组
groupadd myuser-group
(2)修改用户组
groupmod 选项 用户组
执行权限:root
选项 | 说明 |
---|---|
-g GID | 指定新用户组的组标识号(GID) |
-o | 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同 |
-n 新用户组 | 将用户组的名字修改为新名称 |
# 将myuser-group组名修改为mygroup
groupmod -n myuser-group mygroup
(3)删除用户组
groupdel 用户组
执行权限:root
# 删除用户组mygroup
groupdel mygroup
(4)管理用户所属组
查询用户所属用户组
groups 用户名
# 查询myuser用户所属的用户组
groups myuser
查询用户组下所有用户
grep '用户组' /ect/group
# 查询用户组mygroup下所有用户
grep 'mygroup' /etc/group
添加用户到指定用户组
gpasswd [可选项] 组名
# 将myuser添加到用户组mygroup
gpasswd -a myuser mygroup
📌系统管理相关
(1)日期管理
显示或者设置系统日期与实践
date [选项]
执行权限:所有用户
选项 | 说明 |
---|---|
-d "时间" | 显示字符串所指的日期与时间 |
-s ”时间" | 根据字符串来设置日期与时间 |
-u | 显示GMT |
--help | 在线帮助 |
--version | 显示版本信息 |
# 设置系统时间
date -s "2000-00-01 00:00:00"
(2)显示用户
显示用户名称
logname [--help] [--version]
(3)su切换用户
切换用户
su 用户
# 变更帐号为 root 并在执行 ls 指令后退出返回原使用者
su -c ls root
# 切换至root用户
su root
(4)id命令
查看账号详细信息:显示用户的ID,以及所属群组的ID
执行权限:所有用户
id [-gGnru][--help] [--version][用户名称]
选项 | 说明 |
---|---|
-g或--group | 显示用户所属群组的ID |
-G或--groups | 显示用户所属附加群组的ID |
-n或--name | 显示用户,所属群组或附加群组的名称 |
-r或--real | 显示实际ID |
-u或--user | 显示用户ID |
-help | 显示帮助 |
-version | 显示版本信息 |
id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
(5)sudo执行
sudo:控制用户对系统命令的使用权限,root允许的操作
执行权限:普通用户
在使用普通用户操作用户或者操作用户组、以及修改网卡配置文件的时候,需要切换到root用户才操作,则可使用sudo命令提高普通用户的操作权限,以达到操作目的
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command
# ls指令
sudo ls
# 指定root用户指定ls指令
sudo -u root ls -l
# 修改网卡配置文件(或者一些只有管理员权限的文件,普通用户直接保存则会提示【无法打开并写入文件】,借助sudo执行)
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
选项 | 说明 |
---|---|
-V | 显示版本编号 |
-h | 显示版本编号及指令的使用方式说明 |
-l | 显示出自己(执行 sudo 的使用者)的权限 |
-v | sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码, 这个参数是重新做一次确认,如果超过 N 分钟,也会问密码 |
-k | 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟) |
-b | 将要执行的指令放在后台执行 |
-p | prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称 |
-u username/#uid | 不加参数:代表要以 root 的身份执行指令 加参数:可以以 username 的身份执行指令(#uid 为该 username 的使用者号码) |
-s | 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell |
-H | 将环境变数中的 HOME 指定为要变更身份的使用者HOME目录(如不加 -u 参数就是系统管理者 root ) |
-u | command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令 |
(6)top命令
实时显示process的动态
执行权限:所有使用者
各进程(任务)的状态监控属性解释说明
参数 | 说明 |
---|---|
PID | 进程id |
USER | 进程所有者 |
PR | 进程优先级 |
NI | nice值 负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb VIRT=SWAP+RES |
RES | 进程使用的、未被换出的物理内存大小,单位kb RES=CODE+DATA |
SHR | 共享内存大小,单位kb |
S | 进程状态 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 进程名称(命令名/命令行) |
# 显示进程号为7095的进程信息
top -p 7095
(7)ps命令
ps命令用于显示当前进程 (process) 的状态信息
执行权限:所有用户
# 显示进程信息
ps -A
# 显示指定用户信息
ps -u myuser
# 显示所有进程信息
ps -ef
# 显示指定进程信息(关键字过滤)
ps -ef | grep tomcat
(8)kill命令
kill命令用于删除执行中的程序或工作(可强制中断)
执行权限:所有用户
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
选项 | 说明 |
---|---|
-l <信息编号> | 若不加<信息编号>选项,则-l参数会列出全部的信息名称 |
-s <信息名称或编号> | 指定要送出的信息 |
[程序] | [程序]可以是程序的PID或是PGID,也可以是工作编号 |
# 杀死指定进程
kill 10000
# 强制杀死进程
kill —KILL 10000
# 彻底杀死进程
kill -9 10000
# 杀死指定用户的所有进程(直接杀死、根据用户名进行过滤)
kill -u myuser
kill -9 $(ps -ef | grep myuser)
(9)关机命令
shutdown命令用于关闭系统
执行权限:管理员用户
shutdown [-t seconds] [-rkhncfF] time [message]
# 立即关机
shutdown -h now 或者是 shutdown
# 指定多长时间后关机,并显示警告信息
shutdown +1 "关机警告信息"
# 指定多长时间后重启,并显示警告信息
shutdown –r +1 "关机重启警告信息"
选项 | 说明 |
---|---|
-t seconds | 设定在几秒钟之后进行关机程序 |
-k | 并不会真的关机,只是将警告讯息传送给所有使用者 |
-r | 关机后重新开机 |
-h | 关机后停机 |
-n | 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机 |
-c | 取消目前已经进行中的关机动作 |
-f | 关机时,不做 fcsk 动作(检查 Linux 档系统) |
-F | 关机时,强迫进行 fsck 动作 |
time | 设定关机的时间 |
message | 传送给所有使用者的警告讯息 |
(10)重启命令
reboot命令用于重启计算机
reboot 选项
使用者权限:root、普通用户(需验证)
选项 | 说明 |
---|---|
-n | 在重开机前不做将记忆体资料写回硬盘的动作 |
-w | 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里 |
-d | 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) |
-f | 强迫重开机,不呼叫 shutdown 这个指令 |
-i | 在重开机之前先把所有网络相关的装置先停止后开始重新启动 |
(11)who命令
who命令用于显示系统中有哪些使用者在线,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等
执行权限:所有使用者
选项 | 说明 |
---|---|
-H 或 --heading | 显示各栏位的标题信息列 |
-i 或 -u 或 --idle | 显示闲置时间 若该用户在前一分钟之内有进行任何动作,将标示成"."号; 如果该用户已超过24小时没有任何动作,则标示出"old"字符串 |
-m | 此参数的效果和指定"am i"字符串相同 |
-q 或--count | 只显示登入系统的帐号名称和总人数 |
-s | 此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题 |
-w 或-T或--mesg或--message或--writable | 显示用户的信息状态栏; |
--help | 在线帮助 |
--version | 显示版本信息 |
# 显示当前登录系统的用户
who
# 显示明细(标题)信息
who -H
(12)timedatectl命令
timedatectl是用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息
timedatectl
执行权限:所有用户都可使用,但设置实现需要root权限
# 显示系统的当前时间和日期
timedatectl status
# 查看当前失去
timedatectl | grep Time 或者 timedatectl
# 查看所有可用的时区
timedatectl list-timezones
# ------------------ 需root权限设置时间 ------------------
# 设置本地时区
timedatectl set-timezone "Asia/Shanghai"
# 禁用时间同步
timedatectl set-ntp false
timedatectl set-time "2019-03-11 20:45:00" # 进一步测试时间是否可设定,如果ntp时间同步为true则无法修改时间设定
(13)clear命令
clear命令用于清除屏幕
执行权限:所有用户
(14)exit
exit命令用于退出目前的shell
exit 状态值
执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell
退出码(exit status,或exit code)的约定
- 0表示成功(Zero - Success)
- 非0表示失败(Non-Zero - Failure)
- 2表示用法不当(Incorrect Usage)
- 127表示命令没有找到(Command Not Found)
- 126表示不是可执行的(Not an executable)
- 大于等于128 信号产生
【2】目录处理
📌目录常用指令
常用指令列表
- ls: 列出目录
- cd: 切换目录
- pwd: 显示目前的目录
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- cp: 复制文件或目录
- rm: 移除文件或目录
- mv: 移动文件与目录或修改文件与目录的名称
自动补全
- 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下
tab
键 - 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
(1)查看目录
列出当前目录下所有的文件:ls (ll:列出当前目录下的文件,包括详细信息)
查看当前访问位置:pwd
列出当前包含隐藏的文件:ls -a
(2)目录创建
创建文件夹:mkdir [folderName](如果要创建多级目录,则指定的目录路径必须存在)
递归创建文件夹:mkdir -p [folderName](递归创建多级目录,如果目录不存在则创建)
(3)目录删除
删除一个空目录:rmdir [-p] dirName
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除
(4)复制文件或者目录
复制文件或者目录:
cp -r sourceFolder targetFolder:完成数据拷贝,但文件的属性会发生变化,相当于创建信息的文件内容
cp -p sourceFolder targetFolder:在复制的同时会保留文件的属性
选项 | 说明 |
---|---|
-a | 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合 |
-d | 复制时保留链接(链接相当于Windows中的快捷方式) |
-f | 覆盖已经存在的目标文件而不给出提示 |
-i | 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖 |
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 |
-r/R | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件 |
-l | 不复制文件,只是生成链接文件 |
重命名或删除文件信息:
剪切文件并重命名:mv [sourceFolder ] [targetFolder]
删除文件信息:rm -rf folder:强制删除文件信息
选项 | 说明 |
---|---|
-i | 删除前逐一询问确认 |
-f | 即使原档案属性设为唯读,亦直接删除,无需逐一确认 |
-r | 将目录及以下之档案亦逐一删除 |
小结:
mkdir 创建目录 -p 创建多级目录
pwd 显示当前目录
cd 进入指定目录
rmdir 删除空目录
cp 拷贝文件 -r 拷贝目录 -p保留文件属性
mv 剪切 和重命名
rm 删除文件 -r 删除目录 -f 强制删除
【3】文件处理
🔖文件基本属性
# 键入ls -l 查看文件属性
drwxr-xr-x. 10 root root 4096 Jan 16 14:39 share
drwxr-xr-x. 2 root root 4096 Mar 3 17:56 src
srwxrwxrwx 1 root root 0 Jul 8 2018 yd.socket.server
在linux中第一个字符代表这个文件是目录、文件或链接文件
- 当为[ d ]则是目录
- 当为[ - ]则是文件;
- 若是[ l ]则表示为链接文档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
紧随其后的为【rwx】三个参数的组合(r-可读、w-可写、x-可执行)
对应权限位置不会改变,如果没有该权限则以-表示
符号 | 权限说明 |
---|---|
0 | 文件类型(目录、文件、链接、设备等) |
123 | 文件所有者拥有的rwx权限 |
456 | 文件所有者的同组用户拥有的rwx权限 |
789 | 定其他用户拥有该文件的rwx权限 |
📌文件处理指令
touch 创建空文件
cat 获取文件内容 -n 显示行号
tac 反向获取文件内容
more 分页显示获取大文件内容 空格或者f 翻页 回车:换行 q退出
less 分页显示 可以向上翻页 pageup pagedown进行上下翻页
head 显示文件指定的前n行数据
tail 显示文件指定的后n行数据
(1)创建空文件
touch filename
touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
选项 | 说明 |
---|---|
a | 改变档案的读取时间记录 |
m | 改变档案的修改时间记录 |
c | 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样 |
f | 不使用,是为了与其他 unix 系统的相容性而保留 |
r | 使用参考档的时间记录,与 --file 的效果一样 |
d | 设定时间与日期,可以使用各种不同的格式 |
t | 设定档案的时间记录,格式与 date 指令相同 |
--no-create | 不会建立新档案 |
--help | 列出指令格式 |
--version | 列出版本讯息 |
touch的常用应用
# 批量创建myfile-1到myfile-10的空文件
touch myfile-{1..10}.txt
# 改变/更新文件访问时间(通过ls -l查看)
touch myfile-1.txt
# 查看文件状态信息(文件属性、访问时间、更改时间、最近改动时间)
stat myfile-1.txt
(2)获取文件信息(可显示行号)
cat filename
cat -n filename
(3)反向获取文件信息
tac filename
(4)分页显示文件信息
more filename
less filename
# 查看myfile文件
less myfile
# 结合history、less分页查看历史使用记录
history | less
(5)显示前面、末尾几行内容(可指定行数)
head –n filename
功能说明:显示文件前面几行内容
tail –n filename
功能说明:显示文件末尾几行内容
动态显示末尾几行的内容:tail -nf filename
📌文件搜索指令
(1)find
Find
-name 根据名字查询 -iname 忽略大小写 * 匹配多个字符 ?匹配一个字符
-size 根据大小查询 +是大于指定的数据块 -是小于指定的数据块
-user 是根据用户查询 -group是根据组查询
-type 根据类型查询 f文件 d目录 l 软连接
-a 两个条件都满足 -o 满足其一即可
# 搜索当前目录及其子目录下所有后缀为.gz的文件
find . -name "*.gz"
# 搜索当前目录及其子目录下所有最近1天内更新过的文件
find . -ctime -1
# 全局搜索
find / -name 'xxx'
(2)locate
注意: locate无法搜索tmp目录下的文件以及新创建的文件
只有当updatedb更新资料库的时候才能通过locate进行查询
Locate相对于find的查询效率更高,但是不具备实时性
(3)which
搜索命令所在目录及别名信息
(4)whereis
搜索命令所在目录及帮助文档路径
(5)grep
grep -iv [指定字符串][文件]
选项 | 说明 |
---|---|
-i | 不区分大小写 |
-v | 排除指定字符串 |
# 搜索myfile文件中存在关键字【key】的行
grep key myfile
# 搜索myfile文件中存在关键字【key】的行并显示行号
grep -n key myfile
# 忽略大小写搜索myfile文件中存在关键字【key】的行
grep -i key myfile
# 搜索myfile文件中不存在关键字【key】的行
grep -v key myfile
# 查找指定的进程信息(包括grep进程)
ps -ef | grep sshd
# 查找指定的进程信息(不包括grep进程)
ps aux | grep sshd | grep -v "grep"
# 查找进程个数
ps -ef | grep -c sshd
📌文件所属管理
(1)chgrp更改文件所属组
chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]
chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
# 将myfile文件所属组修改为mygroup
chgrp -v mygroup myfile
(2)chown更改所属主、组
Linux中每个文件都有相应的拥有者,利用chown指令可以变更档案的所属主、组,系统管理员root拥有访问所有文件的权限,而一般使用者没有权限变更自身或者别人的档案拥有者
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
# 将myfile文件所属主变更为myuser
chown myuser myfile
# 将myfile文件所属主、组分别变更为myuser、mygroup
chown myuser:mygroup myfile
(3)chmod权限命令
Linux的文件调用权限分为三级 : 文件属主、属组、其他。利用 chmod 可以控制文件如何被他人所调用,其中需要借助数字或者符号设定文件属性
chmod [-cfvR] [--help] [--version] mode file...
mode:权限设定字符串
[ugoa...][[+-=][rwxX]...][,...]
- ugoa:u-文件拥有者、g-文件拥有者同组的用户、o-其他用户、a-三者都是
- +-=:+表示增加权限、- 表示取消权限、= 表示唯一设定权限
- rwxX:r-可读、w-可写、x-可执行、X-表示只有当该档案是个子目录或者该档案已经被设定过为可执行
数字方式权限变更
权限 | 英文 | 缩写 | 数字 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | execute | x | 1 |
无权限 | - | 0 |
而每种权限的组合对应为数字的叠加和,以 [-rwxrwx---] 为例,1-9的字符对应为rwx、rwx、---,因此其对应的数字权限分析为
# 数字方式权限变更
chmod -R xyz 文件/目录
-R:进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
xyz:对应的数字类型的权限属性(rwx累加)
符号方式权限变更
以 [-rwxr-xr--] 为例,1-9的字符对应为rwx、r-x、r--,因此其对应的符号权限分析为u=rwx,g=r-x,o=r--
# 符号方式权限变更
chmod u=rwx,g=rx,o=r filename
# 取消所有人的可读权限,而不改变其他已存在的权限
chmod a-r filename
【4】其他常用指令
📌网络相关
(1)ping
ping 选项 IP地址
功能说明:测试网络连通性
执行权限:所有用户
# 指定接收包次数
ping -c 2 127.0.0.1
# 检测是否和主机联通(通常借助ping检测本地和目标机器是否连通)
ping www.baidu.com
响应参数说明
icmp_seq:ping序列,从1开始
ttl:IP生存时间值
time:响应时间,数值越小,联通速度越快
(2)ifconfig
ifconfig是Linux中用于显示或配置网络设备的命令,英文全称是network interfaces configuring
ifconfig 网卡名称 IP地址
功能说明:查看、设置网卡信息
执行权限:所有用户
# 查看网卡信息
ifconfig
# 设置网卡信息(慎用)
ifconfig 网卡名称 IP地址
# 开启|关闭网卡(需root账户)
ifconfig 网卡名称 up|down
由于在使用腾讯云轻量服务器测试的时候不消息修改了eth0的网卡IP,导致SSH和宝塔面板连接失败,这种情况需要通过重启实例的方式进行复原
参考说明
eth0(有些为ens33)表示第一块网卡,对应IP地址、广播地址、掩码地址等可通过ifconfig指令查看
lo是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口
(3)mail
mail 用户名
功能说明:查看发送电子邮件
执行权限:所有用户
(4)last
last
功能说明:列出目前与过去登录系统的用户信息
执行权限:所有用户
# 查看目前与过去登录系统的用户信息
last
(5)netstat
netstat 选项
功能说明:显示网络相关信息(借助netstat了解整个Linux系统的网络情况)
执行权限:所有用户
# 显示详细的连接状况
netstat -a
# 显示网卡列表
netstat -i
(6)mount
mount [-t 文件系统] 设备文件名 挂载点
功能说明:挂载命令
执行权限:所有用户
📌解压命令
(1)gzip、gunzip
gzip 文件
功能说明:压缩指定文件,压缩后文件格式为.gz
gunzip 文件
功能说明:解压缩.gz格式的文件
(2)tar
压缩文件,压缩后文件格式为.tar.gz
tar [选项] [压缩后文件名] [目录]
-c 打包
-v 显示详细信息
-f 指定文件名
-z 打包同时压缩
解压文件
tar [选项] [压缩后文件名] [目录]
-x 解包
-v 显示详细信息
-f 指定文件名
-z 解压缩
(3)zip、unzip
zip
zip[必要参数][选择参数][目录]
# 进入指定目录,压缩当前目录下所有文件,生成xxx.zip
zip -q -r xxx.zip *
unzip
# 查看指定压缩文件中包含的内容(列举压缩文件中文件的详细信息:文件大小、日期、时间、名称、总数量、总大小)
unzip -l xxx.zip
# 解压指定压缩文件至指定的目录(unzip -d [指定目标目录] [指定压缩文件])
unzip -d ./xxx xxx.zip
(4)bzip2、bunzip2
bzip2
".bz2"是 Linux 的另一种压缩格式,相对于.gz格式而言其算法更为先进、压缩比更好、时间更快
若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件
bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][- 压缩等级][要压缩的文件]
# 创建文件test.txt,并使用bzip2进行压缩(不指定参数,压缩完成会生成test.txt.bz2文件并且删除test.txt源文件)
bzip2 test.txt
bunzip2
bunzip2 [-fkLsvV] [.bz2压缩文件]
# 解压test.txt.bz2文件(解压缩的文件,并删除原压缩文件)
bunzip2 -v test.txt.bz2
📌磁盘命令
(1)lsblk(list block)
使用lsblk命令可以以tree的形式展示所有设备的信息,列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息
lsblk [参数]
# 显示结果
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 16.5M 0 rom
vda 253:0 0 80G 0 disk
?..vda1 253:1 0 80G 0 part /
参数 | 说明 |
---|---|
NAME | 块设备名 |
MAJ:MIN | 主要和次要设备号 |
RM | 设备是否可移动设备(1:是;0:否) |
SIZE | 设备的容量大小信息 |
RO | 设备是否为只读 |
TYPE | 块设备是否是磁盘或磁盘上的一个分区 |
MOUNTPOINT | 设备挂载的挂载点 |
# 默认选项不会列出所有空设备
lsblk -f
# 显示结果
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0 iso9660 config-2 xxxx-xxxx-xxxxx-xxxxx
vda
?..vda1 ext4 4b499d76-769a-40a0-93dc-4a31a59add28 /
参数 | 说明 |
---|---|
NAME | 设备名称 |
FSTYPE | 文件类型 |
LABEL | 设备标签 |
UUID | UUID设备编号 |
MOUNTPOINT | 设备的挂载点 |
(2)df
Linux的df命令类似于Windows中磁盘管理概念,用于显示目前在Linux系统上的文件系统的磁盘使用情况统计
# 显示磁盘使用情况统计情况
df
# 显示结果
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1929136 0 1929136 0% /dev
tmpfs 1940084 24 1940060 1% /dev/shm
tmpfs 1940084 544 1939540 1% /run
tmpfs 1940084 0 1940084 0% /sys/fs/cgroup
/dev/vda1 82437508 9789148 69192896 13% /
tmpfs 388020 0 388020 0% /run/user/0
参数 | 说明 |
---|---|
Filesystem | 文件系统的名称 |
1K-blocks | 指定一个特定的文件系统 1K-块:1K是1024字节为单位的总容量 |
Used | 已用容量 |
Available | 可用容量 |
Use% | 已用容量占比 |
Mounted on | 文件系统的挂载点 |
# 显示磁盘使用的文件系统信息
df 目录名
# 显示所有信息(会在文件系统列举的最后输出一行记录总数)
df -total
# 显示换算后的文件系统信息(会将单位K换算为更易理解的G-千兆字节、M-兆字节、K-千字节)
df -h
(3)mount命令
挂载概念
在Linux当中所有的存储设备如u盘、光盘、硬盘等,都必须挂载之后才能正常使用。其实挂载可以理解为Windows当中的分配盘符,只不过windows当中是以英文字母ABCD等作为盘符,而linux是拿系统目录作为盘符,当然linux当中也不叫盘符,而是称为挂载点,而把为分区或者光盘等存储设备分配一个挂载点的过程称为挂载
在安装linux系统时设立的各个分区,如根分区、/boot分区等都是自动挂载的,也就是说不需要我们人为操作,开机就会自动挂载。但是光盘、u盘等存储设备如果需要使用,就必须人为的进行挂载。类似地,在windows下插入U盘也是需要挂载(分配盘符)的,只不过windows下分配盘符是自动的
Linux中的根目录以外的文件要想被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除次关联关系的过程称之为“卸载”。
📌帮助指令
(1)man
man [命令或配置文件]
详细查阅某个命令,包括命令的介绍和使用方法以及参数
(2)help
help [命令]
功能说明:获取Shell内置命令的帮助信息
一些shell内置的命令无法通过man获取,只能通过help获取
📌echo命令
echo:将字符串输出到控制台,通常与”重定向”联合使用
# 打印”hello linux”字符串到控制台
echo "hello linux"
重定向:>(覆盖)、>>(追加)、&>>将命令的失败结果追加指定文件的后面
通过echo+重定向可将结果输出到文件
# 将"hello"覆盖到test.txt文件(如果没有该文件会自动创建)
echo "hello" > test.txt
# 清空指定文件内容
echo > test.txt
# 在test.txt文件中末尾追加字符串"test linux"
echo "test linux" >> test.txt
# 执行指定命令并将命令执行的失败结果追加到指定的文件后面
cat 不存在的文件 &>> error.log
📌软连接
Linux中的软连接(link)类似于Windows中的快捷方式,通过构建软连接便于定义文件或目录
ln -s 目标文件绝对路径 快捷方式路径
【5】vim编辑器常用命令
VIM是Linux上最常用的文本编辑器 ,它没有菜单,只有命令,所有的操作都是通过命令完成
vi/vim模式主要分为以下三种:
- 命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。
- **编辑模式:**在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。
- **末行模式:**在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行
a.插入命令
a 在光标所在字符的之后插入数据
A 在光标所在行的末尾插入数据
i 在光标所在的字符处插入
I 在光标所在行的首部插入
o 在当前光标所在的下一行插入
O 在当前光标所在的上一行插入
按esc退出编辑模式
:wq 保存并退出
:q 没有修改直接退出
:q! 修改了内容,但是不保存直接退出
异常处理
如果vim异常退出, 在磁盘上可能会保存有交换文件,则再使用vim 编辑文件时, 会提示交换文件已存在,可通过将后缀名为.swp文件删除从而恢复vim正常运作
b.定位命令
:set nu 设置行号
:set nonu 取消行号
:gg 到第一行
:G 到最后一行
:nG 50G 到第50行
:n 到第n行
c.删除命令
:x 删除光标所在位置的字符 删除的是单个字符
:nx 删除光标之后的n个字符 5x删除之后的5个字符
:dd 删除光标所在的行
:dG 删除光标所在的行 到末尾的内容
:n2,n2d 删除指定范围的 :20 ,:30 d 删除20-30行的数据
d.复制和剪切的命令
:yy 复制当前行
:p 粘贴在当前光标所在行的下方 P 是粘贴在光标所在处的上方
:nyy 3yy 复制当前行以及之后的3行
:dd 删除 –>剪切
:ndd 剪切当前行以及之下的n行 3dd
e.替换取消命令
:u 取消上一步的操作
:r 取代光标所在的位置的字符
:ZZ 直接保存并退出
:w 修改
:wq 修改并 退出