Linux命令

Linux系统命令行的含义

例如:[root@localhost  ~] #

root                //用户名,root为超级用户

@                  //分隔符

localhost        //主机名称

~                    //当前所在目录,默认为~,随目录切换而变化

                        ([root@localhost  home] #    为当前所在位置在home目录下)

#                    //表示当前用户为超级用户,普通用户为$,

                        ([admin@localhost ~] $        普通用户admin)

命令的组成

命令        参数名        参数值

例:shutdown -h now

系统操作命令

shutdown

-h        停止系统       

-P        关闭系统并且切断电源

-r        重启系统

-c        取消之前的shutdown计划

-k        发送通知消息而不真正关闭或重启系统

参数‌:

time:设置多久时间后执行shutdown指令

可以是now(立即)、+m(m分钟后)、hh:mm(指定的小时和分钟)。

message:要传送给所有登录用户的信息。

其他参数如

-f(强制关闭或重启,忽略正在运行的进程)、

-t <seconds>(指定倒计时关闭或重启的时间间隔)等。

例:

shutdown -h now        shutdown -P now   立即关机
shutdown -h +10 "System will shutdown in 10 minutes"十分钟后关机并发送消息
 shutdown -h 23:00   在晚上23:00关机
shutdown -r now     立即重启
 shutdown -r +10 "System will reboot in 10 minutes" 十分钟后重启并发送消息
 shutdwon -r 23:00       在晚上23:00关机
shutdown -c         取消设定的shutdown计划
shutdown -k +5 "Shutdown warning" 5分钟后发送警告信息,不实际执行关机或重启
shutdown -f now   强制关闭,忽略正在运行的进程

help

help是一个内置的shell命令,用于显示shell内部命令(也称为builtin命令)的简短描述和使用方法。

例:help cd

--help 是一个常见的命令行选项,用于显示大多数外部命令(即不是shell内置的命令)的使用说明和参数列表。这个选项通常被设计为向用户提供一个快速、简洁的帮助信息,而不需要查阅更详细的手册页。

例:ls --help

man

man命令提供了关于Linux内置命令、系统调用、库函数等的详细文档,包括语法、参数选项、示例和解释‌。

例:man shutdown

su  

例:su admin        切换为admin用户

sudo

sudo是Linux系统中的一个重要命令,它允许普通用户以超级用户(root)的权限执行特定命令‌。

例:$ sudo -u yao vi ~www/index.html  

以 yao ⽤⼾⾝份编辑 home ⽬录下 www ⽬录中 的 index.html ⽂件

exit

退出当前用户

free

Linux下的free命令用于查看系统内存使用情况‌。

功能‌:

  • 显示系统中未使用和已使用的物理内存和swap区总量‌。
  • 提供总内存、已使用内存、剩余内存、缓存等信息‌
-b以字节为单位显示内存使用情况‌
-k以千字节为单位显示内存使用情况‌
-m以兆字节为单位显示内存使用情况‌
-g以吉字节为单位显示内存使用情况‌
-h以人类可读的方式显示内存信息,数字后加单位‌
-s指定刷新间隔,实时刷新内存信息‌
-t显示内存总和列‌

输出信息‌:

  • Mem行:显示内存的使用情况,包括总内存、已使用内存、剩余内存、共享内存、缓存和可用内存‌。
  • Swap行:显示交换空间的使用情况,包括总交换空间、已使用交换空间和剩余交换空间‌。

mount

将硬件设备的文件系统和Linux系统中的文件系统,通过指定目录(挂载点)关联起来,使得用户可以通过访问该目录来使用硬件设备上的文件系统‌。

用法‌:

  • 基本格式‌:mount [选项] 设备名 挂载点‌。
  • 其中,设备名是与包括文件系统的磁盘或分区相关的设备文件,挂载点是一个已存在的目录‌
-t指定文件系统的类型,如ntfsvfat等‌
-o添加挂载选项,如ro(只读)、rw(读写)、noexec(不允许执行二进制文件)等‌
-a挂载/etc/fstab中定义的所有文件系统‌
-n挂载时不将信息写入/etc/mtab文件‌

uname

uname是Linux和类UNIX操作系统中的一个命令,用于显示当前操作系统的相关信息‌。

具体功能包括‌:

  • 显示操作系统名称‌:通过uname -s或不加任何参数,可以显示操作系统的名称,如"Linux"‌。
  • 显示主机名‌:使用uname -n可以显示网络节点的主机名‌。
  • 显示内核版本‌:通过uname -r可以查看内核的发行版本‌。
  • 显示内核发布版本‌:uname -v用于显示内核的版本信息,这是内核编译时固化下来的‌。
  • 显示机器硬件名称‌:uname -m可以显示机器的硬件名称,也即处理器的类型‌。
  • 显示所有信息‌:使用uname -a可以打印出系统的所有相关信息,包括操作系统名称、主机名、内核版本、内核发布版本、机器硬件名称、处理器类型等‌。
  • 此外,uname命令还有其他一些参数,如-p显示处理器类型(与-m相同),-i显示硬件平台,-o显示操作系统等‌

yum

yum提供了丰富的命令行命令,如安装软件、删除软件、升级软件、查询信息、搜索软件等,满足了日常的软件管理需求‌

  • 安装软件‌:yum install package_name‌,用于安装指定的软件包。
  • 卸载软件‌:yum remove package_name‌,用于卸载指定的软件包。
  • 更新软件‌:
    • yum update‌,更新所有已安装的软件包。
    • yum update package_name‌,更新指定的软件包。
  • 检查更新‌:yum check-update‌,检查哪些软件包有可用更新。
  • 搜索软件包‌:yum search package_name‌,根据关键字搜索相关的软件包。
  • 查看软件包信息‌:yum info package_name‌,查看指定软件包的信息。
  • 列出软件包‌:
    • yum list,列出所有可见的软件包。
    • yum list installed‌,列出所有已安装的软件包。
    • yum list available‌,列出所有可安装的软件包。
    • yum list updates‌,列出所有可更新的软件包。
  • 软件组管理‌:
    • yum grouplist‌,列出所有软件组。
    • yum groupinstall group_name‌,安装指定的软件组。
    • yum groupupdate group_name‌,更新指定的软件组。
    • yum groupremove group_name‌,卸载指定的软件组。
  • 生成缓存‌:yum makecache‌,生成元数据缓存,加快后续操作速度

rpm

Linux rpm命令是Red Hat Package Manager的缩写,用于管理Linux系统中的RPM软件包‌。以下是关于rpm命令的详细介绍:

主要功能‌:

  • 安装‌:使用rpm命令可以安装新的RPM软件包‌。
  • 卸载‌:通过rpm命令也可以卸载已安装的RPM软件包‌。
  • 升级‌:rpm命令支持升级现有的RPM软件包到新版本‌。
  • 验证‌:通过rpm命令可以验证已安装的RPM软件包的完整性和正确性‌。
  • 查询‌:rpm命令还提供了强大的查询功能,可以查询系统中已安装的RPM软件包及其详细信息‌。

常用选项‌:

-i安装RPM软件包‌
-e卸载RPM软件包‌1
-U升级RPM软件包‌
-v详细模式,显示更多的输出信息‌
-h显示散列进度(注意:在某些rpm版本中可能不是标准选项)
-q查询RPM软件包‌
-a查询所有已安装的RPM软件包‌

-p

查询指定的RPM软件包文件‌
示例用法 ‌:
安装RPM软件包rpm -ivh package_name.rpm
卸载RPM软件包rpm -e package_name
升级RPM软件包rpm -Uvh package_name.rpm
查询已安装的RPM软件包rpm -qa
查询指定RPM软件包的信息rpm -qi package_name

date

主要功能‌:

  • 显示日期与时间‌:不带任何参数时,显示当前系统的日期和时间‌12。
  • 自定义格式显示‌:通过“+”和格式字符串,可以自定义时间的显示格式,如年-月-日、时:分:秒等‌12。
  • 设置系统时间‌:需要管理员权限,可以设置系统的日期和时间,通常与--set参数一起使用‌35。

常用选项‌:

+%Y显示四位数的年份‌
+%m显示两位数的月份‌
+%d显示两位数的日期‌
+%H显示小时(24小时制)‌
+%M显示分钟‌
+%S显示秒‌
--set设置系统时间,需要管理员权限‌
-d以特定格式显示时间,或进行时间运算‌
示例用法 ‌:
显示当前日期和时间date
以“年-月-日”格式显示当前日期date +%F
以“时:分:秒”格式显示当前时间date +%T
设置系统时间为2024年10月1日12点sudo date --set="20241001 12:00:00"

wget

使⽤ wget 从⽹上下载软件、⾳乐、视频

-O指定下载的文件名‌
-c断点续传‌
-b后台下载‌
-t设置重试下载的次数‌
-P下载到指定目录‌
-r递归下载‌

ftp

ftp IP/hostname         访问 ftp 服务器

mls *.html -                显⽰远程主机上⽂件列表

目录操作命令

cd

切换目录

cd 或 cd \~  切换到当前用户的主目录‌。
cd -  切换到一次所在的目录‌。
cd . 切换到当前目录(实际上没有变化,但可用于脚本或命令中的占位符)
cd .. 切换到父目录,即上一级目录‌
cd  [文件夹名]   

切换到当前目录下的对应文件目录,文件夹不存在则报错

ls

查看目录

ls查看当前目录下的所有文件和目录
ls         -a查看所有的文件和目录,包括隐藏的文件和目录
ls         -l     (ll)以长列表的方式详细显示文件和目录的信息
ls         -lh显示可读的文件大小
ls         -i显示文件的inode号
ls         -t按修改时间排序
ls         -S按文件大小排序
ls         -r倒序显示
ls         -R递归列出子目录
ls         -C按列输出,纵向排序
ls         -d显示目录本身信息
ls         -color以彩色显示文件和目录

mkdir

创建目录

mkdir [目录名]在当前工作目录下创建一个新的子目录,目录名为你指定的名称
mkdir -p [路径/目录名]递归创建目录,如果指定的目录的上级目录不存在,会一并创建
 mkdir -m [权限模式] [目录名]创建并设置新目录的权限

rm

删除文件与目录

-f, --force强制删除,忽略不存在的文件,不提示用户确认‌
-i, --interactive交互式删除,在删除每个文件之前提示用户确认‌
-r, -R, --recursive递归删除目录及其内容‌
-v, --verbose详细模式,显示删除的每个文件的信息‌
-d, --dir仅删除空目录‌,也可用rmdir命令

cp

拷贝目录

  • ‌复制单个文件‌:cp 源文件 目标文件,例如cp file1.txt file2.txt,将file1.txt复制为file2.txt‌12。
  • ‌复制多个文件到目录‌:cp 源文件1 源文件2 ... 目标目录,例如cp file1.txt file2.txt /dir/,将file1.txtfile2.txt复制到目录/dir/中‌1。
  • ‌复制目录‌:需要配合-r-R选项使用,例如cp -r /dir1/ /dir2/,将目录/dir1/及其所有内容递归复制到/dir2/中‌。
-a, --archive归档复制,保留文件的属性
-r, -R, --recursive递归复制目录及其内容‌
-i, --interactive覆盖前提示确认‌

find

搜索目录

-name根据文件名进行搜索,区分大小写‌
-iname根据文件名进行搜索,不区分大小写‌
-size匹配文件的大小,可以使用+或-来指定大于或小于某个大小的文件‌
-mtime匹配文件内容最后修改的时间,以天为单位‌
-atime匹配文件最后访问的时间,以天为单位‌
-ctime匹配文件权限最后改变的时间,以天为单位‌
-perm匹配文件的权限‌
-user匹配文件的所有者‌
-group匹配文件的所属组‌
-type匹配文件的类型,如目录、文本文件等
-exec对搜索到的每个文件执行指定的命令‌
-delete删除搜索到的文件或空目录‌

pwd

pwd命令显示的是当前工作目录的绝对路径,方便用户进行文件操作‌。

-L(逻辑)‌:打印出逻辑工作目录的名称,即包含符号链接的路径‌。

-P(物理)‌:显示不包含符号链接的物理路径,即实际路径‌。

文件操作命令

touch

‌touch命令主要用于创建普通文件或更改文件的时间属性。

创建文件‌:如果指定的文件不存在,touch命令会创建一个新的空文件‌。

修改时间属性‌:可以更改文件的访问时间(atime)和修改时间(mtime),如果文件已存在‌

touch -a filename.txt仅更改文件的访问时间‌
touch -c filename.txt如果文件不存在,则不创建新文件‌
touch -d "2023-04-01 12:00" filename.txt使用指定的字符串来表示时间,而非当前时间,来更新文件的访问和修改时间‌
touch -m filename.txt仅更改文件的修改时间‌
touch -r referencefile.txt targetfile.txt使用另一个文件的时间属性来更新指定文件的时间属性‌
touch -t 202304011200 filename.txt使用指定的时间格式来创建文件或更新文件的时间属性‌

vi(vim)

编辑文件

vim(Vi IMproved)是vi的一个改进版本,由Bram Moolenaar开发。vim保留了vi的所有功能,并添加了许多新特性和改进,包括:

  • 多级撤销‌:vim支持无限级别的撤销和重做。
  • 语法高亮‌:vim可以根据文件的类型自动为代码提供语法高亮,使阅读和理解代码更加容易。
  • 可视化模式‌:vim提供了一个可视化模式,允许用户以更直观的方式选择文本。
  • 插件支持‌:vim支持大量的插件,这些插件可以扩展编辑器的功能,如代码补全、版本控制集成等。
  • 更友好的用户界面‌:vim在保持vi的键盘快捷键的同时,也提供了一些更现代化的用户界面元素,如菜单栏、工具栏等(尽管这些元素在默认的vim配置中可能不是立即可见的)

使用vim

  1. 在命令行中输入vim filename(其中filename是你想要编辑或创建的文件名)来启动vim
  2. 切换模式‌:

    • 使用特定的键(如iao等)从普通模式切换到插入模式以输入文本。
    • Esc键从插入模式或其他模式切换回普通模式。
    • 在普通模式下按vVCtrl+v进入可视模式以选择文本。
    • 在普通模式下按:进入命令行模式以执行命令。
  3. 执行命令‌:

    • 在命令行模式下输入命令(如:w保存文件,:q退出编辑器,:wq保存并退出等)。
  4. 使用快捷键‌:

    • 熟悉并使用vim的快捷键可以大大提高编辑效率。例如,使用hjkl键或箭头键移动光标,使用dd删除整行,使用yy复制整行等。

vi ⽂件名 // 打开需要编辑的⽂件

-- 进⼊后,操作界⾯有三种模式:

命令模式( command mode )、插⼊模式( Insert mode )和底⾏ 模式( last line mode )

命令模式

刚进⼊⽂件就是命令模式,通过⽅向键控制光标位置,

使⽤命令 "dd" 删除当前整⾏

使⽤命令 "/ 字段 " 进⾏查找

按 "i" 在光标所在字符前开始插⼊

按 "a" 在光标所在字符后开始插⼊

按 "o" 在光标所在⾏的下⾯另起⼀新⾏插⼊

按 " : " 进⼊底⾏模式 插⼊模式 此时可以对⽂件内容进⾏编辑,左下⻆会显⽰ "-- 插⼊ --""

按 "ESC" 进⼊底⾏模式

底⾏模式

退出编辑 :q

强制退出: q!

保存并退出: :wq

file

查看文件类型

file命令会返回文件的类型,如文本文件、二进制文件、压缩文件等,并可能包括文件的编码格式、压缩方式以及系统架构等信息‌。

-i显示文件的MIME类型‌
-z对于压缩文件,显示其压缩方式及内部文件的类型‌
-b不显示文件名,仅显示文件类型‌
-L对符号链接文件进行解引用,并显示所指向文件的类型‌

find

find 命令用于在指定目录下查找文件‌。它功能强大,可以根据文件名、类型、大小、时间等多种条件进行搜索。

find 命令的常用选项及功能:‌

       -name PATTERN‌:按文件名模式查找文件,支持通配符12。

    • 示例:find /path -name "*.txt" 查找所有扩展名为 .txt 的文件。
  • -type TYPE‌:按文件类型查找,如 f(文件)、d(目录)等12。

    • 示例:find /path -type d 查找所有目录。
  • -size n‌:按文件大小查找,n 可带单位如 c(字节)、k(KB)等1。

    • 示例:find /path -size +100k 查找大于 100KB 的文件。
  • -mtime n‌:按文件修改时间查找,n 为修改天数1。

    • 示例:find /path -mtime -7 查找最近 7 天内修改的文件。
  • -perm MODE‌:按文件权限查找1。

    • 示例:find /path -perm 644 查找权限为 644 的文件。
  • -exec COMMAND {} ;‌:对查找到的文件执行指定命令1。

    • 示例:find /path -name "*.txt" -exec rm {} \; 删除所有扩展名为 .txt 的文件。
  • -maxdepth n‌:限制搜索深度为 n 层目录1。

    • 示例:find /path -maxdepth 1 -name "*.txt" 只在当前目录下查找 .txt 文件

whereis

whereis 是一个Linux/Unix系统中的命令,用于查找文件的位置‌。具体来说,它能够定位可执行文件、源代码文件、帮助文件(如man手册)在文件系统中的位置‌。

-b只搜索二进制文件的位置‌
-m只搜索帮助文档(如man手册)的位置‌
-s只搜索源码文件的位置‌
-u展示有特殊条目的命令名称,即对于每个明确请求的类型不只有一个条目的命令‌
-B list使用空格分隔的目录列表限制查找二进制文件的范围‌
-M list使用空格分隔的目录列表限制查找手册文件的范围‌
-S list使用空格分隔的目录列表限制查找源文件的范围‌
-f终止目录列表并表示文件名的开始,与-B、-M或-S选项一起使用时,表示后续参数为文件名而非目录‌
-l输出whereis使用的有效查找路径的列表‌

which

which命令会在用户的环境变量PATH所指定的目录路径中,搜索指定的可执行文件,并返回其绝对路径。 which 指令会在环境变量 $PATH 设置的⽬录⾥查找符合条件的⽂件

-a列出所有的匹配路径,而不仅仅是第一个匹配‌
-n <数目>在输出时,限制每个PATH元素的最大字符数‌
-p <路径>添加额外的搜索路径‌
-i忽略大小写‌

文件内容查看命令

cat

查看文件内容‌:cat命令可以显示指定文件的内容,不论文件内容有多少,都会一次性显示‌

-n显示每一行的行号‌
-b仅对非空白行显示行号‌
-s压缩多行空白行到一行‌
-A显示所有不可见字符,包括行尾标记$、制表符^I等,相当于-vET的组合选项‌
-E在每一行的末尾添加$符号‌
-T将制表符显示为^I‌
-v使用可见的ASCII码显示不可见字符‌

more

类似于cat命令,但more会以分页的方式显示文件内容,便于用户逐页阅读‌。

-d显示翻页进度,包括当前页码和已显示内容的百分比
-f不折行,即当一行内容超过终端宽度时,不会换行显示,而是继续在同一行内滚动
-p清除屏幕后才开始显示文件内容,这个选项通常与-f一起使用以避免在翻页时产生不必要的屏幕刷新
-s将多个连续的空行压缩为一行,使文件内容看起来更加紧凑。
-u禁止下划线显示,这在某些终端上可能有用。
-c从屏幕顶部开始显示,而不是从当前光标位置开始。
-n 指定每页显示的行数

more命令运行时,用户可以使用以下交互式命令来控制显示:

空格键翻到下一页
b 或 Ctrl-b翻到上一页
Enter向下滚动一行
q退出more命令
/pattern向前搜索包含指定模式的行
n在搜索模式中,跳到下一个匹配的行
N在搜索模式中,跳到上一个匹配的行
vvi编辑器中打开当前文件(如果系统安装了vi
h 或 ?显示帮助信息

less

less命令在Linux系统中用于分页查看文件内容,与more命令类似,但功能更为强大,允许用户向前和向后浏览文件内容。

-N显示行号‌
-i搜索时忽略大小写差异‌
-S将连续多个空行压缩成一行显示‌
-F实时跟踪文件的变化,对于监控日志文件非常有用‌
-X退出less后保留最后一屏内容,不清空终

交互式键盘命令:

‌less支持丰富的键盘操作,如使用j和k键或上下箭头键逐行滚动内容,使用/键进行搜索,n键查找下一个匹配项等‌

head命令用于显示文件的开头部分‌,默认显示文件的前10行内容。

-n指定显示的行数,如head -n 20 file.txt显示前20行
-c按字节数显示,如head -c 50 file.txt显示前50个字节

tail

‌tail命令用于显示文件的末尾部分‌。

-n指定显示的行数。例如,tail -n 20 file.txt 显示文件最后20行
-f实时追踪文件更新。常用于查看正在增长的日志文件,如tail -f /var/log/syslog
-c按字节数显示文件末尾内容

文件权限

在Linux系统中,文件和目录的权限通常使用三组八进制数来表示,每组数字分别对应文件所有者(用户)、文件所属组(组)以及其他用户的权限。这些八进制数是通过将读(r)、写(w)和执行(x)权限的二进制值相加得到的。

以下是权限和它们对应的八进制数值:

  • 读权限(r):二进制表示为 100,对应的八进制数为 4
  • 写权限(w):二进制表示为 010,对应的八进制数为 2
  • 执行权限(x):二进制表示为 001,对应的八进制数为 1

这些权限可以组合起来表示更复杂的权限设置。例如:

  • 权限 7rwx):二进制表示为 111,即 4 + 2 + 1 = 7
  • 权限 6rw-):二进制表示为 110,即 4 + 2 = 6
  • 权限 5r-x):二进制表示为 101,即 4 + 1 = 5
  • 权限 4r--):二进制表示为 100,即只有读权限。
  • 权限 2-w-):二进制表示为 010,即只有写权限(这种情况较为罕见,因为通常不会只给写权限而不给读权限)。
  • 权限 1--x):二进制表示为 001,即只有执行权限。
  • 权限 0---):二进制表示为 000,即没有任何权限。

在Linux中,你可以使用 ls -l 命令来查看文件和目录的权限。输出的每一行都会显示文件或目录的权限,以及其他相关信息,如所有者、所属组、大小、修改时间等。权限部分通常显示为三组字符,每组三个字符,分别代表用户、组和其他用户的权限。

例:-rwxr-xr-x

这表示文件所有者有读、写和执行权限(rwx),文件所属组有读和执行权限(r-x),其他用户也有读和执行权限(r-x)。如果你将这些权限转换为八进制数,就会得到 755。

第⼀位: '-' 就代表是⽂件, 'd' 代表是⽂件夹

第⼀组三位:拥有者的权限

第⼆组三位:拥有者所在的组,组员的权限

第三组三位:代表的是其他⽤⼾的权限

chmod

‌chmod命令是Linux系统中用于改变文件或目录权限的命令‌。

-R递归更改目录及其子目录内的文件权限‌
-v详细模式,显示更改权限的过程‌

chown

chown命令是Linux系统中用于改变文件或目录拥有者或所属群组的命令‌。

-R递归更改目录及其子目录内的文件所有权‌
-v详细模式,显示更改所有权的过程‌
-f静默模式,抑制警告信息‌
-h仅更改符号链接的所有权,而不是链接指向的文件‌
--reference=FILE参照指定文件的所有者和所属组设置目标文件的所有权‌
--from=OWNER[]仅当文件的所有者和所属组与指定值匹配时才更改所有权‌

chgrp

‌chgrp命令是Linux系统中用于改变文件或目录所属群组的命令。

-R递归更改目录及其子目录内的文件群组
-v详细模式,显示更改群组的过程
-f静默模式,通常用于抑制错误信息
--reference=FILE参照指定文件的群组设置目标文件的群组

文件的打包、解压缩以及安装

使用场景:

  • tar‌:常用于打包多个文件和目录,便于备份和传输,常与gzip或bzip2结合使用进行压缩‌。
  • gzip‌:适用于对单个文件进行压缩,或在与tar结合使用时对打包后的文件进行压缩‌。
  • bzip2‌:适用于对需要高压缩率的文件进行压缩,如日志文件、备份数据等‌。
  • zip‌:适用于需要跨平台传输和压缩的场景,以及需要密码保护压缩文件的场景‌

tar

打包

‌tar是Unix/Linux系统中用于打包和解压文件的命令,tar 与gzip命令结合可以使⽤实现⽂件打包和压缩。

-c, --create创建新的tar文件‌
‌‌-x, --extract, --get从tar文件中解出文件‌
-f, --file=ARCHIVE指定要操作的tar文件名‌
-z, --gzip通过gzip对tar文件进行压缩或解压‌
-j, --bzip2通过bzip2对tar文件进行压缩或解压‌
‌‌-J, --xz通过xz对tar文件进行压缩或解压‌
-v, --verbose详细地列出处理的文件‌
-C解压缩到指定⽬录,注意:要解压缩的⽬录必须存在

使用示例‌:

打包tar -cvf archive.tar /path/to/directory
压缩

tar -zcvf archive.tar.gz /path/to/directory

(使用gzip压缩)‌

解压

tar -xvf archive.tar‌4;tar -zxvf archive.tar.gz

(解压gzip压缩的tar文件)

解压缩到指定路径tar -zxvf 打包⽂件 .tar.gz -C ⽬标路径

zip

‌linux zip压缩命令用于创建ZIP格式的压缩文件‌。

-r递归压缩目录及其子目录,将指定目录下的所有文件和子目录都打包到ZIP文件中‌
-m压缩后从文件系统中删除原文件,相当于把文件移到压缩文件中‌
-v详细模式,显示压缩过程的详细信息‌
-q静默模式,不显示压缩过程‌
-u更新ZIP文件,只添加新的文件和修改过的文件‌
-d从ZIP文件中删除指定的文件‌
-l列出ZIP文件中的文件信息‌
-9使用最高级别的压缩,但压缩速度最慢‌
-P设置密码来保护压缩文件的内容‌

示例:

压缩单个文件zip archive.zip filename
递归压缩目录zip -r archive.zip directory/
压缩多个文件zip archive.zip file1 file2 file
压缩后删除原文件zip -m archive.zip filename
添加密码保护zip -P password archive.zip filename

unzip

‌unzip是Linux中用于解压缩zip格式文件的命令‌。

-d指定解压缩的目标目录‌
-l列出zip文件中的内容,而不实际解压缩文件‌
-o覆盖现有的文件而不提示确认‌
-q静默模式,不显示解压缩过程中的详细输出信息‌
-n不解压已存在的文件‌
-x排除压缩文件中的指定文件或目录‌
-P设置密码来解压缩加密的zip文件‌

bzip2

要压缩一个文件,只需在命令行中输入bzip2,后跟要压缩的文件名,压缩后,原始文件将被删除,并生成一个名为example.txt.bz2的压缩文件‌

-f,--force强制覆盖
-v,--verbose显示详细信息,如压缩进度等‌
-s,--small降低程序执行时的内存使用量‌
-t,--test测试.bz2压缩文件的完整性,但不解压缩它‌
-k,--keep在压缩过程中保留原始文件

bunzip2

解压缩以.bz2为扩展名的文件,恢复文件的原始内容‌。

-f强制覆盖已存在的文件‌
-k解压缩后保留源文件‌
-v显示命令执行的详细过程‌

示例‌:

解压缩文件file.bz2bunzip2 file.bz2
解压缩文件并保留源文件bunzip2 -k file.bz2

apt

apt是advancedPackagingTool,是Linux下的⼀款安装包管理⼯具,可以在终端中⽅便的安装、卸载和更新软件包。

sudo apt install <软件名>用于安装指定的软件包‌
sudo apt update用于更新本地软件包列表,确保安装的是最新版本‌
sudo apt upgrade用于升级所有可升级的软件包‌
sudo apt remove <软件名>用于删除指定的软件包,但保留配置文件‌
sudo apt purge <软件名>用于删除软件包及其配置文件‌
sudo apt install htop查看当前进程排名的软件

创建链接

ln

ln在Linux中是一个用于创建链接的命令。

ln命令可以创建硬链接和符号链接(也称软链接),将文件或目录与另一个位置关联起来‌。

  • 硬链接‌:多个文件名指向同一个物理存储位置的文件副本,共享相同的inode和数据块。修改任一硬链接的内容,其他硬链接都会同步更新。删除原始文件不会影响已存在的硬链接‌12。
  • 符号链接‌:只会在选定位置上生成一个文件的镜像,不会占用磁盘空间。它指向的是原始文件的位置,而非文件本身。修改符号链接指向的文件,符号链接会同步更新;但删除原始文件,符号链接将变为“悬空链接”‌
-s创建符号链接‌
-f强行建立文件或目录的连接,不论文件或目录是否存在‌

示例:

创建硬链接ln 源文件 目标文件
创建符号链接ln -s 源文件 目标文件

文件传输

rz、sz

使⽤rz、sz命令可以实现linux和windows之间的⽂件传输,但要求在windows客⼾端要安装Xshell远程连接⼯具。rz命令和sz命令是⼀对上传与下载的指令。它们的软件包名为lrzsz。

rz中的r意为received(接收),即将⽂件从win本地上传到服务器,为服务器接收⽂件。

sz中的s意为send(发送),输⼊sz时,意为服务器要发送⽂件,既从服务器发送⽂件到本地,或是 说本地从服务器上下载⽂件。

yum install lrzsz -y   安装lrzsz

rz 回⻋后会弹出windows窗⼝,然后选择⽂件

sz [选项] 文件名 将文件下载到本地

sz常用选项

-a

自动应答,传输开始时不提示‌
-b以二进制模式传输文件,确保文件内容不被修改‌
-c传输完成后关闭连接‌
-r接收文件‌
-s发送文件(实际上在sz命令中用于指定下载行为)‌
-y自动回答“yes”,接受所有传输请求‌
-q以静默模式运行,不输出任何提示信息‌

sftp

连接远程主机,上传或下载⽂件。
sftp 172.24.5.12                        连接到远程主机

get a.txt                                     下载 a.txt ⽂件

put a.txt                                     上传 a.txt 到远程主机

scp

scp(secure copy)命令是Linux/Unix系统中用于在不同主机之间进行安全文件传输的命令‌。它基于SSH(Secure Shell)协议,提供了加密的文件传输通道,确保数据在传输过程中的安全性。

scp命令的使用示例

  1. 从本地复制文件到远程‌:

    scp /path/to/local/file.txt username@remote_host:/path/to/remote/directory/

  2. 从远程复制文件到本地

    scp username@remote_host:/path/to/remote/file.txt /path/to/local/directory/

  3. 复制整个目录到远程‌:

    scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory/

  4. 指定端口复制文件到远程

    scp -P 2222 /path/to/local/file.txt username@remote_host:/path/to/remote/directory/

scp命令的常用选项

-r递归复制整个目录
-P port指定远程主机的SSH端口(默认是22)
-q静默模式,不显示传输进度和错误信息
-C启用压缩
-i identity_file指定私钥文件,用于身份验证

rcp

rcp代表“remote file copy”(远程文件拷贝)‌,能够实现在计算机之间拷贝文件或目录。它支持两种格式,第一种用于文件到文件的拷贝,第二种用于将文件或目录拷贝到另一个目录中‌

-r递归地把源目录中的所有内容拷贝到目的目录中‌
-p试图保留源文件的修改时间和模式‌
-k请求rcp获得在指定区域内的远程主机的Kerberos许可‌
-x

rcp test 192.168.128.169:/test         拷⻉当前⽬录下的 test 到 192.168.128.169 /test ⽬录下

rcp root@192.168.128.169:./test /test        复制远程⽬录到本地的 /test 下

系统管理

防火墙操作

centos7以前centos7
查看防火墙状态service iptables statussystemctl status firewalld(.service)
开启防火墙service iptables startsystemctl start firewalld(.service)
关闭防火墙service iptables stopsystemctl stop firewalld(.service)
重启防火墙service iptables restartsystemctl restart firewalld(.service)
永久关闭防火墙chkconfig iptables off
永久打开防火墙chkconfig iptables on
开机启动防火墙systemctl enable firewalld(.service)
开机禁用防火墙systemctl disable firewalld(.service)
查看防火墙是否开机systemctl is-enabled firewalld(.service)

hostnamectl

通过执行hostnamectl命令,可以显示当前系统的主机名、操作系统版本、内核版本、硬件架构等详细信息‌。

改主机名sudo hostnamectl set-hostname <new_hostname>
设置静态主机名

sudo hostnamectl set-static-hostname

<new_static_hostname>

设置图标名称sudo hostnamectl set-icon-name <icon_name>
查看特定主机名hostnamectl命令还可以配合--static--transient--pretty等选项,查看系统的静态主机名、瞬间主机名或灵活主机名‌

ifconfig

查看网络接口信息使用ifconfigifconfig -a命令可以查看系统中所有网络接口的状态信息,包括IP地址、MAC地址、子网掩码、广播地址等‌
启用或禁用网络接口

通过ifconfig [网卡接口] up命令可以启用某个网络接口‌

通过ifconfig [网卡接口] down命令可以禁用某个网络接口‌

配置IP地址使用ifconfig [网卡接口] [IP地址] netmask [子网掩码]命令可以为网卡接口配置IP地址和子网掩码‌
使用 ifconfig 命令修改IP地址,如 sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0

端口操作

netstat

netstat命令主要用于显示网络连接、路由表、接口统计等网络相关信息

-a 或--all显示所有连接和监听端口
-t 或 --tcp仅显示TCP连接
-u 或 --udp仅显示UDP连接
-n 或 --numeric以数字形式显示地址和端口号,不进行域名解析
-p 或 --programs显示与连接关联的进程信息,包括进程ID和进程名称

-r 或 --route

显示路由表信息

-s 或 --statistice

显示网络统计信息,如收发数据包的数量等
-i 或 --interfaces显示网络接口信息
可以使⽤ Linux 命令 netstat 来查询端⼝号。具体命令如下:
netstat -ap | grep < 进程名或 进程 ID>

lsof(List Open Files)命令

lsof命令用于列出当前系统上所有已经打开的文件,包括常规文件、目录、网络套接字等。它是一个非常强大的工具,可以帮助系统管理员了解哪些进程正在使用哪些文件,以及文件的打开方式。

实际上并没有一个直接叫做lsof的命令,这里是在提及lsof命令或者与之相关的功能。

对于网络相关的用途,lsof可以通过特定的选项来过滤出与网络连接相关的信息。例如:

lsof -i显示与网络相关的文件(即套接字)。这包括TCP和UDP连接,以及监听端口等
lsof -iTCP仅显示TCP连接
lsof -iUDP仅显示UDP连接
lsof -i :端口号显示特定端口上的连接

netstat的区别‌:netstat更专注于显示网络连接和统计信息,而lsof则更侧重于显示哪些进程打开了哪些文件,包括网络套接字。两者可以互补使用,以获取更全面的网络信息。

如果你是在寻找一个特定的命令来查看网络连接和套接字,那么lsof -i可能是一个不错的选择。但如果你只是想查看网络连接的状态和统计信息,那么netstat可能更适合你的需求。

ss

ss命令是一个用于查看套接字(socket)统计信息的强大工具。它提供了比传统netstat命令更详细、更快速的网络连接信息。ss命令能够显示所有类型的套接字,包括TCP、UDP、RAW以及UNIX套接字等,并且支持按照不同的过滤条件来显示所需的信息。

-t显示TCP套接字
-u显示UDP套接字
-x显示UNIX套接字
-n不解析服务名称,直接显示端口号
-p显示与套接字关联的进程信息
-s显示套接字统计信息
-a显示所有套接字,包括监听和非监听的
-l仅显示监听的套接字
-r尝试解析主机名
-m显示套接字的内存使用情况
-k显示套接字的内核信息

可以通过grep等命令进一步过滤特定进程的信息,例如:

ss -tunlp | grep 端⼝号

开放端口

开放端口的命令因Linux发行版和使用的防火墙工具而异。以下是几种常见的开放端口命令:

一、ufw(Ubuntu防火墙)

  • 开放指定TCP端口:ufw allow 端口号/tcp
  • 例如,开放22端口:ufw allow 22/tcp

二、firewalld(Red Hat、CentOS等防火墙)

  • 开放指定TCP端口并永久生效:firewall-cmd --zone=public --add-port=端口号/tcp --permanent
  • 例如,开放1935端口:firewall-cmd --zone=public --add-port=1935/tcp --permanent
  • 重新载入配置使规则生效:firewall-cmd --reload

三、iptables(Linux通用防火墙命令)

  • 开放指定TCP端口:iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
  • 例如,开放80端口:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  • 保存设置:service iptables save‌(注意:某些系统可能使用iptables-save命令来保存)

关闭端口

使用iptables关闭端口‌:

示例:要关闭80端口,可以运行sudo iptables -A INPUT -p tcp --dport 80 -j DROP

命令:sudo iptables -A INPUT -p tcp --dport <端口号> -j DROP

使用firewalld关闭端口‌‌:

命令:sudo firewall-cmd --zone=public --remove-port=<端口号>/tcp --permanent

示例:要关闭80端口,并且希望这个设置永久生效,可以运行sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent。之后,需要运行sudo firewall-cmd --reload来重新加载防火墙配置‌

查看进程

ps

ps命令用于查看当前系统中进程的静态快照,即命令执行时刻的进程状态‌

-a显示所有终端下的进程,包括其他用户的进程‌
-A 或-e显示系统中的所有进程‌
-u以用户为中心的格式显示进程信息,提供更详细的进程数据‌
-f显示完整的进程信息,包括进程ID、父进程ID、CPU使用率、内存占用等‌
-l以长格式显示进程信息,包含进程的详细信息及状态等‌
-x显示没有控制终端的进程,这些进程通常在后台运行‌
top

top是Linux系统中用于实时动态查看进程信息和系统资源使用情况的命令。

-b以批处理模式运行,通常与重定向或管道一起使用,将输出保存到文件或另一个命令中‌
-c显示完整的命令行,包括命令名和参数‌
-d设置刷新间隔,单位为秒,默认是5秒‌
-n设置top命令显示更新的次数,达到次数后top会退出‌
-u只显示指定用户的进程‌
-p只显示指定进程ID的信息,可以指定多个PID,用逗号分隔‌

结束进程

使用kill命令

  • 基本用法‌:kill [信号] PID,其中PID是进程ID,信号默认为SIGTERM(15),请求进程正常退出‌。
  • 强制终止‌:若进程不响应SIGTERM,可使用SIGKILL信号强制终止,命令为kill -9 PID。

使用pkill命令

  • 根据进程名终止‌:pkill [信号] process_name,其中process_name是进程名称,信号默认为SIGTERM‌。
  • 强制终止进程‌:使用pkill -9 process_name可以强制终止所有名称为指定名称的进程‌

使用killall命令‌:killall process_name,删除所有指定名称的进程‌

ping

ping是一个计算机网络管理应用,主要用于测试网络连接‌。

其主要功能和特点包括‌:

  • 确认主机可达性‌:通过向特定的目的主机发送ICMP Echo请求报文,并根据回复的ICMP回显应答消息,测试目的站是否可达‌。
  • 检测网络状态‌:可以获取连接的丢包率和平均往返时间等有关状态信息,帮助判断TCP/IP参数是否设置正确,以及网络是否通畅‌。
  • 多种参数设置‌:支持-t持续发送请求,-n指定发送次数,-l设置数据包大小,-a解析主机名等参数,以满足不同测试需求‌。
  • 高级用法‌:如批量ping测试、路由跟踪等,可进一步用于网络故障排查和性能分析‌。

ping IP

检查本地网卡:ping 127.0.0.1

du

Linux du命令也是查看使⽤空间的,但是与df命令不同的是Linuxdu命令是对⽂件和⽬录磁盘使⽤的 空间的查看,还是和df命令有⼀些区别的。

命令格式:

        du [ 选项 ]   [ ⽂件 ]

-a 或 -all显⽰⽬录中个别⽂件的⼤⼩
-b 或-bytes显⽰⽬录或⽂件⼤⼩时,以 byte 为单位
-c 或 --total除了显⽰个别⽬录或⽂件的⼤⼩外,同时也显⽰所有⽬录或⽂件的总和

-k 或 --kilobytes

以 KB(1024bytes) 为单位输出

-m 或 --megabytes

以 MB 为单位输出

-s 或 --summarize

仅显⽰总计,只列出最后加总的值

-h 或 --human-readable

以 K , M , G 为单位,提⾼信息的可读性
-x 或--one-file-xystem以⼀开始处理时的⽂件系统为准,若遇上其它不同的⽂件系统⽬录则略 过
-L< 符号链接 > 或--dereference< 符号链接 >显⽰选项中所指定符号链接的源⽂件⼤⼩
-S 或--separate-dirs显⽰个别⽬录的⼤⼩时,并不含其⼦⽬录的⼤⼩
-X< ⽂件 > 或--exclude-from=< ⽂件 >在 < ⽂件 > 指定⽬录或⽂件
--exclude=< ⽬录或⽂件 >略过指定的⽬录或⽂件
-D 或--dereference-args显⽰指定符号链接的源⽂件⼤⼩
-H 或--si 与-h参数相同,但是 K , M , G 是以 1000 为换算单位
-l 或--count-links重复计算硬件链接的⽂件

df

df 命令用于显示磁盘的使用情况‌,包括文件系统、已用空间、可用空间、使用百分比以及挂载点等信息‌。它是Linux系统中常用的磁盘管理工具之一。

-a 或 --all显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统‌
-h 或 --human-readable以人类易读的格式(如KB、MB、GB)显示磁盘使用情况,提高信息的可读性‌
-T显示文件系统类型‌
-i显示i节点信息,而不是磁盘块‌
-t TYPE显示指定类型的文件系统的磁盘空间使用情况‌
-x TYPE列出不是某一指定类型文件系统的磁盘空间使用情况‌
-l 或 --local仅显示本地文件系统的磁盘使用情况‌
-B SIZE 或 --block-size=SIZE按指定单位来打印大小信息‌

grep

grep 是一个在文本中搜索特定模式的命令行工具。

grep 的主要功能

  • 搜索文本‌:grep 可以在文件或文本流中搜索与指定模式(通常是正则表达式)匹配的行。
  • 输出匹配行‌:当找到匹配的行时,grep 会将这些行输出到标准输出(通常是屏幕)。
  • 支持多种选项‌:grep 提供了丰富的选项,允许用户定制搜索行为,如忽略大小写、显示行号、递归搜索目录等。
-i忽略大小写。在搜索时不区分大小写字母
-v反转匹配。显示不包含匹配模式的行
-r 或 -R递归搜索。在指定目录及其子目录中搜索匹配的文件
-n显示行号。在输出的每行前显示该行在文件中的行号
-l只显示文件名。列出包含匹配模式的文件名,而不显示匹配的行
-L显示不匹配的文件名。列出不包含匹配模式的文件名
-c算匹配的行数。只输出匹配到的行数,而不是匹配的行本身
-e指定多个搜索模式。允许在一次grep调用中使用多个搜索模式
--f从文件中读取模式。指定一个包含搜索模式的文件,grep 会从该文件中读取模式并进行搜索
-o只输出匹配的部分。不显示整行,只显示与模式匹配的部分

用户权限相关命令

组管理

创建组和删除组都要通过sudo执行

序号命令作用
1groupadd 组名添加组
2groupdel 组名删除组
3cat etc/group确认组信息
4chgrp -R 组名 文件/目录名递归修改文件/目录的所属组

组信息保存在/etc/group 文件中。

创建用户/ 设置密码/删除用户

序号命令作用说明
1useradd -m -g 组 新建用户名添加新用户

-m 自动建立用户家目录

-g 指定用户所在的组,否则会建立一个同名的组

2passwd 用户名设置用户密码如果是普通用户,直接用passwd可以修改自己的账户密码
3userdel -r 用户名删除用户-r 选项会自动删除用户家目录
4cat etc/passwd | grep 用户名确认用户信息新建用户后,用户信息会保存在etc/passwd 文件中

查看用户信息

命令作用
id [用户名] 查看用户UID和GID信息
who查看当前所有登录的用户信息
whoami查看当前登录用户的账户名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值