草庐IT

Linux【命令篇】—— Linux操作系统常用指令大全

敬 之 2023-04-22 原文

目录

一、关机与重启指令

(1)shutdown - 关机

(2)halt - 关机

(3)reboot - 重启

(4)sync - 将内存的数据同步到磁盘

二、帮助指令

(1)man - 查看某个命令的帮助手册

(2)help - 查看某个命令的帮助信息

三、文件目录类指令

(1)pwd - 显示当前目录的绝对路径

(2)ls - 显示当前路径下的文件和目录

(3)cd - 切换至指定目录

(4)mkdir - 创建目录

(5)rmdir - 删除目录(空目录)

(6)touch - 创建空文件

(7)cp - 拷贝文件或目录到指定文件或目录

(8)rm - 删除文件或目录

(9)mv - 移动文件与目录或重命名

(10)cat - 查看文件内容

(11)more - 文本过滤器

(12)less - 分屏查看文件内容

(13)echo - 输出内容到控制台

(14)head - 显示文件开头部分

(15)tail - 显示文件尾部的部分

(16)> / >> - 输出重定向/追加

(17)ln - 软链接

(18)history - 查看执行过的的历史命令

四、时间日期类指令

(1)date - 显示当前日期、设置日期

(2)cal - 查看日历

五、搜索查找类指令

(1)find - 查找文件

(2)locate - 定位文件路径

(3)which - 定位指令路径

(4)grep - 过滤查找

六、压缩解压类指令

(1)gzip - 压缩文件

(2)gunzip - 解压文件

(3)zip - 压缩文件或目录

(4)unzip - 解压文件或目录

(5)tar - 打包


一、关机与重启指令

(1)shutdown - 关机

语法:shutdown

  • shutdown -h now 【立即关机】
  • shutdown -h 1 【1分钟后关机,shutdown后不填默认一分钟后关机】
  • shutdown -r now 【立即重启】

(2)halt - 关机

(3)reboot - 重启

(4)sync - 将内存的数据同步到磁盘

无论是要关机还是重启,建议先运行 sync 命令将内存数据保存到磁盘。

二、帮助指令

(1)man - 查看某个命令的帮助手册

语法:man 命令或配置文件

  • man ls 【查看 ls 命令的帮助手册】
  • man netstat 【查看 netstat 命令的帮助手册】

(2)help - 查看某个命令的帮助信息

语法:help 命令

  • help cd【查看 cd 命令的相关信息】

三、文件目录类指令

(1)pwd - 显示当前目录的绝对路径

语法:pwd

  • pwd 【查看当前路径】

(2)ls - 显示当前路径下的文件和目录

语法:ls 目录或文件

  • ls 【查看当前路径下所有文件或目录】
  • ls -l 【查看当前路径下所有文件或目录的详细信息】
  • ls -a 【查看当前路径下所有文件或目录,包括隐藏文件】
  • ls -l index 【查看当前路径下 index 下的详细信息】

(3)cd - 切换至指定目录

语法:cd 目录

  • cd /a 【切换到 /a 目录下】
  • cd ~ 【切换到用户主目录】
  • cd - 【切换到上一次访问的目录】
  • cd .. 【切换到当前目录的上一级】

(4)mkdir - 创建目录

语法:mkdir 目录名

  • mkdir index 【创建一个 index 目录(一级)】
  • mkdir -p index/a 【创建 index 目录,其下再创建 a 目录(多级)】

-p 选项用于创建多级目录。

(5)rmdir - 删除目录(空目录)

语法:rmdir 目录名

  • rmdir /home/a 【删除 home 下的 a 目录】 
  • rmdir -rf /home/a 【强制删除 home 下的 a 目录】

rmdir删除的是空目录,目录下有内容时是无法删除的,-rf 则可删除非空目录,慎用。

(6)touch - 创建空文件

语法:touch 文件名

  • touch hello.txt 【创建 hello.txt 空文件】

(7)cp - 拷贝文件或目录到指定文件或目录

语法:cp 源文件 目标文件

  • cp hello.txt a/ 【拷贝 hello.txt 文件到 a 目录下】 
  • cp -r /home/a /b/ 【递归将 home 下的整个 a 目录拷贝到 b 目录下】
  • \cp -r /home/a /b/ 【强制覆盖不提示】

如果连续执行相同的拷贝命令系统会一个一个提示是否覆盖文件内的文件,这时在 cp 前加一个 \ 就可以进行强制覆盖,不提示。

(8)rm - 删除文件或目录

语法:rm 文件或目录

  • rm a.txt 【删除 a.txt 文件】
  • rm -f a.txt 【强制删除 a.txt 文件,不提示】
  • rm -r /home/a 【递归删除整个 a 目录】
  • rm -rf /home/a 【递归删除整个 a 目录,不提示】

(9)mv - 移动文件与目录或重命名

语法:mv 旧文件名 新文件名mv /源目录 /目标目录

  • mv a.txt b.txt 【将 a.txt 重命名为 b.txt】
  • mv a.txt test/ 【移动 a.txt 到 test 目录下】
  • mv abc bcd 【重命名目录 abc 为 bcd】
  • mv abc bcd/ 【将目录 abc 目录到 bcd 下】

重命名的前提是两个文件在同一个目录下。

(10)cat - 查看文件内容

语法:cat 文件

  • cat a.txt 【查看文件 a.txt 的内容】
  • cat -n a.txt 【查看文件 a.txt 的内容,并显示行号】

cat 指令查看文件比 vim 更安全,因为 cat 指令只能查看不能修改。

(11)more - 文本过滤器

语法:more 要查看的文件

  • more a.txt 【查看 a.txt 文件的内容】

more 指令是一个基于 vim 编辑器的文本过滤器,可以以全屏幕的方式按页显示文本文件的内容,且有若干快捷键:

  • space;向下翻一页
  • Enter;向下翻一行
  • q;立即离开more,不再显示文件内容
  • Ctrl+F;向下滚动以一屏
  • Ctrl+B;返回上一屏
  • =;输出当前行的行号
  • :f;输出文件名和当前行的行号

more 指令也可以结合 cat 指令进行使用,可以让文件内容按百分比显示,使用管道指令 | more

  • cat a.txt | more 【查看文件 a.txt 的内容,并以百分比显示】

(12)less - 分屏查看文件内容

语法:less 查看的文件


less 用来分屏查看文件的内容,类似 more 指令但强于 more 指令,支持各种显示终端;less 在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据显示需要来加载内容,效率较高。同样它也有相关快捷键:

  • space;向下翻动一页
  • pagedown;向下翻动一页
  • pageup;向上翻动一页
  • /字符串;向下搜寻字符串,n 向下,N 向上
  • ?字符串;向上搜寻字符串,n 向下,N 向上
  • q;离开 less

(13)echo - 输出内容到控制台

语法:echo 输出内容

  • echo $PATH 【输出环境变量 $PATH】
  • echo "Hello World" 【输出语句“Hello World”】

(14)head - 显示文件开头部分

语法:head 文件

  • head a.txt 【查看 a.txt 文件的前 10 行内容】
  • head -n 5 a.txt 【查看 a.txt 文件的前 5 行内容】

默认情况下 head 显示文件的前十行。

(15)tail - 显示文件尾部的部分

语法:tail 文件

  • tail a.txt 【查看 a.txt 文件的后 10 行内容】
  • tail -n 5 a.txt 【查看 a.txt 文件的后 5 行内容】
  • tail -f a.txt 【查看 a.txt 文件的后 10 行内容,并实时追踪文件更新】

(16)> / >> - 输出重定向/追加

  • cat 文件1 > 文件2 【将文件1的内容覆盖到文件2】
  • ls -l /home > /home/info.txt 【将 /home 下的文件列表写入 info.txt 中】
  • cal >> /time 【将当前日历信息追加到 /time 文件中】

重定向 > 会覆盖之前内容,追加 >> 会将新内容添加到之前内容的末尾。

(17)ln - 软链接

语法:ln -s 源文件 软链接名

  • ln -s /root /myroot 【创建一个软连接 myroot,连接到 /root 目录】
  • rm /myroot 【删除软连接 myroot】

软链接也称符号链接,类似 Windows 中的快捷方式,主要存放了链接其他文件的路径,删除软连接的方式与删除文件相同。

(18)history - 查看执行过的的历史命令

语法:history

  • history 【查看最近所有执行过的指令】
  • history 10 【查看最近执行过的10条指令】
  • !5 【执行历史编号为5的指令】

四、时间日期类指令

(1)date - 显示当前日期、设置日期

语法:datedata -s 时间

  • date 【显示当前时间】
  • date +%Y 【显示当前年份】
  • date +%m 【显示当前月份】
  • date +%d 【显示当前是哪一天】
  • date "+%Y-%m-%d %H:%M:%S" 【显示年月日时分秒】
  • data -s "2022-3-20 11:05:06" 【设置系统时间为...】

(2)cal - 查看日历

语法:cal

  • cal 【显示本月日历】
  • cal 2022 【显示 2022 年日历】

五、搜索查找类指令

(1)find - 查找文件

语法:find 范围 方式 文件

  • find /home -name a.txt 【根据文件名查找 home 下的 a.txt 文件】
  • find /home -user xiaoma 【根据用户查找 home 下用户昵称为 xiaoma 的文件】
  • find / -size 200M 【根据文件大小查找系统中大小为 200M 的文件】
  • find / -size +200M 【查找系统中大于 200M 的文件】

find 指令将从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端。

(2)locate - 定位文件路径

语法:locate 文件

  • updatedb 【创建 locate 数据库,第一次使用 locate指令前必须先创建数据库】
  • locate a.txt 【定位 a.txt 文件的路径】

locate 指令可以快速定位文件路径,利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位文件,无需遍历整个文件系统;但为了保证查询准确度,管理员须定期更新locate时刻。

(3)which - 定位指令路径

语法:which 指令

  • which ls 【检索 ls 指令所在路径】

(4)grep - 过滤查找

语法:grep 查找内容 源文件

  • grep "yes" hello.txt 【查找 hello.txt 文件中 “yes” 所在行】
  • cat hello.txt | grep "yes" 【查找 hello.txt 文件中 “yes” 所在行】
  • cat hello.txt | grep -n "yes" 【查找 hello.txt 文件中 “yes” 所在行并显示行号】

grep 过滤查找常和管道符 | 结合使用,表示将前一个命令的处理结果传递给后面处理。

六、压缩解压类指令

(1)gzip - 压缩文件

语法:gzip 文件

  • gzip hello.txt 【将 hello.txt 文件压缩为 .gz 文件】

(2)gunzip - 解压文件

语法:gunzip 文件.gz

  • gzip hello.txt.gz 【将 hello.txt.gz 文件压缩为 .txt 文件】

(3)zip - 压缩文件或目录

语法:zip xxx.zip 文件或目录

  • zip -r myhome.zip /home/ 【将 home 以及它的子目录压缩为 myhome.zip】

-r 递归压缩,用于压缩目录以及目录下的子文件夹。

(4)unzip - 解压文件或目录

语法:unzip xxx.zip

  • unzip -d /tmp myhome.zip 【将 myhome.zip 解压到 /tmp 目录下】

-d 用于指定解压后文件的存放目录。

(5)tar - 打包

语法:tar xxx.tar.gz 打包的内容

  • tar -zcvf a.tar.gz b.txt c.txt 【将 b.txt 和 c.txt 压缩成 a.tar.gz】
  • tar -zcvf a.tar.gz /home/ 【将 /home 下的文件夹压缩为 a.tar.gz】
  • tar -zxvf a.tar.gz 【将 a.tar.gz 解压到当前目录】
  • tar -zxvf a.tar.gz -C /tmp 【将 a.tar.gz 解压到 /tmp 目录下】

tar 打包后的文件为 .tar.gz 文件。


下期:Linux【实操篇】—— 组管理、权限管理、定时任务调度

有关Linux【命令篇】—— Linux操作系统常用指令大全的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  3. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  4. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  5. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  6. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  7. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  8. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  9. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  10. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

随机推荐