Linux的文本编辑器vim功能不仅强大, 还支持安装各种插件, 但是插件的安装一直是让小伙伴们头疼的问题。下面为大家介绍一个快速安装插件的方法,这是github上的一个开源项目, 基于脚本一键安装, 下面是这个项目里README中的相关描述:
vimplus项目的github地址: https://github.com/chxuan/vimplus
由于防火墙原因,该插件在安装过程中需要搭梯子,否则可能会导致一些文件无法下载的情况。在本文末尾为大家同了易总这种的解决方案,没有版本控的小伙伴可以参考(其实什么版本都一样用)
1. 安装1.1 Mac OS X安装HomeBrew1/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装vimplus123git clone https://github.com/chxuan/vimplus.git ~/.vimpluscd ~/.vimplus./install.sh ...
Linux
未读1. 添加新用户
我们在Linux系统中经常需要根据不同的需求创建对应的新用户, 但是新用户作为一个普通用户, 权限是非常有限的, 默认不能够使用管理员权限执行某些管理员才能执行的命令, 给大家演示一下操作步骤:
12345678910111213141516171819202122232425# 添加新用户 sanji[root@VM-8-14-centos ~]# adduser sanji# 给新用户 sanji 设置一个密码[root@VM-8-14-centos ~]# passwd sanjiChanging password for user sanji.New password: Retype new password: passwd: all authentication tokens updated successfully.# 切换到 sanji 用户[root@VM-8-14-centos ~]# su - sanji# 让 sanji 用户执行一个只有管理员才有权限执行的操作, 因此需要在命令前加 sudo[sanji@VM-8-14-centos ~]$ ...
在使用Linux系统的时候, 我们经常会需要查找某些文件,但是大多数情况下我们并不能确定这些文件的具体位置,这样的话就非常浪费我们的时间。Linux为我们提供了很多的用于文件搜索的命令, 如果需求比较简单可以使用 locate,which,whereis 来完成搜索, 如果需求复杂可以使用 find, grep进行搜索。其中 which在前边已经介绍过了, 使用方法和功能就直接略过了, whereis局限性太大, 不常用这里也就不介绍了。
1. find
find是Linux中一个搜索功能非常强大的工具, 它的主要功能是根据文件的属性, 查找对应的磁盘文件, 比如说我们常用的一些属性 文件名, 文件类型, 文件大小, 文件的目录深度 等, 下面基于这些常用数据来讲解一些具体的使用方法。
如果想用通过属性对文件进行搜索, 只需要指定出属性对应的参数就可以了, 下面将依次进行介绍。
1.1 文件名 (-name)
根据文件名进行搜索有两种方式: 精确查询和模糊查询。关于模糊查询必须要使用对应的通配符,最常用的有两个, 分别为 * 和 ?。其中 * 可以匹配零个或者多个字符, ?用于匹 ...
不管是在Linux还是其他操作系统中,关于数据的压缩和解压缩操作是经常被用到的。由于在windows平台文件的相关操作被傻瓜化了,到了Linux平台让好多小伙伴感觉有点束手无策,本篇文章中主要为大家讲解基于Linux的常用压缩包操作,格式包含:tar.gz, .tgz, .tar.bz2, .zip, .rar, .tar.xz。
1. tar在Linux操作系统中默认自带两个原始的压缩工具分别是 gzip和bzip2, 但是它们都有先天的缺陷, 不能打包压缩文件, 每个文件都会生成一个单独的压缩包, 并且压缩之后不会保留原文件, 这是一件叔能忍婶也不能忍的事情。
Linux中自带一个打包工具,叫做tar, 默认情况下该工具是不能进行压缩操作的,在这种情况下tar和gzip, bzip2就联姻了, 各自发挥各自的优势, Linux下最强大的打包压缩工具至此诞生。
我们在使用tar进行压缩和解压缩的时候, 只需要指定相对用的参数, 在其内部就会调用对应的压缩工具gzip或者bzip2完成指定的操作。
1.1 压缩 (.tar.gz .tar.bz2 .tgz)
如果使用tar完成文件压 ...
1. 切换用户
Linux是一个多用户的操作系统, 可以同时登陆多个用户, 因此很多时候需要在多个用户之间切换, 用户切换需要使用su或者su -。使用su只切换用户, 当前的工作目录不会变化, 但是使用 su -不仅会切换用户也会切换工作目录, 工作目录切换为当前用户的家目录。
从用户A切换到用户B, 如果还想再切换回用户A,可以直接使用 exit。
1234567891011121314151617# 只切换用户, 工作目录不变$ su 用户名# 举例:robin@OS:~/Linux$ su luffyPassword: # 需要输入luffy用户的密码luffy@OS:/home/robin/Linux$ # 工作目录不变# 切换用户和工作目录, 会自动跳转到当前用户的家目录中$ su - 用户名# 举例:robin@OS:~/Linux$ su - luffyPassword: # 需要输入luffy用户的密码luffy@OS:~$ pwd/home/luffy # 工作目录变成了luffy的家目录# 回到原来的用 ...
1. cd 命令
在Linux终端中如果想要进行工作路径的切换, 需要使用cd命令。在进行目录的切换的时候, 我们可以使用相对路径也可以使用绝对路径。
进入指定目录
1$ cd 目录名
目录名: 使用相对路径/绝对路径都可以, 该路径必须是一个有效路径
特殊的目录:
..: 表示当前目录的上一级目录, 使用cd .. 或者 cd ../都可以
. : 表示当前目录, 使用 .或者./都可以, cd .不会切换目录
进入家目录
每个用户(普通用户和root)都有一个属于自己的目录, 比如:
robin是普通用户, 家目录: /home/robin
luffy是用户, 家目录: /home/luffy
root是管理员用户, 家目录: /root
按照上边的格式来表示家目录书写起来比较麻烦, 有一种相对简单的写法就是使用 ~ 表示。如果是使用cd命令切换到家目录, 后边可以什么路径都不加, 这样也可以进入到当前用户的家目录。综上所述也就是通过cd进入到当前用户的家目录一共有三种不同的方式。
1 ...
Linux
未读1. Linux介绍1.1 Linux的诞生
1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段(GNU工程从1984年起就在做这件事),没有任何可用性,实质上也没能开发出完整的GNU操作系统。
也是这一年, Linux诞生了, Linux 是 UNIX 操作系统的一个克隆系统, 但是Linux是开源的。 那时候它只是一个系统内核, 没有与之配套的应用软件,这时候 Linux 和 GNU一拍即合, 就有了我们现在使用的操作系统,GNU奠定了Linux用户基础和开发环境。
Linux时间线
1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。
1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。
1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将 bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell软件了。
1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布L ...
文章中主要介绍了Qt中常用的容器控件, 包括: Widget, Frame, Group Box, Scroll Area, Tool Box, Tab Widget, Stacked Widget。 关于这些控件的使用除了文字描述、代码演示, 还有相关的视频讲解,赶紧给自己充电吧…
1. QWidget
关于QWidget在前面的章节中已经介绍过了, 这个类是所有窗口类的父类, 可以作为独立窗口使用, 也可以内嵌到其它窗口中使用。Qt中的所有控件都属于窗口类, 因此这个类也是所有控件类的基类。如果一个窗口中还有子窗口, 为了让子窗口有序排列, 这时候我们可以选择一个QWidget类型的容器, 将子窗口放到里边, 然后再给这个QWidget类型窗口进行布局操作。在这里给大家介绍一下关于这个类的一些属性,因为这个类是所有窗口类的基类,因此相关属性比较多,详细讲解可以观看视频。
关于这些属性大部分都有对应的API函数, 在属性名前加 set即可, 大家可以自己从 QWidget这个类里边搜索, 并仔细阅读关于这些函数的参数介绍。
在Qt中我们除了使用QWidget类型窗口作为容器 ...
文章中主要介绍了Qt中常用的按钮控件, 包括: QAbstractButton, QPushButton, QToolButton, QRadioButton, QCheckBox。 关于这些控件的使用除了文字描述、代码演示, 还有相关的视频讲解,赶紧给自己充电吧…
1. 按钮基类 QAbstractButton
在QT中为我们提供了可以直接使用的按钮控件, 如下图。这些按钮种类虽然繁多, 但是它们都拥有相同的父类 QAbstractButton。这些子类按钮的大部分属性都是从这个基类继承的,因此搞明白这个类为我们提供的相关功能还是非常重要的。其中Dialog Button Box比较特殊不是一个单一控件, 它是两个QPushButton的组合并且水平排列, 这个不能作为一个新控件来研究。
这些按钮控件之间的继承关系如下图:
下边从功能的视角, 给大家介绍一下QAbstractButton中的一些常用API
1.1 标题和图标1234567891011121314// 参数text的内容显示到按钮上void QAbstractButton::setText(cons ...
如果想要在某一窗口中显示右键菜单, 其处理方式大体上有两种, 这两种方式分别为基于鼠标事件实现和基于窗口的菜单策略实现。其中第二种方式中又有三种不同的实现方式, 因此如果想要在窗口中显示一个右键菜单一共四种实现方式, 下面依次为大家讲解…
1. 基于鼠标事件实现1.1 实现思路
使用这种方式实现右键菜单的显示需要使用事件处理器函数, 在Qt中这类函数都是回调函数, 并且在自定义窗口类中我们还可以自定义事件处理器函数的行为(因为子类继承了父类的这个方法并且这类函数是虚函数)。实现步骤如下:
在当前窗口类中重写鼠标操作相关的的事件处理器函数,有两个可以选择
1234// 以下两个事件二选一即可, 只是事件函数被调用的时机不同罢了// 这个时机对右键菜单的显示没有任何影响[virtual protected] void QWidget::mousePressEvent(QMouseEvent *event);[virtual protected] void QWidget::mouseReleaseEvent(QMouseEvent *event);
在数据表事件处理器函数内部判断是否 ...