《Linux学习笔记:文本编辑最佳实践》
【Linux文本编辑的四种方法】
例如,要想test.txt文件添加内容"I am a boy",test.txt在当前目录中
方法一:vi编辑法 【推荐】
打开终端,输入vi test.txt 回车,按a或i进入编辑模式,输入 I am a boy,然后按esc键退出编辑模式,输入:wq保存并退出。
方法二:echo命令法
打开终端,输入echo ‘I am a boy’ >> ./test.txt
注:追加单行文本法
方法三:cat命令法
cat >> ./test.txt <<EOF
I am a boy
EOF
注:结尾的EOF要顶格,成对出现,可以其它字符代替。
方法四:cat编辑法
cat >> ./test.txt (回车后开始编辑输入内容)
I am a boy.
按cntl+d组合键结束编辑。
VIM编辑器,可以新建文件也可以修改文件,命令为:vim /usr/local/con.cfg
如果这个文件,以前是没有的,则为新建,则下方有提示为新文件,如果文件已存在,则没有提示。
进入编辑器后,我们先按"I”,即切换到“插入”状态。就可以通过上下左右移动光标,或空格、退格及回车等进行编辑内容了,和WINDOWS是一样的了。
当文本编辑结束之后,通常需要退出编辑器。退出编辑器又分为4种情况:保存退出、正常退出、不保存退出及强制退出。
按键盘左上角的"ESC",左下角的插入状态不见了
然后这时,我们输入“冒号”,即":"(不需双引号),在下方会出现冒号,等待输入命令,如图,我输入的是WQ。功能如下。
W:write,写入
Q:quit,退出
再回车,就保存退出了
其实,保存退出还有二个方法:
A:在最后输入命令时,直接输入"x",也是一样的,即X=WQ。
B:最快捷的方法:按了ESC后,直接按shift+zz,或者切换到大写模式按ZZ,就可以保存退出了,即是按2下大写的Z。
可以用查看命令:cat查看其内容:cat /usr/local/con.cfg
正常退出有个前提条件是:打开的文本文件在内容上没有被改动过。
按了ESC后再输入冒号,在输入命令时,直接输入"q",
不保存退出的方法,很多时候打开了文件,或者修改了一些地方,才发现错了,非常需要不保存退出。
先按ESC,再输入冒号,在输入命令时,直接输入"q!"
强制退出。这个实在是不应该做的操作,因为很操蛋!
先按ESC,再按冒号,在输入命令时,直接输入"!"
复制一行
yy
粘贴
p
返回上一个命令运行的目录 cd -
最近使用过的命令 history
【Linux中执行shell脚本的4种方法总结】
Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法:
方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:
复制代码 代码如下:
cd /data/shell
./hello.sh
./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录 (/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。
方法二:以绝对路径的方式去执行bash shell脚本:
复制代码 代码如下:
/data/shell/hello.sh
方法三:直接使用bash 或sh 来执行bash shell脚本:
复制代码 代码如下:
cd /data/shell
bash hello.sh
或
复制代码 代码如下:
cd /data/shell
sh hello.sh
注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三 是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用 指定bash路径自然也好理解了啊,呵呵……。
方法四:在当前的shell环境中执行bash shell脚本:
复制代码 代码如下:
cd /data/shell
. hello.sh
或
复制代码 代码如下:
cd /data/shell
source hello.sh
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。
查看哪个用户用的什么shell登录:
1.echo $SHELL #查看当前登录的用户所用的shell
2.grep username /etc/passwd 看最後一段 #查看想要知道的用户登录所用的shell
【Linux执行c代码】
1、gcc 文件名.c -o 你需要执行文件名称
2、./可执行文件的名字
《Linux学习笔记:文本编辑最佳实践》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)(单调栈,递推)
Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version) 题意: 你是一名建筑工程师,现给出 n 幢建筑的预计建设高度,你想建成峰状, ...
- Educational Codeforces Round 89 (Rated for Div. 2) C. Palindromic Paths(贪心)
题目链接:https://codeforces.com/contest/1366/problem/C 题意 有一个 $n \times m$ 的 $01$迷宫,要使从 $(1,1)$ 到 $(n,m) ...
- woj1009 最短路 The Legend of Valiant Emigration
title: woj1009 最短路 The Legend of Valiant Emigration date: 2020-03-07 categories: acm tags: [acm,最短路, ...
- LCIS(最长公共上升子序列)模板
求出LCIS并输出其路径. 1 #include <iostream> 2 #include <cstdio> 3 #include <string> 4 #inc ...
- PyQt5 问题集
PyQt5中遇到的一些问题 1.多线程中界面异步刷新 我这里需要给界面动态添加新的控件,但是多线程中似乎并不能直接更新页面? 对于逻辑和界面分离的情况,使用自定义信号的方式进行页面控件的动态添加.注意 ...
- mitmproxy 代理工具介绍:rewrite和map local实现
在接口测试中,会用到抓包工具或者代理工具,常用代理工具包括charles. burpsuite. fiddler.mitmproxy等,ssh -D参数 可实现socks5代理.网络嗅探工具可以使用t ...
- [USACO15JAN]Moovie Mooving G
[USACO15JAN]Moovie Mooving G 状压难题.不过也好理解. 首先我们根据题意: she does not want to ever visit the same movie t ...
- TDD & Unit testing
TDD & Unit testing TDD jest https://github.com/facebook/jest https://facebook.github.io/jest/zh- ...
- CSS 实现文本的竖向排版
CSS 实现文本的竖向排版 demos .text{ word-wrap: break-word; width: 0px; } writing-mode .text{ writing-mode: ve ...
- go好用的类型转换第三方组件
Cast介绍 开源地址 https://github.com/spf13/cast Cast是什么? Cast是一个库,以一致和简单的方式在不同的go类型之间转换. Cast提供了简单的函数,可以轻松 ...