查看当前linux的发行版信息
bash
cat /etc/redhat-release
linux查看sshd进程的命令
bash
1.ps aux | grep sshd
2.systemctl status sshd
在Linux中查看剩余内存
bash
free -m
linux检查主机是否存活的命令是什么
bash
ping -c 4 [主机地址]
查看内核版本
bash
uname -r
查看shell的类型
bash
方法1:cat /etc/shells
方法2:chsh -l
Linux下查看服务程序占用的端口命令
bash
netstat --apn
查看当前默认的shell
bash
echo $SHELL
使用命令重启和关闭linux操作系统
重启: reboot , shutdown -r now
关机: shutdown -h now , poweroff
shutdown -r +30 'the system will reboot' 再过30分钟之后系统会重启,并显示后面的消息给所 有在线用户
查看网卡信息以及获取ip地址
#获取ip地址
nmcli con up ens160
#查看ip地址
ip a
ifconfig
查看当前登录的用户
whoami
修改主机名,需要重新远程连接才生效
hostname server #临时修改,重启linux系统之后失效
hostnamectl set-hostname server #永久生效,修改的是文件内容。重启linux系统后依旧生效
查看主机名配置文件
cat /etc/hostname
查看当前的工作目录
pwd
更改当前的工作目录,即切换目录
绝对路径(以/开始的路径) cd /home
相对路径(不是以/开始的路径)
cd ~ #返回家目录;~代表当前用户的家目录,当前用户为root,则代表为root用户的家目录
cd .. #..代表当前工作目录的上一级目录
修改密码
passwd
passwd -d centos #删除centos用户的密码
命令 --help
[root@node13 ~]# cat ------help
示例如下:cat [OPTION]... [FILE]... 表明cat后面可以加上多个可选的选项以及多个可选的文件参 数 下面是对于命令的语法的一些符号的说明:
[] :表示的是可选
...: 表示的可以存在多个参数
|表示是可选的
<>:必填
{}:表示作为一个整体存在的
man用来提供在线帮助,使用权限是所有用户
man ls
date命令
date命令用于显示或设置系统的时间与日期
默认格式查看当前系统时间的date命令如下所示:
[root@kongd ~]# date
Sat Sep 5 09:13:45 CST 2020
查看今天是今年的第几天
[root@kongd ~]# date "+%j"
306 #date命令中的参数%j可用来查看今天是当年中的第几天
按照"年-月-日 小时:分钟:秒"的格式查看当前系统时间
date "+%Y-%m-%d %H:%M:%S"
将系统的当前时间设置为2020年11月1日8点30分
方法一:date -s "20201101 8:30:00"
方法二:date 110108302020
timedatectl命令
timedatectl命令用于设置系统的时间,英文全称为:"time date control"
查看系统时间与时区
timedatectl status
手动进行设置时区为上海(Asia/Shanghai)
timedatectl set-timezone Asia/Shanghai
手动的修改系统日期
timedatectl set-time 2021-05-18
手动修改时间(记得关闭时间同步服务哦)
timedatectl set-time 9:30
创建目录mkdir(make directory)
语法为:
mkdir [-p] [/路径/]目录名
-p 可快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖
-v 显示创建目录的详细过程
统计目录及文件的空间占用情况------du命令
命令格式: du [选项] [目录名]
-h 以K,M,G为单位显示磁盘使用情况,以提高信息的可读性。
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。
删除目录文件
语法格式:
rm -r [-f] 目录文件名
创建普通文件
touch [OPTION]... FILE... (...表示可以接多个选项和文件名)
touch的两种用法:
1、如果文件已存在,更新文件的三个时间, stat 可以查看文件的详细信息
[root@localhost ~]# stat /etc/hostname
2、如果文件不存在,则表示创建文件 创建多个普通文件:
方法1: touch 文件名1 文件名2 文件名3
方法2: touch {文件名1,文件名2,文件名3}
从文件读取数据作为cat命令的输入
[root@master ~]# echo test > file
[root@master ~]# cat < file
test
标准输入重定向 << 并不表示追加,而是表示输入结束的意思,即作为一个结束符
[root@localhost ~]# cat > file3 << end
> hello > end
利用<<右侧的控制字符,我们可以终止输入,不必输入ctrl+d来结束。
echo命令用于在终端设备上输出字符串或变量提取后的值
语法格式为:
echo [字符串] [$变 量]
管道符|
用于两个命令或者多个命令相连接,将管道符左边命令的输出作为管道符右边命令的输入。
tee命令读取数据输出到文件
tee 文件 :读取标准输入的数据,并将其内容输出到文件的同时输出到屏幕(即想把输出保存到 文件中,又想在屏幕上看到内容)
语法:
tee [-ai][--help][--version][文件...]
[root@master test]#tee file
[root@master test]# cat /etc/group | tee /root/file
如何确保 tee 命令追加信息到文件中?
[command] | tee -a [file]
如何让 tee 写入多个文件?
[command] | tee [file1] [file2] [file3]
vim编辑文件
命令模式下的常用按键
(1)光标跳转按键
功能 | 按键 |
---|---|
光标按单个字符移动 | ↑、↓、←、→ |
光标按照单词向后跳转 | w |
光标按照单词向前跳转 | b |
光标跳转至行首 | ^ |
光标跳转至行尾 | $ |
文档首行第一个字符 | gg |
文档最后一行第一个字符 | G |
跳转到指定行 | 行号gg 或者 行号G |
(2)复制、粘贴、删除
功能 | 按键 |
---|---|
删除光标所在行 | dd |
删除从光标处开始的n行 | ndd |
删除光标前至行首字符 | d^ |
删除光标及之后的所有字符 | d$ |
复制光标所在行 | yy |
复制从光标处开始的n行 | nyy |
将缓冲区的内容粘贴到光标所在行的下一行 | p(小写) |
将缓冲区的内容粘贴到光标所在行的上一行 | P(大写) |
撤销操作 | u |
编辑模式
模式切换到编辑模式。按esc键可从编辑模式切换到命令模式。
功能 | 按键 |
---|---|
在光标前插入 | i |
在光标所在行行首第一个非空字符前插入 | I(大写字母i) |
在光标后插入 | a |
在光标所在行末尾插入 | A |
在光标所在行上一行插入 | O(大写字母) |
在光标所在行下一行插入 | o(小写字母) |
删除光标所在字符并进入插入模式 | s(小写字母) |
删除当前行并进入插入模式 | S(大写字母) |
末行模式
按 : 或者 / 可从命令模式切换到末行模式。按esc键可从末行模式切换到命令模式。
(1)查找关键字并替换
功能 | 按键 |
---|---|
从上而下在文件中查找字符串"word"(可按n键定位到下一个匹配的被查找 字符串) | /word |
将当前行中查找到的第一个字符"old"替换为"new" | :s /old/new |
将当前行中查找到的所有字符"old"替换为"new" | :s /old/new/g |
在行号"n1,n2"范围内替换所有的字符串"old"为"new" | :n1,n2 s/old/new/g |
将整个文件内的字符串"old"替换为"new" | :% s/old/new/g |
(2)保存退出
功能 | 按键 |
---|---|
退出vi/vim编辑器,未对文件做任何编辑操作才可退出 | :q |
不保存文档内容,强制退出vi/vim编辑器 | :q! |
保存文件 | :w |
将文件另存为/dir/file | :w /dir/file |
保存文件内容并退出vi/vim编辑器 | :wq 或者 ZZ |
强制保存并退出 | :wq! |
(3)其他操作
功能 | 按键 |
---|---|
在当前文件中读入其他文件内容 | :r /dir/file |
查找含有"word"的行并删除 | :g/word/d |
显示行号 | :set nu |
关闭行号显示 | :set nonu |
删除n1-n2行内容 | :n1,n2 d |
复制n1-n2行到第n行后面 | :n1,n2 co n |
Linux清屏快捷键 Ctrl + L
浏览普通文件内容
命令 | 常用选项 | 说明 |
---|---|---|
cat | -n 对输出内容中的所有行标注行号。-b 对输出内容中的非空行标注行号。 | 查看文本文件的内容 |
head | -num 指定需要显示文件num行的内容。 | 默认查看文档前10行内容 |
tail | -num 指定需要显示文件num行的内容。-f 使tail不停地去读取和显示文件最新的内容, 这样有实 时监视的效果。tail命令更多的用于查看系统日志文件,按【Ctrl+C】 键终止显示和跟踪。 | 默认查看文档后10行内容 |
more | -c 从顶部清屏然后显示文件内容。 | 分页查看文件内容 按Enter键向下逐行滚动 按空格键向下翻一屏、按b键 向上翻一屏 文件末尾时more会自动退出 |
less | -c 从顶部清屏然后显示文件内容。-N 其作用是在每行前添加输出行号。 | 分页查看文件内容 按Enter键向下逐行滚动 按空格键向下翻一屏、按b键 向上翻一屏 按q键退出 |
过滤文件内容显示------grep
功能:在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用
格式: grep 选项...... 关键字符串 文件名称......
选项 | 说明 |
---|---|
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择------仅列出没有"关键词"的行 |
-A | -A 2 搜索时显示匹配到的那一行以及下2行 |
-B | -B 2 搜索时显示匹配到的那一行以及上2行 |
-C | -C 2 搜索时显示匹配到的那一行以及上下2行 |
使用特殊符号进行字符串的匹配
匹配模式 | 说明 |
---|---|
grep h 文件名 | 查找文件里有字符h的行 |
grep ^[q] 文件名 | 匹配以q开始的行 |
grep ^[qf] 文件名 | 匹配以q或者f开头的行 |
grep ^[ ^qf ] 文件名 | 不匹配以q或者f开头的行 |
grep ^[0-9] 文件名 | 匹配以数字开头的行 |
grep q$ 文件名 | 匹配以q结束的行 |
grep ^$ | 过滤空白行 |
grep -r h ./* | 如果要明确搜索当前目录中的子目录有h的行 |
grep -d skip h ./* | 忽略当前目录下的子目录下的普通文件 |
切割显示cut
cut命令用于按列提取文本内容,语法为: cut [选项] 文件名称
下述命令尝试提取出passwd文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容
[root@kongd ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
排序显示sort
sort命令用于对文本内容进行排序显示,语法为: sort [选项] 文件名称
选项 | 作用 |
---|---|
-f | 忽略大小写 |
-b | 忽略缩进与空格 |
-n | 以数值型排序 |
-r | 反向排序 |
-u | 去除重复行 |
-t | 指定间隔符 |
-k | 设置字段范围 |
sort命令执行后默认会按照字母顺序进行排序
[root@kongd ~]# cat fruit.txt
banana
pear
apple
orange
raspaberry
[root@kongd ~]# sort fruit.txt
apple
banana
orange
pear
raspaberry
sort -u参数进行去重操作
[root@kongd ~]# cat sort.txt
Welcome to kongd.com
Red Hat certified
Welcome to kongd.com
Free Linux Lessons
Linux Course
[root@kongd ~]# sort -u sort.txt
Free Linux Lessons
Red Hat certified
Welcome to kongd.com
数字进行排序: sort -n
下面的内容是节选自/etc/passwd文件中前五个字段的内容,并 进行混乱排序后的样子:
[root@kongd ~]# cat user.txt
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon
polkitd:x:998:996:User for polkitd
geoclue:x:997:995:User for geoclue
rtkit:x:172:172:RealtimeKit
pulse:x:171:171:PulseAudio System Daemon
qemu:x:107:107:qemu user
usbmuxd:x:113:113:usbmuxd user
unbound:x:996:991:Unbound DNS resolver
rpc:x:32:32:Rpcbind Daemon
gluster:x:995:990:GlusterFS daemons
不难看出上面其实是五个字段,各个字段之间是用了冒号进行间隔,如果想以第三个字段中的数字作为 排序依据,那么就可以用-t参数指定间隔符,-k参数指定第几列,-n参数进行数字排序来搞定:
[root@kongd ~]# sort -t : -k 3 -n user.txt
rpc:x:32:32:Rpcbind Daemon
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon
qemu:x:107:107:qemu user
usbmuxd:x:113:113:usbmuxd user
pulse:x:171:171:PulseAudio System Daemon
rtkit:x:172:172:RealtimeKit
gluster:x:995:990:GlusterFS daemons
unbound:x:996:991:Unbound DNS resolver
geoclue:x:997:995:User for geoclue
polkitd:x:998:996:User for polkitd
去重显示uniq
uniq命令用于去除文本中连续的重复行,语法为: uniq [选项] 文件名称
[root@kongd ~]# cat uniq.txt
Welcome to kongd.com
Welcome to kongd.com
Welcome to kongd.com
Welcome to kongd.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course
[root@kongd ~]# uniq uniq.txt
Welcome to kongd.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course
[root@master ~]# uniq -c uniq.txt
4 Welcome to kongd.com
1 Red Hat certified
1 Free Linux Lessons
1 Professional guidance
1 Linux Course
替换文件中的字符显示tr
tr 指令从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出。
语法: tr [OPTION]...SET1[SET2]
参数说明:
-c 反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
-d 删除指令字符
-s 缩减连续重复的字符成指定的单个字符
示例:将文件testfile中的小写字母全部转换成大写字母,可使用如下命令:
[root@master ~]#cat testfile |tr a-z A-Z
文本内容统计wc
wc命令用于统计指定文本文件的行数、字数或字节数,语法为: wc [选项] 文件名称
选项 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
在Linux系统中,/etc/passwd是用于保存系统账户信息的文件,要统计当前系统中有多少个用户,可以 使用下面的命令来进行查询,是不是很神奇:
[root@kongd ~]# wc -l /etc/passwd
45 /etc/passwd
复制、移动文件
复制文件或目录
语法: cp [选项] 源文件 目标文件
选项 | 功能 |
---|---|
-a | 通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录 |
-d | 拷贝时保留链接 |
-f | 在覆盖已经存在的目标文件时不提示 |
-i | 在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝 |
-p | 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中 |
-r | 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标 文件必须为一个目录名 |
移动文件或目录
mv命令用于剪切或重命名文件,语法为: mv [选项] 源文件名称 目标文件名称
剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。如果在同一个目录中将某 个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作。
[root@kongd ~]# mv x.log linux.log
[root@kongd ~]# ls
install.log linux.log
查找文件的路径
命令 | 说明 | 示例 |
---|---|---|
whereis | 可以搜索系统命令的可执行文件路径和说明文档 | # whereis ls |
which | which 是搜索系统命令的可执行文件 | #which ls |
locate updatedb | 按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db, 可以使用命令强制更新数据库。 | #locate ls |
find | 可按照文件名、大小、时间、权限、类型、所属者、所属组来 搜索文件 | find [path...] [expression] |
find详解:
find命令默认接的命令是-print,它默认以\n将找到的文件分隔。可以使用-print0来使用\0分 隔,这样就不会分行了。但是一定要注意,-print0针对的是\n转\0,如果查找的文件名本身就含有空 格,则find后-print0仍然会显示空格。
参数 | 作用 |
---|---|
-name | 根据文件basename匹配名称 |
-path | -path可以对文件的dirname+basename进行查找。 |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文 件) |
-mtime [+|-]n | 配修改内容的时间(-4指小于等于4天内的文件名;+4,大于等于5天前的文件 名;4指前4~5那一天的文件) |
-atime [+|-]n | 匹配访问文件的时间 |
-ctime [+|-]n | 匹配修改文件权限的时间 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
---|---|
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所属组的文件 |
-type b/d/c/p/l/f | 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接 文件、文本文件) |
-prune | 忽略某个目录下的文件,需要和-path一起使用 |
-depth | 先从该目录子目录下查找,再查找该目录 |
-maxdepth levels -mindepth levels | 最多查找多少层目录;最少查找多少层目录 |
-delete | 将找到的文件删除,如果是目录只能删除找到的空目录。 |
-exec ...... {}\; | 后面可跟用于进一步处理搜索结果的命令 |
1.按照文件名搜索
[root@localhost ~]# find 路径 [选项] 搜索内容
选项:
-name: 按照文件名搜索
-iname: 按照文件名搜索,不区分文件名大小写
-inum: 按照 inode 号搜索
例:
[root@kongd ~]# find /etc -name "host*" -print
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/avahi/hosts
/etc/hostname
[root@shell ~]# find /etc -path "*ssh/ssh*"
/etc/ssh/ssh_config
/etc/ssh/ssh_config.d
/etc/ssh/ssh_config.d/05-redhat.conf
/etc/ssh/sshd_config
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
从结果中排除目录自身
[root@shell ~]# find /tmp/test ! -path /tmp/test
2.按照文件大小搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-size [+|-]大小: 按照指定大小搜索文件,这里的“+”的意思是搜索比指定大小还要大的文件,
“-”的意思是搜索比指定大小还要小的文件
注意:-size 0可以查找大小为0的普通文件。如果要查找没有任何文件的目录或者空的普通文件可以使用empty
[root@master ~]# find . -size +10M
3.按照修改时间搜索
Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时 间,我们可以按照时间来搜索文件。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-atime [+|-]时间: 按照文件访问时间搜索
-mtime [+|-]时间: 按照文件数据修改时间搜索
-ctime [+|-]时间: 按照文件状态修改时间搜索
-newer file: 把比file修改时间更新的文件列出来
-newerXY:如果所考虑的文件的时间戳X比文件引用的时间戳Y新,则成功。字母X和Y可以是以下任意字
母。
a文件引用的访问时间
B文件引用的出生时间
c索引节点状态更改参考时间
m文件引用的修改时间
t将所指定的参数理解为一个具体的时间值
-5:代表 5 天内修改的文件。
5:代表前 5~6 天那一天修改的文件。
+5:代表 6 天前修改的文件。
4.按照权限搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-perm 权限模式: 查找文件权限刚好等于“权限模式”的文件
-perm -权限模式: 查找文件权限全部包含“权限模式”的文件
-perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件
如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:
[root@kongd ~]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/chage
………………省略部分输出信息………………
5.按照所有者和所属组搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件
-gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件
-user 用户名: 按照用户名查找所有者是指定用户的文件
-group 组名: 按照组名查找所属组是指定用户组的文件
-nouser: 查找没有所有者的文件
6.按照文件类型搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-type d: 查找目录
-type f: 查找普通文件
-type l: 查找软链接文件
7.逻辑运算符
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-a: and 逻辑与
-o: or 逻辑或
-not: not 逻辑非
优先级:与>或>非
8.其他选项
选项 | 说明 |
---|---|
printf | %f是获取basename(去除所有路径前缀),%p是获取路径自身,一般用不上,%P是 获取除了find搜索路径的剩余部分 |
压缩和解压缩
zip和unzip命令
zip: 可以压缩文件和目录,unzip则是解压缩。
语法: zip FILE
语法: unzip FILE
素材准备:
[root@localhost ~]# mkdir /test
[root@localhost ~]# cd /test
[root@localhost test]# for i in {1..5};do echo "test$i" > test$i.txt;done
[root@localhost test]# ls
test1.txt test2.txt test3.txt test4.txt test5.txt
[root@localhost test]# mkdir dir1
[root@localhost test]# cp /etc/fstab dir1/
实例1: 使用zip压缩文件test1.txt
[root@localhost test]# zip test1.zip test1.txt
adding: test1.txt (stored 0%)
[root@localhost test]# ls test1*
test1.txt test1.zip
压缩率为最高压缩test2.txt
[root@localhost test]# zip -9 test2.zip test2.txt
adding: test2.txt (stored 0%)
[root@localhost test]# ls test2*
test2.txt test2.zip
实例2: 将当前目录dir1连同目录下文件一起压缩
[root@localhost test]# zip -r dir1.zip dir1/
adding: dir1/ (stored 0%)
adding: dir1/fstab (deflated 44%)
[root@localhost test]# ls dir1*
dir1.zip
dir1:
fstab
实例3: 向压缩文件中test1.zip中添加test2. txt文件
[root@localhost test]# zip -m test1.zip test2.txt
adding: test2.txt (stored 0%)
实例4: 删除压缩文件中的文件
[root@localhost test]# zip -d test1.zip test2.txt
实例5: 压缩文件时排除某个文件
[root@localhost test]# zip test.zip *.txt -x test1.txt
adding: test3.txt (stored 0%)
adding: test4.txt (stored 0%)
adding: test5.txt (stored 0%)
实例6: 解压文件test2.zip
[root@localhost test]# unzip test2.zip
Archive: test2.zip
extracting: test2.txt
实例7:将压缩文件text.zip在指定目录dir1下解压缩
[root@localhost test]# unzip test.zip -d dir1
Archive: test.zip
extracting: dir1/test3.txt
extracting: dir1/test4.txt
extracting: dir1/test5.txt
实例8: 查看压缩文件目录,但不解压
[root@localhost test]# unzip -v test.zip
Archive: test.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
6 Stored 6 0% 06-17-2017 17:53 4e6f5599 test3.txt
6 Stored 6 0% 06-17-2017 17:53 012ec35e test4.txt
6 Stored 6 0% 06-17-2017 17:53 1835f21f test5.txt
-------- ------- --- -------
18 18 0% 3 files
注:查看压缩过的文本文件内容: zcat、zless 。 zcat 文件名.gz
bzip2、bunzip2命令
bzip2、bunzip2(=bzip2 -d)是更新的Linux压缩工具,比gzip有着更高的压缩率。
bzip2、bunzip2示例如下:
[root@localhost test]# bzip2 man.config //将man.config以bzip2压缩,此时man.config
变成man.config.bz2
[root@localhost test]# bzip2 -9 -c man.config > man.config.bz2 //将man.config用
最佳的压缩比压缩,并保留原本的档案
[root@localhost test]# bzip2 -d man.config.bz2 //将man.config.bz2解压缩,可用
bunzip2取代bzip2 -d
[root@localhost test]#bunzip2 man.config.bz2 //将man.config.bz2解压缩
注:查看压缩过的文件内容: bzcat、bzless 。 bzcat 文件名.bz2
xz、unxz命令
实例1:压缩文件
[root@localhost test]# xz test1.txt
[root@localhost test]# ls test1.txt.xz
test1.txt.xz
实例2:压缩dir1目录下文件
[root@localhost test]# xz dir1/*
[root@localhost test]# ls dir1
fstab.xz test3.txt.xz test4.txt.xz test5.txt.xz
实例3:查看压缩文件内容
[root@localhost test]# xzcat test1.txt.xz
test1
实例4:解压缩(xz -d等价于unxz)
[root@localhost test]# unxz test1.txt.xz
实例5:解压缩目录dir1下文件
[root@localhost test]# xz -d dir1/*
[root@localhost test]# ls dir1
fstab test3.txt test4.txt test5.txt
注:查看压缩过的文件内容: xzcat、xzless 。 xzcat 文件名.xz
tar归档命令
格式: tar [选项] [args]......
选项:任选其一
选项 | 功能 |
---|---|
-c | 创建.tar格式的包文件 |
-x | 释放.tar格式的包文件 |
-t | 查看包中的文件列表 |
必选项:
选项 | 功能 |
---|---|
-f | 用于指定打包文件名。 当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名 当与-x选项一起使用时,则释放该选项指定的tar包文件 |
辅助选项:
选项 | 功能 |
---|---|
-v | 表示在命令执行时显示详细的提示信息 |
-p | 打包时保留文件及目录的权限 |
z | 调用gzip程序,以gzip格式压缩或解压缩文件(.tar.gz) |
-j | 调用bzip2程序,以bzip2格式压缩或解压缩文件(.tar.bz2) |
-J | 使用xz压缩或解压缩文件(.tar.xz),xz的压缩率通常比bzip2更高 |
-C | (大写字母C) 和-x选项一起使用,表示释放包时指定释放的目标路径 |
额外的选项:
#打包时排除某个文件
tar cf 文件名.tar --exclude=路径/文件 路径
注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径
- 创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件
tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名列表……
- 列出包文件中的文件列表
tar t[v]f 包文件名`
- 创建带压缩的包文件,为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不 同的压缩方式
tar czf/-czf 文件名.tar.gz 要打包压缩的目录或文件名……
tar cjf/-cjf 文件名.tar.bz2 要打包压缩的目录或文件名……
tar cJf/-cJf 文件名.tar.xz 要打包压缩的目录或文件名……
- 提取包文件到指定目录
tar xf/-xf/-xzf 文件名.tar.gz [-C 目标路径]
tar xf/-xf/-xjf 文件名.tar.bz2 [-C 目标路径]
tar xf/-xf/-xJf 文件名.tar.xz [-C 目标路径]
Linux 中的特殊符号
特殊符号 | 功能 | 说明 |
---|---|---|
; | 可使用分号分隔多条 命令 | 在一行上输入和执行多条较短的命令,可使用分号来 分隔命令 |
* | 匹配任意零个或者多 个字符 | 不能用于创建文件 |
? | 匹配任意单个字符 | 不能用于创建文件 |
[] | 匹配方括号中的任意 一个字符,表示范围 可以用"-" | 不能用于创建文件 |
[^]或者[!] | 匹配方括号中的任意 一个字符或数字后进 行取反 | 用于查找和删除文件,不用于创建文件 |
{string,string} | 匹配括号中的任意一 个字符串,表示一个 范围时,字符串之间 个".." | 可用于创建、查看、删除文件 |
\ | 使\后面的特殊字符失 效 | 例如:可以在命令行后面加一个\,再按回车键时并 不表示执行该命令,而是表示换行,通过此方式将一 个较长的命令分成多行表达,增强命令的可读性。换 行后系统自动显示提示符 > |
` | 反引号,一般用于引 用命令,执行的时候 反引号里面的命令会 被执行,与$()作用相 同 | |
' | 单引号,将单引号内 的所有内容都原样输 出 | 所有特殊字符在单引号里面都会失去特殊含义 |
" | 双引号,除了几个特 殊字符外,将双引号 内的几乎所有内容都 原样输出 | "$"和"\"以及" ` "在双引号里面仍然保留自己的特殊 含义 |
命令别名
别名是命令的快捷方式。对于需要经常执行,并需要很长时间输入的长命令创建快捷方式很有用。 语法: alias 别名='原命令 [选项]...... [参数]......'
#查看设置的别名
[root@node13 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
……
#删除别名:
[root@node13 ~]#unalias 别名
注意:在命令行中使用alias命令设置的别名仅在该次登入有效,如果重新开启一个 Shell,或者重新登录 系统,则这些alias将无法使用。
命令历史
history 命令可以查阅命令历史记录 ,也可在命令行利用向上或向下光标键来进行查询。
语法: history [选项] [参数]
选项:
number:显示最近number条命令历史
-c:清空当前历史命令
-a [file]:后面没跟文件时,默认将缓冲区中历史命令写入~/.bash_history中
-r [file]:将历史命令文件中的命令读入当前历史命令缓冲区中
-w:将当前历史命令缓冲区命令写入历史命令文件中;
命令行中的其他快捷键:
ctrl+d 输入已结束;也可当做exit
ctrl+c 键盘中断请求,终止当前的命令
Ctrl+a 移动到当前行的开头
Ctrl+e 移动到当前行的结尾
Ctrl+l 清屏==clear
Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身)
Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身)
ctrl+←/→ 光标在命令行中按照单词跳转
引用上一条命令的最后一个参数
方法1:!$
方法2:先按Alt再输入.
方法3:先按Esc在输入.
Linux中用户和用户组的配置文件
文件功能 | 文件名称 |
---|---|
用户账号文件 | /etc/passwd |
用户密码文件 | /etc/shadow |
用户组账号文件 | /etc/group |
用户组密码文件 | /etc/gshadow |
(1)用户账号文件------/etc/passwd
passwd 是一个文本文件,用于定义系统的用户账号,由于所有用户都对passwd有读权限,所以该文件 中只定义用户账号,而不保存口令。
[root@node13 ~]# ll /etc/passwd
-rw-r--r-- 1 root root 2917 May 6 17:44 /etc/passwd
[root@node13 ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
#每行定义一个用户账号信息,每行由7个字段组成,字段之间用“:”分隔,其格式如下:
账号名称:密码:UID:GID:个人资料:主目录:Shell
账号名称:用户登录Linux系统时使用的名称。
密码:以前是以加密格式保存密码的位置,现在密码保存在/etc/shadow文件中,此处只是密码占 位符"x"或"*"。若为"x",说明密码经过了shadow的保护。
UID:用户的标识,是一个数值,用它来区分不同的用户,每个用户都有一个UID数值:
超级用户的UID------0 系统用户的UID------1~999 普通用户的UID------≥1000
GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的GID。
个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。
主目录:类似Windows 的个人目录,通常是/home/username,这里username是用户名,用户 执行"cd~"命令时当前目录会切换到个人主目录。
Shell:定义用户登录后激活的Shell,默认是Bash She
ll
(2)用户密码文件------/etc/shadow
[root@node13 ~]# ll /etc/shadow
---------- 1 root root 3872 May 6 17:44 /etc/shadow
[root@node13 ~]# head -1 /etc/shadow
root:$6$3EZ8vA1hgB3VTWb0$IlamoUyDh1RS.wftgz4qj0kmVrka7Yi6SgIo1aM6eu8nbFM9haOVRTt
NDDfkix8MCugx8p8lufmItgsOsu1rl1:19083:0:99999:7:::
#每行定义了一个用户信息,行中各字段用“:”隔开,其格式如下:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标
志
字段 | 含义 |
---|---|
登录名 | 登录名 |
加密口令 | 使用SHA-512/SHA-256/MD5算法加密后的密码(id,id为1表示md5,5表示sha256,6为sha512),若为空,表示该用户无需密码即可登录,若为"*"表示该账号不 能用于登录系统,若为"!!"表示该账号密码已被锁定 |
最后一次修改时间 | 最近一次更改密码的日期,以距离1970年1月1日的天数表示 |
最小 时间 间隔 | 密码在多少天内不能被修改。默认值为0,表示不限制 |
最大 时间 间隔 | 密码在多少天后必须被修改。默认值为99999,表示不进行限制 |
警告 时间 | 提前多少天警告用户密码将过期,默认值为7天,0表示不提供警告 |
不活 动时 间 | 密码过期多少天后禁用此用户 |
失效 时间 | 密码失效日期,以距离1970年1月1日的天数表示,默认为空,表示永久可用 |
标志 | 保留未用,以便以后发展之用 |
(3)用户组账号文件------/etc/group
系统中的每个组,在/etc/group文件中有一行记录,任何用户均可以读取用户组账户信息配置文件。
[root@node13 ~]# ll /etc/group
-rw-r--r-- 1 root root 1150 May 6 17:44 /etc/group
[root@node13 ~]# head -1 /etc/group
root:x:0: