文章目录
文件打包
gzip
- 压缩文件,压缩后的文件是以.gz结尾
- 用法:
gzip
[选项] [文件名] - 选项:
-d
解压,解压完成后会删除原文件-c
将结果输出至标准输出-#
#用1-9代替,指定压缩比,默认为6
- 用法:
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]# gzip anaconda-ks.cfg //压缩,不保留原文件
[root@bad test]# ls
anaconda-ks.cfg.gz
[root@bad test]# gzip -d anaconda-ks.cfg.gz //解压缩,不保留压缩包
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]#
- 也可以使用
gunzip
解压缩,后直接跟压缩的文件名,解压完成后会删除原文件。 - 使用
zcat
可以不解压压缩包查看文件内容
bzip2
- 压缩文件,压缩后的文件是以.bz2结尾
- 用法:
bzip2
[选项] [文件] - 选项:
-d
解压缩,并删除原文件-#
#用1-9代替,指定压缩比,默认为6-k
即keep,保留原文件压缩
- 用法:
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]# bzip2 anaconda-ks.cfg //压缩,不保留原文件
[root@bad test]# ls
anaconda-ks.cfg.bz2
[root@bad test]# bzip2 -d anaconda-ks.cfg.bz2 //解压,并删除原压缩包
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]# bzip2 -k anaconda-ks.cfg //保留原文件压缩
[root@bad test]# ls
anaconda-ks.cfg anaconda-ks.cfg.bz2
[root@bad test]#
- 也可以使用
bunzip2
解压缩,后直接跟压缩的文件名,解压完成后会删除原文件。 - 使用
bzcat
可以不解压压缩包查看文件内容
xz
- 压缩文件,压缩后的文件是以.xz结尾,比bzip2的压缩比跟大
- 用法:
xz
[选项] [文件] - 选项
-d
解压缩,并删除原文件-#
#用1-9代替,指定压缩比,默认为6-k
即keep,保留原文件压缩
- 用法:
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]# xz -k anaconda-ks.cfg //压缩,保留原文件
[root@bad test]# ls
anaconda-ks.cfg anaconda-ks.cfg.xz
[root@bad test]# rm -rf anaconda-ks.cfg //删除anaconda-ks.cfg
[root@bad test]# ls
anaconda-ks.cfg.xz
[root@bad test]# xz -d anaconda-ks.cfg.xz //解压缩,解压完删除原文件
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]#
- 也可以使用
unxz
解压缩,后直接跟压缩的文件名,解压完成后会删除原文件。 -
- 使用
xzcat
可以不解压压缩包查看文件内容
- 使用
gzip
、bzip2
、xz
都是只能打包压缩文件,无法打包目录。
compress
- 这是用的较少的一种压缩格式,压缩的文件是以.Z结尾,解压用
uncompress
。同样,这条解压命令也是需要使用yum工具下载命令的。
[root@bad test]# yum install -y compress //下载combress命令
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]# compress anaconda-ks.cfg //压缩
[root@bad test]# ls
anaconda-ks.cfg.Z
[root@bad test]# uncompress anaconda-ks.cfg.Z //解压缩
[root@bad test]# ls
anaconda-ks.cfg
zip
- 既归档又压缩,可以压缩目录,压缩后,不会删除原文件
- 用法:
zip
[压缩包文件名] [打包文件]
- 用法:
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]# zip 1.zip anaconda-ks.cfg //压缩文件,压缩包名字定义为1.zip
adding: anaconda-ks.cfg (deflated 37%)
[root@bad test]# ls
1.zip anaconda-ks.cfg
[root@bad test]# rm -rf anaconda-ks.cfg //删除anaconda-ks.cfg
[root@bad test]# ls
1.zip
[root@bad test]# unzip 1.zip //解压,解压完保留原文件
Archive: 1.zip
inflating: anaconda-ks.cfg
[root@bad test]# ls
1.zip anaconda-ks.cfg
[root@bad test]#
- 使用
unzip [压缩包]
可以解压缩。注意!一般系统默认没有这条解压缩的命令,可以使用yum工具安装此命令。当然前提是你配置了yum仓库。
[root@bad test]# yum install -y unzip //下载解压zip命令
tar
-
归档工具,只归档不压缩
- 用法:
tar
[选项] [文件或目录] - 选项:
c
创建归档文件f file.tar
指定要操作的归档文件v
显示过程x
还原归档p
归档时保留权限信息。只有管理员才有权限用此选项C
指定还原归档或解压时的目标目录tf
不展开归档,直接查看归档了哪些文件
- 用法:
-
选项
f
后必须跟文件名 -
常用的组合选项:
-zcf
file.tar.gz——归档并调用gzip进行压缩
-jcf
file.tar.bz2——归档并调用bzip2进行压缩
-Jcf
file.tar.xz——归档并调用xz进行压缩
-zcf
file.tar.gz——归档并调用gzip进行压缩
-jcf
file.tar.bz2——归档并调用bzip2进行压缩
-Jcf
file.tar.xz——归档并调用xz进行压缩
-xf
file.tar.gz|file.tar.bz2|file.tar.xz——还原归档并自动根据压缩方式调用相应的工具解压
[root@bad test]# ls
anaconda-ks.cfg
[root@bad test]# tar -zcf 1.tar.gz anaconda-ks.cfg //调用gzip压缩
[root@bad test]# ls
1.tar.gz anaconda-ks.cfg
[root@bad test]# rm -rf anaconda-ks.cfg //删除anaconda-ks.cfg
[root@bad test]# ls
1.tar.gz
[root@bad test]# tar -xf 1.tar.gz //调用gzip解压
[root@bad test]# ls
1.tar.gz anaconda-ks.cfg
[root@bad test]#
- 指定解压的目录:
[root@bad test]# tar -zcf 1.tar.gz anaconda-ks.cfg //用gzip的格式归档
[root@bad test]# ls
1.tar.gz anaconda-ks.cfg
[root@bad test]# ls /root/bad/
[root@bad test]# tar -xf 1.tar.gz -C /root/bad/ //自动调用gzip的格式解压缩,并指定解压目录
[root@bad test]# ls /root/bad/
anaconda-ks.cfg
[root@bad test]#
系统管理
which
- 查找Linux命令文件并显示所在位置,搜索范围由PATH环境变量指定
[root@bad test]# which ls //查找ls命令文件的位置
alias ls='ls --color=auto'
/usr/bin/ls
echo
- 所见即所得,原样输出
[root@bad test]# echo “bad not bad”
bad not bad
[root@bad test]# echo $? //判断上一条命令是否有错误,返回值为1表示有错误,0表示正确
0
[root@bad test]# echo “bad not bad” >> 1.txt //两个>>是想文件中追加内容
[root@bad test]# cat 1.txt
bad not bad
[root@bad test]# echo “I am bad” > 1.txt //单个>会覆盖文件中的内容
[root@bad test]# cat 1.txt
I am bad
pwd
- 打印出当前工作目录
[root@bad test]# pwd
/root/test
shell
- 查看当前系统正在使用的shell
[root@bad test]# echo $SHELL
/bin/bash
- 查看当前系统支持的所有的shell
[root@bad test]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
- 查看bash命令的绝对路径
[root@bad test]# which bash
/usr/bin/bash
stat
- 显示文件或文件系统的详细信息
type
-
Linux中的命令有两种类型;
- 内部命令(shell内置)
- 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
-
type
命令则是检查命令是内部命令还是外部命令
[root@bad ~]# type cd
cd is a shell builtin
[root@bad ~]# type mv
mv is aliased to `mv -i'
[root@bad ~]# type ls
ls is aliased to `ls --color=auto'
file
- 查看文件类型
alias
- 定义别名
- 用法:
alias
[定义名]=[‘要定义的命令’]
- 用法:
- 临时生效
[root@bad test]# alias cdyum='cd /etc/yum.repos.d/' //将yum的配置路路径定义别名为cdyum
[root@bad test]# pwd //打印出当前所在的目录
/root/test
[root@bad test]# cdyum //执行此命令就会自动执行 cd /etc/yum.repos.d/
[root@bad yum.repos.d]# pwd
/etc/yum.repos.d
- 永久生效
[root@bad ~]# vim .bashrc
alias cdyum='cd /etc/yum.repos/d'
- 使用
unalias
可以取消别名 - 注意这里我们还没有讲vim编辑器工具的使用,我们可以使用前面讲到的
>>
追加命令向配置文件中加入配置文件(如下)
[root@bad ~]# echo “alias cdyum='cd /etc/yum.repos/d” >> .bashrc
ldd
- 查看指定程序有哪些依赖文件库,移除依赖文件,命令则无法使用,可以使用软连接,恢复命令的使用
[root@bad test]# ldd /usr/bin/ls //查看ls命令依赖哪些文件库
linux-vdso.so.1 => (0x00007fff629fe000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f86b1705000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f86b1500000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f86b12f6000)
libc.so.6 => /lib64/libc.so.6 (0x00007f86b0f35000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f86b0cd4000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f86b0aae000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f86b08aa000)
/lib64/ld-linux-x86-64.so.2 (0x00007f86b193c000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f86b06a5000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f86b0488000)
ln
- 软连接
- 用法:
ln -s
[源文件或目录 ] [目的文件或目录]
- 用法:
[root@bad test]# ldd /usr/bin/ls //查看ls命令的依赖库文件
linux-vdso.so.1 => (0x00007fff193fe000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff238e85000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007ff238c80000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007ff238a76000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff2386b5000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff238454000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007ff23822e000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff23802a000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff2390bc000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007ff237e25000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff237c08000)
[root@bad test]# mv /lib64/libselinux.so.1 /tmp/ //将依赖库libselinux.so.1文件移走
[root@bad test]# ls //ls命令无法使用
ls: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory
[root@bad test]# ln -s /tmp/libselinux.so.1 /lib64/ 使用软连接,将ls命令的依赖库文件链接到lib64目录下
[root@bad test]# ls //ls命令恢复使用
anaconda-ks.cfg
[root@bad test]# mv /tmp/libselinux.so.1 /lib64/ 将依赖库文件移回到lib64目录下
mv: overwrite ‘/lib64/libselinux.so.1’? y 确定写入
[root@bad test]#
cal
- 查看日历
[root@bad test]# cal
October 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
date
- 显示或设置日期与时间
-s
以字符串方式设置时间+
格式化输出时间- %Y:年 %m:月 %D:日
- %H:时 %M:分 %S:秒
[root@bad test]# date
Thu Oct 31 00:33:30 CST 2019
[root@bad test]# date '+%Y' //显示年份
2019
[root@bad test]# date '+%Y%m' //显示年份、月
201910
[root@bad test]# date '+%Y%m%d' //显示年、月、日
20191031
[root@bad test]# date '+%Y-%m-%d %H' //显示年、月、日、时
2019-10-31 00
[root@bad test]# date '+%Y-%m-%d %H:%M' //显示年、月、日、时、分
2019-10-31 00:34
[root@bad test]# date '+%Y-%m-%d %H:%M:%S' //显示年、月、日、时、分、秒
2019-10-31 00:35:00
[root@bad test]# date 显示当前时间
Thu Oct 31 00:37:43 CST 2019
[root@bad test]# date -s 20191030 //修改系统时间为2019年10月30日
Wed Oct 30 00:00:00 CST 2019
[root@bad test]#
who
- 查看当前用户是谁
[root@bad test]# whoami //查看当前登录的用户是谁
root
[root@bad test]# who am i //查看当前登陆的用户的详细信息
jay pts/0 2019-10-20 15:46 (:0)
[root@bad test]# who //显示关于当前在本地系统上的所有用户的信息
jay :0 2019-10-20 15:45 (:0)
jay pts/0 2019-10-20 15:46 (:0)
[root@bad test]# w //显示当前系统所有登录用户的详细信息并显示其在执行什么命令
00:12:00 up 1:14, 2 users, load average: 0.25, 0.10, 0.06
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
jay :0 20Oct19 ?xdm? 3:00 0.09s gdm-session-worker [pam/gdm-aut
jay pts/0 20Oct19 ? 0.33s 3.66s /usr/libexec/gnome-terminal-ser
[root@bad test]#
df
- 显示所有磁盘空间占用情况
- 用法:
df
[选项] - 选项:
- -a 显示所有
- -h 以更易读的字节单位显示信息
- -T 显示文件系统类型
- 用法:
[root@bad test]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 2.9G 15G 17% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 168K 914M 1% /dev/shm
tmpfs 914M 8.9M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
[root@bad test]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/rhel-root xfs 18348032 3026140 15321892 17% /
devtmpfs devtmpfs 926100 0 926100 0% /dev
tmpfs tmpfs 935380 168 935212 1% /dev/shm
tmpfs tmpfs 935380 9072 926308 1% /run
tmpfs tmpfs 935380 0 935380 0% /sys/fs/cgroup
/dev/sda1 xfs 508588 121216 387372 24% /boot
[root@bad test]#
history
- 查看历史命令,存放路径:
/.bash_history
- 用法:
histpry
[选项] - 选项:
- -w 将历史命令保存到本地文件中
- -c 清除历史命令
- -d 删除指定命令
- 用法:
[root@bad test]# history -w
[root@bad test]# cat /root/.bash_history
a=`ls bad`
echo $a
echo `ls bad`
echo $(ls bad)
history
HISTSIZE=10
history
cat /.bash_history
cat /root/.bash_history
history -w
[root@bad test]# history -c
[root@bad test]# history
20 history
[root@bad test]#
- 命令历史的使用技巧:
esc,.
按下esc松开后按.,引用前一个命令的最后一个参数!$
引用前一个命令的最后一个参数!!
执行上一条命令!n
执行命令历史中的第n条命令!string
执行命令历史中最近一个以指定字符串开头的命令!-n
执行命令历史中倒数第n条命令
[root@bad test]# history
7 echo "bad"
8 echo "jay"
9 echo "redhat"
10 history
[root@bad test]# !8 //执行第八条命令
echo "jay"
jay
[root@bad test]# history
9 echo "redhat"
10 history
11 echo "jay"
12 history
[root@bad test]# !-4 //执行倒数第四条命令
echo "redhat"
redhat
[root@bad test]# cd /etc/yum.repos.d/
[root@bad yum.repos.d]# ls !$
ls /etc/yum.repos.d/
[root@bad yum.repos.d]# echo redhat
redhat
[root@bad yum.repos.d]# !! //执行上一条命令
echo redhat
redhat
[root@bad yum.repos.d]#
定义变量
- 环境变量
- PATH 命令搜索路径
[root@bad test]# echo $PATH //指出使用的命令所在的目录
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/jay/.local/bin:/home/jay/bin
[root@bad test]#
- HISTSIZE 命令历史缓冲区大小
- SHELL 当前shell
- PS1 定义着提示符
[root@bad test]# echo $PS1
PS1='[u@h w]$ '
- bash内置变量
- RANDOM 保存着0-32768之间的随机数
如果有错误或不详尽的地方,还请留言指出。
本文链接: https://blog.csdn.net/qq_45668124/article/details/104382409
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!