Midnight Commander (MC)

Midnight Commander

GNU Midnight Commander 是一个可视化文件管理器,根据 GNU 通用公共许可证获得许可,因此有资格成为自由软件。它是一个功能丰富的全屏文本模式应用程序,允许您复制、移动和删除文件和整个目录树,搜索文件并在子 shell 中运行命令。包括内部查看器和编辑器。

  • 基于通用的文本界面,可以在任何图形环境中的本地控制台或终端仿真器中使用
  • 遵守 GNU/GPL v.2 规则,它是免费和开源软件

安装方法

安装时注意需要 root 权限,非 root 可以使用 sudo 命令或 su 命令,也可以使用访问控制列表调整权限

  • apt: apt-get install mc 适用于 Debian
  • yum: yum install mc 适用于 Red Hat

如果需要进行源码相关内容

# 使用 git 获取源码
git git@github.com:MidnightCommander/mc.git

# 在代理或防火墙设置有限制,可以使用 HTTPS 协议获取
git http://github.com/MidnightCommander/mc.git

基本操作

启动 Midnight Commander

  • 使用只需要在命令行输入 mc 即可调用,使用 mc 路径 可以指定开始路径
  • 退出 MC 的时候更改目录,可以在 ~/.bashrc 文件中配置添加 /usr/lib/mc/mc.sh
  • 进入后 Midnight Commander 界面分为 视图界面命令行界面

键位操作,如果因为虚拟机或远程操作可以使用 Esc+数字 等价 F1, F2, ..., F10 的功能键

  • F1: 就可以跳转到帮助界面
  • F3: 内部文件查看器
  • F4: 内部编辑器
  • F9: 下拉菜单,大体可以理解在 windows 中鼠标的点击
  • F10: 退出
  • Tab: 切换
  • Ctrl+T: 用于多文件操作的标记文件
  • Del: 删除

Midnight Commander 命令行技巧

  • 允许使用 cd、cp、mv 等操作
  • Alt+Tab: 可以自动补全命令或文件名

内部编辑器

  • 选取文本:在需要文本的起点按 F3 进入选取模式,再终点按 F3 会标记起点到终点的文本
  • 粘贴文本:选取文本的基础上,在需要的位置按 F5 即可完成粘贴
  • 剪切文本:选取文本的基础上,在需要的位置按 F6 即可完成剪切

使用虚拟文件系统

Midnight Commander 可以跨网访问文件,像本地使用 SSH 一样来检索远程目录

# 按 F9 + Enter + h 输入下面内容
sh://[user@]machine[:options]/[remote-dir]
  • user: 远程访问的用户名
  • machine: 访问地址
  • options: 端口
  • remote-dir: 远程目录路径

了解更多

  • Midnight Commander 官网
  • 帮助文档
本文转载于网络 如有侵权请联系删除

相关文章

  • 新手建站:使用FTP上传文件到服务器(以FileZilla为例)

    FTP上传方法在《ispCP:域名管理/FTP创建/MySQL数据库使用图文教程》一文中已经顺带讲到了,只是不少朋友很难发现,总是询问,所以站长(www.cmhello.com)只好单独发布文章。常用的FTP工具有CuteFTP、FlashFXP、FileZilla等,前两个是收费软件,最后一个是免费软件,但是大家都可以很快速地找到这些软件的免费版,站长暂且不提供下载渠道了。上面说到的3个FTP工具,站长都使用过,FlashFXP似乎在校园网环境下经常断线,CuteFTP还不错,支持多线程上传下载,这两个都支持直接在FTP上快速地移动文件,FileZilla有人说比较好用,它的自动适应服务器类型方法兼容性很好,如果发现使用前两个不能上传,试试FileZilla一般都可以,但站长发现,似乎FileZilla不支持把文件移动到上一级的文件夹。以上只是站长使用的一点感受,说的不合适,大家多多包涵,到底哪一个好,只有自己亲自试过才知道哦。下面就以FileZilla为例大概说说FTP上传方法:运行FileZilla,打开站点管理器:添加新站点,填写你刚才创建的FTP账号信息:使用你刚才建立的新站

  • C语言万字基础笔记总结(二)

    系列文章链接C语言万字基础笔记总结(一)1、数组的定义格式:类型数组名元素个数如:inti52、访问数组元素格式:数组名下标 如: i0;//访问i数组中第1个元素 i3;//访问i数组中第4个元素注:数组的下标是从0开始的,下标0对应数组第一个元素3、数组的初始化将数组中所有元素初始化为0inta[5]={0}; //事实上,这个只是把第一个元素赋值为0,其余各位是自动初始化为0 inta[5]={1}; //这里就是,第一个元素为1,其余元素为0复制如果是给元组赋予不同的值,用逗号隔开即可inta[5]={1,2,3,4,5};复制也可以只给一部分元素赋值,未被赋值的元素,自动初始化为0inta[5]={1,2,3}; //前三位成功赋值,后两位,自动初始化为0复制也可以指定元素进行赋值,未被赋值的元素自动初始化为0inta[5]={[2]=2,[4]=[4]}; //数组a的第3位被赋值为2,第5位被赋值为4,因为数组的下标是从0开始的!!!复制也可以只给出元素的值,不指定数组的长度(编译器会根据值的个数自动判断数组的长度)inta[]={1,2,3,4,5}复制二、二维数组1、

  • Flink学习笔记(6) -- Flink Window和Time详解

    一、Window(窗口)  聚合事件(比如计数、求和)在流上的工作方式与批处理不同。比如,对流中的所有元素进行计数是不可能的,因为通常流是无限的(无界的)。所以,流上的聚合需要由window来划定范围,比如“计算过去的5分钟”,或者“最后100个元素的和”。 window是一种可以把无限数据切割为有限数据块的手段。 窗口可以是时间驱动的【TimeWindow】(比如:每30秒)或者数据驱动的【CountWindow】(比如:每100个元素)。  tumblingwindows:滚动窗口【没有重叠】  slidingwindows:滑动窗口【有重叠】  sessionwindows:会话窗口二、Time  针对stream数据中的时间,可以分为以下三种:EventTime:事件产生的时间,它通常由事件中的时间戳描述。Ingestiontime:事件进入Flink的时间。ProcessingTime:事件被处理时当前系统的时间。  如果我们想要统计每分钟内接口调用失败的错误日志个数,使用哪个时间才有意义?  Flink中,默认Time类似是ProcessingTime,可以在代码中设置;在

  • 关于 JavaScript 中的 reduce() 方法

    一、什么是reduce()?reduce() 方法对数组中的每个元素执行一个升序执行的 reducer 函数,并将结果汇总为单个返回值constarray1=[1,2,3,4]; constreducer=(accumulator,currentValue)=>accumulator+currentValue; //1+2+3+4 console.log(array1.reduce(reducer)); //输出:10 //5+1+2+3+4 console.log(array1.reduce(reducer,5)); //输出:15复制二、数组中reduce方法的参数1、第一个参数:reducer 函数其中,reducer函数又有四个参数:Accumulator(acc)(累计器)CurrentValue(cur)(当前值)CurrentIndex(idx)(当前索引)SourceArray(src)(源数组)2、第二个参数(可选):initialValue代表传递给函数的初始值//不传第二个参数的情况 varnumbers=[1,2,3,4] functionmyFun

  • 知识点——Java中线程安全问题(共享资源冲突问题)和守护线程

    1.线程安全问题–共享资源能使用问题例如: <<湄公河行动>> 100张票淘票票CGV美团猫眼 三个销售渠道,100张票是一个共享资源!!! 三个销售渠道,可以认为是三个销售线程!!!问题一: 100张票共享资源问题,选什么来保存? 局部变量: 在方法内,如果run方法执行,存在,run方法当前执行完毕,销毁。 每一个线程对象中都有run方法,无法满足共享问题 成员变量: 每一个线程对象中,都有一个对应的成员变量,非共享资源。 静态成员变量: 属于类变量,所有的当前类对象,使用的静态成员变量都是一个,而且一处修改,处处 受影响。【共享资源】问题二: 资源冲突问题线程之间会相互抢占,而且抢占频率很快,有可能会导致一张票卖了三次,也就是资源冲突问题 2.锁所以为了解决这个问题,我们用锁来解决以下锁的是方法,无论谁调用,怎么调用都会锁住2.1同步代码块格式:synchronized(/*锁对象*/){ }特征: 1.synchronized小括号里面的对象是锁对象,并且要求如果是多线程的情况下,锁对象必须是同一个对象。也就是runnable接口实现类对象。 2.syn

  • 搭建LVS-DR负载均衡集群、Keepalived-LVS高可用负载均衡集群

    18.21LVSDR模式搭建准备工作三台机器,三台机器均有公网IP。调度器(director) IP:192.168.8.133realserver1(real1) IP:192.168.8.134realserver2(real2) IP:192.168.8.135VIP:192.168.8.100开始搭建配置director[root@director~]#vim/usr/local/sbin/lvs_dr.sh #!/bin/bash echo1>/proc/sys/net/ipv4/ip_forward #开启端口转发 ipv=/usr/sbin/ipvsadm vip=192.168.8.100 rs1=192.168.8.134 rs2=192.168.8.135 #注意这里的网卡名字 ifdownens33 ifupens33 #在此重启网卡的目的是避免重复设置命令行提供的IP ifconfigens33:2$vipbroadcast$vipnetmask255.255.255.255up #绑定VIP到dir的虚拟网卡ens33:2 routeadd-host$v

  • UIPageViewController使用 分享笔记

    前言由于公司要开发一款小说类阅读APP,其中体验上非常重要的一点便是翻页效果。为了实现翻页效果,我查询了很多资料后选择使用了UIPageViewController。原因很简单,使用方便,功能强大,开发速度快。首先,我们先看看翻页效果图:翻页效果展示图结构在使用UIPageViewController前,我们应该先搞清楚它的层次结构。(这里是我在使用过程中的理解,如有不对,欢迎指出)。pageviewcontroller层次展示图UIPageViewController作为子控制器加载在viewController上。作为文本控制器的容器,且提供翻页的动画效果。创建一个TextViewController,用来显示文本,装入pageViewController中。所以,pageViewController只是提供一个翻页特效的容器,真正显示在界面上的是里面的TextViewController。到这里是我对pageViewController有一个初步的理解。使用1.初始化-(instancetype)initWithTransitionStyle:(UIPageViewControl

  • 关于I/O与并发

    前言由于笔者在之前发布的一文玩转NGINX中提到过I/O复用模型,在此另起一篇文章简述相关技术。什么是I/OI/O输入/输出(Input/Output),分为IO设备和IO接口两个部分。在POSIX兼容的系统上,例如Linux系统[1],I/O操作可以有多种方式,比如DIO(DirectI/O),AIO(AsynchronousI/O,异步I/O),Memory-MappedI/O(内存映射I/O)等,不同的I/O方式有不同的实现方式和性能,在不同的应用中可以按情况选择不同的I/O方式。在传统的网络服务器构建,IO模式按照Blocking/Non-Blocking、Synchronous/Asynchronous两个标准进行分类。其中Blocking与Synchronous基本上一个意思,而NIO与Async的区别在于NIO强调的是Polling(轮询),而Async强调的是Notification(通知)。传统I/O硬盘—>内核缓冲区—>用户缓冲区—>内核socket缓冲区—>协议引擎在一个典型的单进程单线程Socket接口中,阻塞型的接口必须在上一个Sock

  • 七言 朱雀

    秦天四月飞沙黄, 朱雀山茫路亦茫, 今有渝洲故友在, 何须投目那春光。

  • 关于proTable设置列固定,始终没有固定的效果的原因

    使用proTable设置操作列固定 constcolumns:ProColumns<IssueItem>[]=[ { title:'操作', valueType:'option', key:'option', width:120, fixed:'right'//这里设置了固定 }复制 在Protable中 <ProTable<IssueItem> scroll={{x:1300}} columns={columns} actionRef={actionRef} formRef={formRef} columnsState={{ persistenceKey:'pro-table-singe-demos', persistenceType:'localStorage' }} rowKey="id" dateFormatter="string" toolBarRender={()=>[ <Buttonkey="button"icon={<PlusOutlined/>}type="primary"onClick={()=>m

  • 转:循环有序数组查找问题

    循环有序数组查找问题 题目描述:      一个循环有序数组(如:3,4,5,6,7,8,9,0,1,2),不知道其最小值的位置,要查找任一数值的位置。要求算法时间复杂度为log2(n)。 问题分析:     我们可以把循环有序数组分为左右两部分(以mid=(low+high)/2为界),由循环有序数组的特点知,左右两部分必有一部分是有序的,我们可以找出有序的这部分,然后看所查找元素是否在有序部分,若在,则直接对有序部分二分查找,若不在,对无序部分递归调用查找函数。 代码如下:     #include<iostream>     usingnamespacestd;     intbinarySearch(inta[],intlow,inthigh,intvalue)  //二分查找    { &

  • Easytrader踩坑之旅(二)

    快速阅读 用的是THSTrader进行的调试,同花须必须用8.0的。在新的机子重新安装requirements已经调用同花顺查股票余额。 继续昨天的话费。 昨天到最后,虽然显示了余额,但是和自己帐户上面的对不上,今天查了一下代码。发现默认显示是源代码里写的。 安装requirements.txt 今天又换了一台机子安装了一下环境,发现requriements.txt中的这几个包,只有pandas没有安装上。需要直接通过projectinterpreter来安装最新版就可以,其它的几个都可以安装成功。 第一次没安装成功pandas,通过projectinterpreter安装好以后,再次运行requirements中的文件,发现又安装成功了。pandas版本又变成了0.23.0。 pandas经历了第一次安装不上,第二次安装了最新版,第三次又安装回了旧版,究竟是第一次是因为网络原因还是必须安装下最新版引导一次,就不去追究了。毕竟我们要的是结果。 连接客户端。 同花顺客户端必须是V8.0.链接可以用官方提供的直接下载就可以。需要先登陆帐号。把信息同步到xiadan.exe中,

  • SQL Fundamentals || Single-Row Functions || 日期函数date functions

    SQLFundamentals||OracleSQL语言   SQLFundamentals:UsingSingle-RowFunctionstoCustomizeOutput使用单行函数自定义输出 SQLFundamentals||Single-RowFunctions||字符函数characterfunctions SQLFundamentals||Single-RowFunctions||数字函数numberfunctions SQLFundamentals||Single-RowFunctions||日期函数datefunctions SQLFundamentals||Single-RowFunctions||转换函数Conversionfunction SQLFundamentals||Single-RowFunctions||通用函数Generalfunction        日期函数datefunctions Datefunctions-Datearithmeticoperationsreturndateor

  • [SSL]在线检查服务器HTTPS安全

    https://myssl.com/ SSL/TLS安全评估报告   https://www.ssllabs.com/ssltest/ SSLServerTest   HTTPS开启工具(IIS) https://www.nartac.com/Products/IISCrypto/Download IISCrypto 个性签名:做要做好,做到不三不四不如不做。

  • sqlserver 聚合或其他 set 操作消除了 null 值的问题

    警告:聚合或其他SET操作消除了Null值。这个没什么影响,主要看你想要的结果,要是想不出现这个提示,就在聚合之前用isnull处理要聚合的列了。 1. 对于某些特殊sql语句不太好处理的可以在顶部增加语句处理    SETANSI_WARNINGSOFF; 2.在聚合之前用isnull处理要聚合的列,如下:   declare@tabtable(idint)   insertinto@tabvalues(null),(1)   selectmax(isnull(id,0))from@tab

  • cmake打印变量值

    看下面的例子,我们在cmake定义了一个变量“USER_KEY”,并打印此变量值。status表示这是一般的打印信息,我们还可以设置为“ERROR”,表示这是一种错误打印信息。 SET(USER_KEY,"HelloWorld") MESSAGE(STATUS"thisvarkey=${USER_KEY}.")复制   资料:    message—CMake3.0.2Documentation https://cmake.org/cmake/help/v3.0/command/message.html   完。

  • android一个app打开另一个app的指定页面

    一个app打开另一个app的指定页面方法有以下几种      1、通过包名、类名    2、通过intent的action    3、通过Url    方案1、 ComponentNamecomponentName=newComponentName("com.example.bi","com.example.bi.SplashActivity");//这里是包名以及页面类的全称 Intentintent=newIntent(); intent.setComponent(componentName); intent.putExtra("type","110");intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);1.在Activity上下文之外启动Activity需要给Intent设置FLAG_ACTIVITY_NEW_TASK标志,不然会报异常。 2.加了该标

  • Chrome设计文档-多进程资源加载

    原文:Multi-processResourceLoading 背景 浏览器主进程及browserprocess处理所有的网络通信。原因有三点: Browserprocess可以控制每一个renderer进程的网络访问 Browserprocess可以在进程间管理session状态,保持其一致性 Browserprocess可以针对每个host管理最大链接数 概述 作为一个多进程应用,Chrome分为三层。最底层的是webkit库,它主要负责页面渲染工作。之上是渲染进程RendererProcess(简单来说,就是一个tab一个渲染进程)。每一个渲染进程包含一个WebKit实例。而管理这些渲染进程的则是最上层的BrowserProcess。这一层控制者所有的网络访问。 WebKit WebKit中负责拉取数据的对象是ResourceLoader。每一个loader均对应一个ResourceHandle。后者用于执行网络请求。ResourceHandle的头文件在WebKit代码里。我们无意于fork它。幸运的是,ResourceHandle有一个被称为d的成员(ResourceH

  • 共享打印机时需要密码和没有权限使用网络资源

    今天刚重装完系统,装的是windows7,办公室有几台电脑是连我的电脑进行打印的。发现两个问题,一个是提示没有权限使用网络资源,一个需要密码。怎么解决呢? 方法/步骤   设置来宾“Guest”网络访问权限 开始菜单-》在搜索程序和文件框里输入“gpedit.msc”按回车键。或者打开cmd.exe,在里面输入命令:“gpedit.msc”打开组策略。 计算机配置->windows设置-安全设置->本地策略->用户权限分配->拒绝从网络访问这台计算机,如下图所示,打开“拒绝从网络访问这台计算机”,删除“Guest”账号,并点击下面的应用按钮。我这里是已经删除后的。现在是空白的。 设置本地安全网络访问模式 计算机配置->windows设置-安全设置->本地策略->安全选项-》网络访问:本地账户的共享和安全模型,设置为:经典——本地用户以自己的身份验证。 禁用“帐户:使用空密码的本地帐户只允许进行控制台登录” 在安全选项设置,选择“帐户:使用空密码的本地帐户只允许进行控制台登录”,在

  • 学号20192311 实验二 《数据结构与面向对象程序设计》实验报告

    学号20192311《数据结构与面向对象程序设计》实验二报告 课程:《程序设计与数据结构》 班级:1923 姓名:张源峰 学号:20192311 实验教师:王志强 实验日期:2020年10月11日 必修/选修:必修 1.实验内容 (1)编写简单的计算器,完成加减乘除模运算。 (2)要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。 (3)编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html) 2.实验过程及结果 importjava.util.Scanner; publicclassa1{ publicstaticvoidmain(String[]args){ inta,x,b,c; intd=0; Scannerscan=newScanner(System.in); do{ System.out.println("是否继续运算1:是2:否"); a=scan.nextInt(); if(a==1){ System.out.println("选择运算1加法2减法3乘

  • 图数据库学习笔记(一)

    图(Graph) 图论(Graphtheory) 数据库(Database) ●节点,即前面提到的对象或实体:数学中通常称为顶点(vertices),而在本书或图数据库中,比如Neo4j,通常称为节点(nodes)。 ●节点之间的连接:数学中称为边(edges),而本书中称为关系(relationships)。 ●节点和关系相互连接构成一个图:许多重要的度量指标,例如连接到一个节点的边数(称之为度)就可以确定下来。许多其他度量指标也就自然形成。   ●Dijkstra算法:这是一个最有名的算法,可用于计算图中两个节点之间的最短加权路径,图中边上可赋予权重或成本。 ●A*(A-star)算法:Dijkstra算法的一个变种,使用启发式来更有效地预测最短路径搜索。当A*算法发现潜在的图路径时,将其保存到一个带排序的优先队列中作为备选路径段,并计算出路径搜索过程中不同参数条件下过去路径(pastpath)和将来路径(futurepath)可能的开销。 ●PageRank算法   大多数NoSQL数据库的基本理念是面向任务(task-oriented)的数据库管理系统。 除

相关推荐

推荐阅读