Linux常见命令总结

发布于:2024-04-19 ⋅ 阅读:(25) ⋅ 点赞:(0)

查看当前linux的发行版信息

cat /etc/redhat-release

linux查看sshd进程的命令

1.ps aux | grep sshd
​
2.systemctl status sshd

在Linux中查看剩余内存

free -m

linux检查主机是否存活的命令是什么

ping -c 4 [主机地址]

查看内核版本

uname -r

查看shell的类型

方法1:cat /etc/shells

方法2:chsh -l

Linux下查看服务程序占用的端口命令

netstat –apn

查看当前默认的shell

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=路径/文件 路径
注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径
  1. 创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件

tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名列表……
  1. 列出包文件中的文件列表

tar t[v]f 包文件名`
  1. 创建带压缩的包文件,为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不 同的压缩方式

tar czf/-czf 文件名.tar.gz 要打包压缩的目录或文件名……
tar cjf/-cjf 文件名.tar.bz2 要打包压缩的目录或文件名……
tar cJf/-cJf 文件名.tar.xz 要打包压缩的目录或文件名……
  1. 提取包文件到指定目录

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 Shell

(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: