Linux系统命令大全
Linux,Linux Is Not UniX 的递归缩写,一般指GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个遵循POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议站,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
一、Linux目录结构
目录 | 内容 |
/bin | bin是Binary的缩写, 这个目录存放着最经常使用的命令,由系统、系统管理员和用户共享 |
/boot | 这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件 |
/dev | dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的 |
/etc | 大多数重要的系统配置文件都在/etc目录下,该目录包含的数据类似于Windows控制面板中的数据 |
/home | 普通用户的家目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 |
/lib | 库文件,包括系统和用户所需要的各种程序的文件 |
/lost+found | 每个分区在其上目录中都有一个lost+found。故障期间保存的文件在这里 |
/media | linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下 |
/mnt | 外部文件系统的标准挂载点,例如CD-ROM(光驱)或数码相机 |
/opt | 通常包含额外的和第三方软件。这是给主机额外安装的大型应用程序所放置的目录 |
/proc | 包含有关系统资源信息的虚拟文件系统。这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件 |
/root | 该目录为系统管理员,也称作超级权限者的用户家目录。注意根目录 / 和根用户的主目录 /root 之间的区别 |
/sbin | s就是Super User的意思,这里存放的是系统管理员root使用的系统管理程序 |
/tmp | 系统使用的临时空间,在重新启动时清理,所以不要使用它来保存任何工作!该目录对于所有用户都可以访问,不要把重要文件放置于该目录 |
/usr | 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录 |
/var | 用户创建的所有可变文件和临时文件的存储空间,如日志文件(一般是/var/log)、邮件队列、打印假脱机程序区、从Internet下载的文件的临时存储空间,或在刻录CD之前保存它的映像。 |
二、Linux基本命令操作
1.目录操作命令
cd:切换到另一个目录,可以是绝对路径,也可以是相对路径
- cd /home:进入 ‘/home’ 目录
- cd ..:返回上一级目录
- cd ../..:返回上两级目录
- cd /: 返回根目录
- cd -: 返回上次所在的目录
- cd~:切换到当前用户的主目录。
pwd:打印当前所在目录 (print working directory)
ls:列出目录内容
- ls -l: 列出的文件以长格式输出,一个文件显示一行(可简写为ll)
- ls -a: 显示以 “.”开头的文件,“.”开头的为隐藏文件,默认不显示
- ls -h:将文件大小以人类可读的格式显示(如K、M、G)。
- ls -d: 显示目录本身而不显示目录下的文件,默认ls 后面的参数如果是目录,则会显示目录下的文件,如:ls /root
- ls -lh: 长格式输出的文件字节数转换为K,M,G的形式方便人来阅读
- ls -t: 列出的文件按照修改时间的晚和早排序(最近修改的先显示)
- ls -tr: 列出的文件按照修改时间的早和晚排序(最近修改的后显示)
- ls -R: 列出当前目录下的所有文件,如果有目录遍历所有目录及其子目录下的文件
- ls -lSr:查看⽂件和⽬录列表(以⽂件⼤⼩升序查看)
- tree查看⽂件和⽬录的树形结构 (如果没有需要先安装 yum install tree)
- ls -al /proc/pid/exe:通过pid查询程序正在运行的路径
ls -l 长格式输出字段说明
以 -rw-r--r--. 1 root root 46478 8月13 2018 install.log 为例
第一字段第一位:
-rw-r--r--. 1 root root 46478 8月13 2018 install.log
第一位代表文件类型:
1.“-”:代表普通文件
2.“d”:代表目录
3.“l”:链接文件(符号链接;小写的L)或软链接
4.“c”:字符设备文件
5.“b”:块设备文件
6.“s”:套接字文件
7.“p”:命名管道文件
第一字段后9位:
-rw-r--r--. 1 root root 46478 8月13 2018 install.log
代表相关用户、组、其他用户的权限
第二字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
如果文件是普通文件:硬链接的个数(访问该文件的路径数)
dr-xr-xr-x. 25 root root 4096 8月 13 2018 /
如果文件是目录:目录下的一级子目录的个数
第三字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
文件的属主(文件所属的用户名)
第四字段:
-rw-r--r--. 1 root root 46478 8月13 2018 install.log
文件的属组(文件所属的用户组名)
第五字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
文件的字节数(大小)
第六字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
文件最近一次的修改日期
第七字段:
-rw-r--r--. 1 root root 46478 8月 13 2018 install.log
文件名称
Linux绝对路径和相对路径
绝对路径:以根目录“/”开始的路径,表示从Linux目录结构的最顶点算起,特点是路径以“/”开头
相对路径:不以根目录“/”开始的路径,以当前目录作为起始点,特点是不以“/”开头
每个目录下都有”.”和”..”2个目录:
一个点“ . ”代表当前目录,写全了“ ./ ”
二个点“ .. ”代表上一级目录,写全了“ ../ ”
mkdir:创建目录,使用 -p 选项可以级联创建目录
- mkdir <目录名> 创建目录
- mkdir dir1 dir2 同时创建两个目录
- mkdir -p /tmp/dir1/dir2 递归创建目录树
- mkdir -p /home/user/documents/newdir:递归创建目录
rm - :删除文件或目录
常用参数:
- -r:递归删除目录及其内容。
- -f:强制删除文件或目录,不提示确认。
- -i:删除前提示确认。
rmdir:删除空目录,必须是空目录,否则用rm -rf filename删除
- rm -f file1 删除’file1’⽂件
- rmdir dir1 删除’dir1’⽬录
- rm -rf dir1 删除’dir1’⽬录和其内容
- rm -rf dir1 dir2 同时删除两个⽬录及其内容
du:显示目录或文件的磁盘空间使用情况。
du 常用选项
- -h:以人类可读的格式显示,转换字节数为K、M、G的形式,便于阅读
- -s:只显示所有文件字节数总数,显示总计大小。
- -c:显示各目录或文件的总计。
通常用法:du -sh
2.文件操作命令
which:
which 后面的命令字在磁盘的什么位置
例如:which cd、which ls、which date
touch:
创建一个空文件,如果文件已经存在修改文件的修改日期
例如:/root目录下创建aaa、bbb、ccc三个空文件
touch /root/aaa /root/bbb /root/ccc
cp:
1、cp 复制文件
例如:复制 /root/install.log 文件到 /tmp
cp /root/install.log /tmp
例如:复制 /root/install.log 文件到 /tmp并改名为 abc.log
cp /root/install.log /tmp/abc.log
2、cp 复制目录
例如:复制整个 /root 目录到 /tmp
cp -R /root /tmp
例如:复制整个 /root 目录到 /tmp并改名为 abc
cp -R /root /tmp/abc
-a 将文件的特性一起复制
-p 连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i 若目标文件已经存在时,在覆盖时会先询问操作的进行
-r 递归持续复制,用于目录的复制行为
-u 目标文件与源文件有差异时才会复制
-v:显示正在复制的文件,显示复制过程。
-cp dir/* . 复制某目录下的所有文件至当前目录
cp -a dir1 dir2 复制目录
cp -a /temp/dir1 . 复制一个目录至当前目录
mv:
1、mv 移动或重命名文件或目录
例如:移动 /root/install.log.bak 文件到 /tmp
mv /root/install.log.bak /tmp
2、mv 给文件或目录改名
例如:给/tmp下的root目录改名为root1
mv /tmp/root /tmp/root1
-f force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i 若目标文件已经存在,就会询问是否覆盖
-u 若目标文件已经存在,且比目标文件新,才会更新
mv old_dir new_dir 重命名/移动⽬录
rm:
1、rm 删除文件
例如:删除/root/install.log.bak
rm /root/install.log.bak
2、rm 删除目录 (root用户操作一定要小心)
例如:给/tmp下的root1目录
rm -rf /tmp/root1
常用选项:
-r 级联删除目录下的所有文件,递归删除,最常用于目录删除,它是一个非常危险的参数
-f 就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
file:
file 查看文件的类型
3.查看登录用户命名
who:当前用户登录的信息,显示当前登录系统的用户
w:当前用户登录的信息,以什么程序登录的
who am i:显示登陆时的用户名
whoami:显示当前用户名,显示当前用户的用户名
4.文件内容查看命令
cat:
查看文本文件内容,将文本文件内容全部打印到标准输出
-n:显示行号。
cat filename | head -n 3000 | tail -n +1000 显示1000行到3000行
cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000(即显示3000~3999行)
tac:
查看文本文件内容,倒序输出,从最后一行开始反向查看一个文件的内容,按照行号倒序打印文本文件的内容
more:
查看一个长文件的内容,分页显示文件内容,例如:more /root/install.log
默认显示进度百分比
空格往下翻页,b往上翻页,f往下翻页,q退出
less:
分页显示文件内容,例如:less /root/install.log
选项 -m 显示进度百分比
可以用“/”后跟关键字搜索文件内容
空格往下翻页,b往上翻页,f往下翻页,q退出
tail:
查看文件的最后几行内容,默认显示最后10行。查看文件尾部10行,例如:tail /root/install.log
选项-N (N为正整数)可以指定显示末尾N行内容
tail -f /log/msg 实时查看添加到⽂件中的内容
tail -n 2 file1 查看一个文件的最后两行
tail -n +1000 file1 从1000行开始显示,显示1000行以后的
-n:指定显示的行数。
-f:持续监视文件内容的变化,特别适合用于查看实时日志文件的更新。
head:
查看文件的前几行内容,默认显示前10行。查看文件头部10行,例如:head /root/install.log
选项-N (N为正整数)可以指定显示头部N行内容
head -n 2 file1 查看一个文件的前两行
-n:指定显示的行数。
5.系统管理类命令
shutdown:
关机命令
shutdown -h now 立刻关机
shutdown -h +10 "10分钟后关机",每个登录用户收到“10分钟后关机”的消息,并于10分钟后关机
shutdown -h 10 10分钟后关机
shutdown -c 取消关机
shutdown -h 11:00 11:00 关机
shutdown -f now 重启
shutdown -r 10 10分钟后重启
shutdown -r 11:00 定时重启
reboot:重启系统
lscpu:查看系统cpu信息
6.日期时间管理类命令
date:
打印操作系统时钟,显示系统时间
date -s 20190101 按照指定日期重新设定日期和时间
clock:
打印硬件时钟(主板中依靠纽扣电池保存在芯片中的时钟)
clock -s 按照硬件时钟设置操作系统时钟
clock -w按照操作系统时钟设置硬件时钟
三、bash通配符介绍
* | 匹配任意长度的任意字符 |
? | 匹配任意单个字符 |
[] | 匹配指定字符范围内的任意单个字符,简化写法[a-z]不区分大小写 |
[[:upper:]] | 大写字母 |
[[:lower:]] | 小写字母 |
[[:alpha:]] | 大小写所有字母 |
[[:digit:]] | 匹配数字,可以写成[0-9] |
[[:alnum:]] | 字母+数字 |
[[:space:]] | 空格 |
[[:punct:]] | 标点符号 特殊字符 |
[^] | 匹配指定字符范围外的任意单个字符 |
列出a开头的所有文件
ls a*
列出a开头一共3个字母的文件
ls a??
列出三个大写字母文件名的文件
ls [[:upper:]][[:upper:]][[:upper:]]
列出一个字母后跟三个数字的文件
ls [a-z][0-9][0-9][0-9]
列出不以a字母开头后跟三个数字的文件
ls [^a][0-9][0-9][0-9]
拓展:Bash中的组合键
键或组合键 | 功能 |
Ctrl+A | 将光标移动到命令行开头 |
Ctrl+C | 结束正在运行的程序并返回提示符 |
Ctrl+D | 退出当前shell会话,相当于键入exit或logout |
Ctrl+E | 将光标移动到命令行末尾 |
Ctrl+H | Generate backspace character |
Ctrl+L | Clear this terminal |
Ctrl+R | 查询命令历史记录 |
Ctrl+Z | 暂停一个程序 |
ArrowLeft and ArrowRight | 将光标在命令行上向左或向右移动一个位置,这样就可以在其他位置插入字符,而不仅仅是在开头和结尾 |
ArrowUp and ArrowDown | 浏览历史。转到要重复的行,如果需要编辑详细信息,按Enter键以节省时间 |
Shift+PageUp and Shift+PageDown | 浏览终端缓冲区(查看已“滚屏”的文本) |
Tab | 命令或文件名补全;当有多种选择时,系统会发出声音或视觉铃声,如果选择太多,则会询问你是否都想看 |
Tab Tab | 显示文件或命令补全的可能性 |
四、用户和权限管理
Linux是多用户操作系统,通过用户、用户组和权限实现用户认证和系统资源的分配
1.用户组
(1)存放文件:/etc/group
文件中一个组一行记录
一个用户可以属于多个用户组
一个用户组可以包含多个用户
(2)组文件格式,共4个字段
第一字段:组名
第二字段:组密码位
第三字段:gid 组编号
第四字段:以本组作为附加组的用户名,用逗号分隔
新建用户组 groupadd grpname
例如:
groupadd g1
cat /etc/group
删除用户组 groupdel grpname
例如:
groupdel g1
cat /etc/group
查看系统所有组:
cut -d: -f1 /etc/group
修改用户的组:
usermod -g group_name user_name
将用户添加到组:
usermod -aG group_name user_name
修改用户 ss 的登录 Shell、主目录及用户组:
usermod -s /bin/ksh -d /home/codepig –g dev ss
查看 ss 用户所在的组:
groups ss
2.用户
(1)存放文件:/etc/passwd
文件中一个用户一行记录
(2)用户文件格式,共7个字段
第一字段:用户名
第二字段:用户密码位
第三字段:uid 用户编号
第四字段:gid 主组编号
第五字段:用户备注信息
第六字段:家目录位置
第七字段:用户使用shell解释器的位置,若为/sbin/nologin,用户不能登录
例如: linux1:x:1000:1000:linux1:/home/linux1:/bin/bash
创建用户 useradd ss
查看所用系统用户 cut -d: -f1 /etc/passwd
删除用户 userdel -r ss
修改用户的组
usermod -g group_name user_name
将用户添加到组
usermod -aG group_name user_name
修改用户 ss 的登录 Shell、主目录及用户组
usermod -s /bin/ksh -d /home/codepig –g dev ss
查看 ss 用户所在的组
groups ss
切换到另一个用户环境
su user_name
3.用户类型
(1)超级用户root 权限特别大
uid=0,gid=0 生产环境建议不要使用
(2)普通用户
uid>=500 一般权限系统管理,权限有限
(3)程序用户
1<=uid<500 仅仅使用系统服务资源,不能登录系统
(4)判定程序用户能否登录到操作系统
不能登录:shell为/sbin/nologin
可以登录:shell为/bin/bash
4.添加用户
useradd [-u UID] [-g GID] [-d HOME] [-s] [-c] 用户名
-u 自定义UID用户编号,不指定系统自动编号
-g 自定义主组GID组编号或组名,前提是这个组已经存在,若不指定主组系统会创建一个和用户名一样的组作为用户主组
-G 自定义附加组GID组编号或组名,用逗号隔开,前提是这些组已经存在
-d 指定家目录,若不指定默认为/home/用户名
-s 自定义shell,若不指定默认为/bin/bash
-c 用户备注信息,若不指定默认为空
示例:创建wang用户主组为g1,附加组为zhang和root
useradd -u 600 -g g1 -G zhang,root wang
cat /etc/passwd
cat /etc/group
5.查看用户信息 id 用户名
(1)查看当前登录用户信息:id
(2)查看指定用户信息:id zhang、id wang
6.修改用户
usermod [-u UID] [-g GID] [-d HOME] [-s] [-l] 用户名
-l 选项修改用户名
示例:把用户名wang改为wang1, 再把wang1改成wang
7.删除用户
userdel [-r] 用户名
-r选项,在删除用户的同时删除其家目录和相关系统邮件
8.切换用户
su - 用户名
可以添加选项 “-”,会执行要切换用户的相关环境变量
9.给用户设置登录密码
修改当前用户登录密码 passwd (如果普通用户设置密码需要较高密码复杂度)
修改指定用户登录密码 passwd zhang (root用户操作)
10.密码文件
/etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了/etc/shadow文件中。
/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。
存放位置 /etc/shadow 每一行对应一个用户的密码信息,共9字段
字段说明:
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
11.权限
(1)权限类别
权限分为三种,分别是读、写、执行
r (read)、w (write) 、x (execute)
(2)权限作用对象:文件 (Linux一切皆文件)
(3)显示文件的权限:ls -l 或 ll (redhat系列发行版linux,默认为ls -l创建了别名ll)
(4)用户的不拥有某位权限,则使用 “ - ” 占位
例如:r-x 表示读和执行的权限;r--表示只读权限;rw-表示读写权限
(5)Linux使用UGO权限模型进行权限控制
U 代表文件所属用户
G 代表文件所属用户组
O 代表所属用户和所属用户组的用户之外的其他用户
(6)ls -l 文件属性信息第一字段后9位代表权限
9位权限3位1组可以分成3组,分别对应文件的UGO
例如:-rw-rw-r--. 1 wang g1 0 11月 20 14:35 wangfile
文件的所属用户是wang(U),其权限是rw-
文件的所属用户组是g1(G),其权限是rw-
文件的属主wang和g1组的用户以外的其他用户(O),其权限是r--
(7)规定 4 代表 r ;2 代表 w ;1 代表 x;0 代表 -
这样不同的权限组合可以用1个8进制0到7的数字来表示
文件对应UGO的权限可以用3个数字来表示
例如:-rw-rw-r--. 1 wang g1 0 11月 20 14:35 wangfile
其权限为: 6 6 4
(8)修改权限使用chmod命令字
提供作用相同的三种方式
1.赋值法:
chmod u=rwx,g=rw,o= filename
chmod a=rwx filename
2.加减法:
chmod u+r,u-x,g+w,g-x,o+r filename
chmod a+x filename
3.权重法:
chmod 755 filename
chmod 664 filename
chmod 777 filename
chmod 000 filename
(9)可以使用-R选项级联修改目录下的所有文件的权限
例如:修改 /u01 下所有目录及文件的权限为750
chmod -R 750 /u01
(10)修改文件的属主和属组使用chown命令字
只能root用户来做
chown [-R] UserName[{:|.}GroupName] FILENAME
选项-R级联修改目录下的所有文件的属主和属组
例如:修改 /root/install.log 的属主为 zhang ,属组为 g1
chown zhang:g1 /root/install.log
例如:仅修改 /root/install.log 的属主为root,属组不变
chown root: /root/install.log
(11)权限对于目录和非目录文件有所区别
创建目录默认权限为755,普通文件为644
目录至少要有 r 和 x 权限才能正常进入目录
chmod 命令:
-R:递归更改目录及其内容的权限。
ls -lh 显示当前目录所有文件的权限
chmod 777 文件名 修改文件权限(最高权限)
chmod ugo+rwx dir 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r,4 )、写(w,2)和执行(x,1)的权限
chmod go-rwx dir1 删除群组(g)与其他人(o)对目录的读写执行权限
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
chmod u-s /bin/file1` 禁用一个二进制文件的 SUID位
chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
chmod g-s /home/public 禁用一个目录的 SGID 位
chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
chmod o-t /home/public 禁用一个目录的 STIKY 位
chmod +x 文件路径 为所有者、所属组和其他用户添加执行的权限
chmod -x 文件路径 为所有者、所属组和其他用户删除执行的权限
chmod u+x 文件路径 为所有者添加执行的权限
chmod g+x 文件路径 为所属组添加执行的权限
chmod o+x 文件路径 为其他用户添加执行的权限
chmod ug+x 文件路径 为所有者、所属组添加执行的权限
chmod =wx 文件路径 为所有者、所属组和其他用户添加写、执行的权限,取消读权限
chmod ug=wx 文件路径 为所有者、所属组添加写、执行的权限,取消读权限
五、压缩与解压缩命令
1、压缩与解压缩命令 zip unzip
(1)zip 压缩文件或目录
-r 压缩目录
-y 把软链接作为文件压缩,但不压缩软链接所指向的文件
示例:压缩/etc下的所有文件到/tmp下的etc.zip文件中
zip -ry /tmp/etc.zip /etc
(2)unzip解压缩zip压缩的文件
-d 指定解压缩的路径
示例:解压缩/tmp下etc.zip到/root
unzip -d /root /tmp/etc.zip
2、压缩与解压缩命令 gzip gunzip
(1)gzip 压缩文件或目录
-N N为数字1到9,为压缩率,9最高,默认6
-r 压缩目录
默认压缩之后不会保留源文件,源文件变为*.gz格式
示例:压缩/root/install.log文件
gzip /root/install.log
ls /root/install.log*
(2)gunzip解压缩gzip压缩的文件
示例:解压缩/root下install.log.gz
gunzip /root /install.log.gz
3、压缩与解压缩命令 bzip2 bunzip2
(1)bzip2 压缩文件(压缩率比gzip高)
-N N为数字1到9,为压缩率,9最高,默认6
默认压缩之后不会保留源文件,源文件变为*.bz2格式
示例:压缩/root/install.log文件
bzip2 /root/install.log
ls /root/install.log*
(2)bunzip2解压缩bzip2压缩的文件
示例:解压缩/root下install.log.bz2
bunzip2 /root /install.log.bz2
4、归档命令 tar
tar将多个离散文件或目录进行打包为一个普通文件
1.归档
tar 选项 归档文件名 源文件名或目录
2.释放归档
tar 选项 归档文件名 -C 目标目录
3.常用选项
-f | 如果使用tar命令,必须要用-f选项,而且要放到最后面 |
-c | 创建新归档 |
-x | 释放归档 extract |
-z | 使用gzip的方式进行压缩或解压缩 |
-j | 使用bzip2的方式进行压缩或解压缩 |
-v | 归档进度可视化 (verbose) |
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir
压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称
查询:tar -jtv -f filename.tar.bz2
解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
bunzip2 file1.bz2 解压一个叫做 'file1.bz2’的文件
bzip2 file1 压缩一个叫做 ‘file1’ 的文件
gunzip file1.gz 解压一个叫做 'file1.gz’的文件
gzip file1 压缩一个叫做 'file1’的文件
gzip -9 file1 最大程度压缩
rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’
rar x file1.rar 解压rar包
zip file1.zip file1 创建一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
示例1:将/etc整个目录归档为/tmp/etc.tar文件
tar -cvf /tmp/etc.tar /etc
示例2:将/etc整个目录归档为/tmp/etc.tar.gz文件,用gzip压缩文件
tar -zcvf /tmp/etc.tar.gz /etc
示例3:将/etc整个目录归档为/tmp/etc.tar.bz2文件,用bzip2压缩文件
tar -jcvf /tmp/etc.tar.bz2 /etc
示例4:将归档文件/tmp/etc.tar还原到/root目录下
tar -xvf /tmp/etc.tar -C /root
示例5:将归档文件/tmp/etc.tar.gz还原到/root目录下
tar -zxvf /tmp/etc.tar.gz -C /root
示例6:将归档文件/tmp/etc.tar.bz2还原到/root目录下
tar -jxvf /tmp/etc.tar.bz2 -C /root
5.链接命令 ln
ln命令用来给文件或目录创建链接文件,类似于windows系统的快捷方式
-s:创建符号链接(软链接)
-v:可视化
示例:在/root下为目录/var创建软链接link_var
ln -sv /var /root/link_var
ln -s file1 link1: 创建指向⽂件/⽬录的软链接
ln file1 lnk1: 创建指向⽂件/⽬录的物理链接
创建文件 file1.txt 的硬链接 link1 ln file1.txt link1
创建文件 file1.txt 的符号链接 link2 ln -s file1.txt link2
6.测试网络连通性命令 ping
ping命令可以用来测试网络的连通性
-c:次数
-w:等待秒数,优先级高于-c
示例:测试百度网址的连通性,发生4个ping包
ping -c 4 www.baidu.com
示例:测试百度网址的连通性,发生4个ping包,2秒后停止ping
ping -c 4 -w 2 www.baidu.com
7.vi 编辑器 (最常用)
(1)vi三种模式
1.一般模式(normal mode),默认即为一般模式。
2.插入模式(insert mode)。
3.末行模式(last line mode)。
(2)三种模式的切换:
1.一般模式-->插入模式
i:当前光标处输入内容。
I:在当前光标所在行的行首。
a:在当前光标所在处的后面。
A: 在当前光标所在行的行尾输入。
o:在光标所在行的下方新增一行空白行。
O:在光标所在行的上方新增一行空白行。
2.插入模式-->一般模式
使用:ESC键
3.一般模式-->末行模式
使用:“:”(英文状态下)
4.末行模式-->一般模式
使用:ESC键
(3)退出编辑器
末行模式下,输入下述内容可退出:
1. q!:强制退出,不保存并退出。
2. wq:保存修改并退出。
3. x:保存并退出。
(4)vi操作流程
1. 新建或编辑文件:vi filename
2. i或insert键,即可进入插入模式。
3. 编辑内容。
4. ESC键,退出到一般模式。
5. 键入英文“:”进入末行模式,按wq(保存并修改)后回车。
6. 查看编辑内容是否正确:cat filename
(5)拓展
在一般模式下:
d 删除。dd 删除一行
y 复制。yy 复制一行
p 粘贴
x 清除
g 行跳转;gg 行跳转:如10gg,表示跳转到第10行。
/或? 查找
n/N 上下翻
v 可视化模式。可视化模式中,可移动光标选择文本。键入y复制选中文本,键入d删除选中文本,键入v回到一般模式。
u 撤销之前的操作
x,X : 在一行中,x为向后删除一个字符(相当于del键),X为向前删除一个字符(相当于backspace键)
dd : 删除光标所在的那一整行
ndd : n 为数字。从光标开始,删除向下n列
yy : 复制光标所在的那一行
nyy : n为数字。复制光标所在的向下n行
p,P : p 为将已复制的数据粘贴到光标的下一行,P则为贴在光标的上一行
u : 复原前一个操作
CTRL + r : 重做上一个操作
小数点 ‘.’:重复前一个动作
:set number :在每一行设置行标号
:n1,n2 m n3 移动n1-n2行(包括n1,n2)到n3行之下
:n1,n2 co n3 复制n1-n2行(包括n1,n2)到n3行之下
:n1,n2 d 删除n1-n2行(包括n1,n2)行
8.安装应用程序 rpm
redhat、centos、oracle linux使用rpm命令字安装制作为rpm格式的应用程序
(1)rpm命令安装rpm软件包:rpm -i [选项] 包名
rpm命令安装软件包时常用选项(与选项 -i 结合使用)
-v | 显示安装过程中的详细信息 |
-h | 以 # 显示安装进度 |
-U | 升级包(如没安装就安装) |
-F | 升级包(没安装放弃安装) |
--test | 测试能否被安装 try run |
--nodeps | 忽略包之间的依赖关系 |
常用安装命令:rpm -ivh 包名1 包名2 ......
示例:rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm
(2)查询RPM包 :rpm -q[子选项] 包名关键字
a | 已安装的所有软件包 |
i | 查看指定软件的详细信息 |
l | 查询软件包的安装目录 |
f | 查询文件或目录属于哪个程序包安装生成的 |
p | 尚未安装的包做查询操作 |
示例1:查看所有已安装rpm包
rpm -qa
示例2:查看所有已安装rpm包中有没有mysql
rpm -qa | grep mysql
示例3:查看已安装的mysql-libs-5.1.73-7.el6.x86_64包的信息
rpm -qi mysql-libs-5.1.73-7.el6.x86_64
示例4:查看mysql-libs-5.1.73-7.el6.x86_64包中文件安装位置
rpm -ql mysql-libs-5.1.73-7.el6.x86_64
示例5:查看/bin/ls和根目录“/”是由哪些包安装的
rpm -qf /bin/ls
rpm -qf /
示例6:查看安装光盘中mysql-server-5.1.73-7.el6.x86_64.rpm的信息
rpm -qip /media/CentOS_6.8_Final/Packages/mysql-server-5.1.73-7.el6.x86_64.rpm
示例7:查看安装光盘中mysql-5.1.73-7.el6.x86_64.rpm的内容
rpm -qlp /media/CentOS_6.8_Final/Packages/mysql-5.1.73-7.el6.x86_64.rpm
(3)删除RPM包:rpm -e 包名
示例:删除刚刚安装的zsh包
首先需要获得准确完整的包名:rpm -qa | grep zsh
然后删除该包:rpm -e zsh-4.3.11-4.el6.centos.2.x86_64
再次查询确认:rpm -qa | grep zsh
(4)RPM命令安装软件包存在的问题:rpm包和包存在一定的依赖关系
可能的情况:
安装包A,提示需要先安装包B,安装包B,提示先要先装包C,安装包C,提示需要先装包D.......,导致安装过程漫长不顺利
安装包A,提示需要先安装包B,安装包B,提示先要先装包C,安装包C,提示需要先装包A。最后只能包A、B、C一起安装
以上情况导致rpm安装软件过程复杂繁琐,因而后来推出了yum方式安装软件包,解决了包间相互依赖的问题。推荐使用yum方式安装软件包
9.安装应用程序 yum
相对于rpm安装方式yum解决rpm包间依赖关系使安装方便和快捷
安装rpm包时仍然使用rpm
(1)yum原理
仓库配置文件:/etc/yum.repos.d/*.repo
根据*.repo后缀的yum配置文件中指定的RPM包来源构建本地缓存(数据库),包含包间的依赖关系
安装软件包时检查安装包所依赖的相关包,先安装依赖包,最后再装目标软件包
注:网络yum源可以考虑使用网速快的yum源,如:aliyun
(2) yum用法
1.选项:
-y:自动回应 yes 不用手工输入‘Y’
-q:静默模式 不显示包安装进度条等信息
2.安装:yum [选项] install 包1 包2....
3.卸载:yum [选项] remove 包1 包2....
4.更新:yum [选项] update 包1 包2....
5.检查更新:yum check-update
6.查看指定特性(可以是文件) 由哪个程序包提供::yum provides */关键字
7.清除缓存:yum clean all
8.构建缓存:yum makecache
9.模糊搜索:yum search 关键字
10.查看指定包依赖的包关系:yum deplist 包1 包2.....
六、ls的特性--->文件类型
在大多数Linux版本中,ls默认别名为color-ls。该特性允许查看文件类型,而无需使用ls的任何选项。为了实现这一点,每个文件类型都有自己的颜色。
颜色 | 文件类型 |
蓝色 | 目录 |
红色 | 压缩档案 |
白色 | 文本文件 |
粉红色 | 图片 |
蓝绿色 | 链接 |
黄色 | 设备 |
绿色 | 可执行文件 |
闪烁的红色 | 破碎链接 |
在早期,同样的信息是使用后缀显示在每个非标准的文件名。对于单色使用(如打印目录列表)和一般可读性,这个方案仍然在使用:
符号 | 文件类型 |
nothing | 普通文件 |
/ | 目录 |
* | 可执行文件 |
@ | 链接 |
= | socket(套接字) |
| | named pipe(命名管道) |
参考链接:
https://blog.csdn.net/m0_62808124/article/details/127540625
https://blog.csdn.net/qq_43108153/article/details/136230423
https://developer.aliyun.com/article/1622464