linux基础

https://www.tecmint.com/60-commands-of-linux-a-guide-from-newbies-to-system-administrator/
set -e
stops the execution of a script if a command or pipeline has an error - which is the opposite of the default shell behaviour, which is to ignore errors in scripts. Type help set in a terminal to see the documentation for this built-in command.

mkdir -p(如果父目录不存在则自动创建,不会报错)

echo
as the name suggest echoes a text on the standard output. It has nothing to do with shell, nor does shell reads the output of echo command. However in an interactive script, echo passes the message to the user through terminal. It is one of the command that is commonly used in scripting, interactive scripting.

‘#!/bin/bash‘
tells the shell that it is an script an it is always a good idea to include it at the top of script.
‘read‘ reads the given input.

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。
CURL语法格式:curl [option] <URL>

yum
YUM (Yellowdog Updater Modified) is an open source command-line as well as graphical based package management tool for RPM (RedHat Package Manager) based Linux systems. It allows users and system administrator to easily install, update, remove or search software packages on a systems.
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/
yum install xxx 如果安装的软件有询问会卡在询问页,如果希望安装过程自己很清楚的可以使用此命令
yum –y install xxx 使用这个就不会老询问你要不要yes他会自动的同意,也就不需要你老确认

-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
-P:显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)。
-n --dry-run :仅测试传输,而不实际传输。常和"-vvvv"配合使用来查看rsync是如何工作的。
-a --archive :归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"。
-r --recursive:递归到目录中去。
-t --times:保持mtime属性。强烈建议任何时候都加上"-t",否则目标文件mtime会设置为系统时间,导致下次更新
:检查出mtime不同从而导致增量传输无效。

-o --owner:保持owner属性(属主)。
-g --group:保持group属性(属组)。
-p --perms:保持perms属性(权限,不包括特殊权限)。
-D :是"--device --specials"选项的组合,即也拷贝设备文件和特殊文件。
-l --links:如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。
-z :传输时进行压缩提高效率。
-R --relative:使用相对路径。意味着将命令行中指定的全路径而非路径最尾部的文件名发送给服务端,包括它们的属性。用法见下文示例。
--size-only :默认算法是检查文件大小和mtime不同的文件,使用此选项将只检查文件大小。
-u --update :仅在源mtime比目标已存在文件的mtime新时才拷贝。注意,该选项是接收端判断的,不会影响删除行为。
-d --dirs :以不递归的方式拷贝目录本身。默认递归时,如果源为"dir1/file1",则不会拷贝dir1目录,使用该选项将拷贝dir1但不拷贝file1。
--max-size :限制rsync传输的最大文件大小。可以使用单位后缀,还可以是一个小数值(例如:"--max-size=1.5m")
--min-size :限制rsync传输的最小文件大小。这可以用于禁止传输小文件或那些垃圾文件。
--exclude :指定排除规则来排除不需要传输的文件。
--delete :以SRC为主,对DEST进行同步。多则删之,少则补之。注意"--delete"是在接收端执行的,所以它是在
:exclude/include规则生效之后才执行的。
-b --backup :对目标上已存在的文件做一个备份,备份的文件名后默认使用"~"做后缀。
--backup-dir:指定备份文件的保存路径。不指定时默认和待备份文件保存在同一目录下。
-e :指定所要使用的远程shell程序,默认为ssh。
--port :连接daemon时使用的端口号,默认为873端口。
--password-file:daemon模式时的密码文件,可以从中读取密码实现非交互式。注意,这不是远程shell认证的密码,而是rsync模块认证的密码。
-W --whole-file:rsync将不再使用增量传输,而是全量传输。在网络带宽高于磁盘带宽时,该选项比增量传 输更高效。
--existing :要求只更新目标端已存在的文件,目标端还不存在的文件不传输。注意,使用相对路径时如果上层目录不存在也不会传输。
--ignore-existing:要求只更新目标端不存在的文件。和"--existing"结合使用有特殊功能,见下文示例。
--remove-source-files:要求删除源端已经成功传输的文件。

命令行参数 - 和 -- 的区别
https://blog.csdn.net/moudaen/article/details/9209629

rsync命令一个冒号:和两个冒号::有什么不同
There are two different ways for rsync to contact a remote system: using a remote-shell program as the transport (such as ssh
or rsh) or contacting an rsync daemon directly via TCP. The remote-shell transport is used whenever the source or destina‐
tion path contains a single colon (:) separator after a host specification. Contacting an rsync daemon directly happens when
the source or destination path contains a double colon (::) separator after a host specification, OR when an rsync:// URL is
specified (see also the "USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION" section for an exception to this latter
rule).

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户
grep [options]
-c:只输出匹配行的计数。

-I:不区分大 小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。
https://www.jianshu.com/p/36b4a710f718

shell如何判断文件or目录
主要用到两个shell命令:

-f "file" : 判断file是否是文件;

-d "file" : 判断file是否是目录(文件夹)。

!/bin/sh

filename="/home"

if [ -d "$filename" ]; then

echo "$filename is a directory "

elif [ -f "$filename" ]; then

echo "$filename is a file"

fi

echo -n 不换行输出
echo -e 处理特殊字符若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出。比如换行符\n, 则可以实现换行输出

/dev/null 2>&1
这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.
所以可以看出" >/dev/null 2>&1 "常用来避免shell命令或者程序等运行中有内容输出。
https://www.jianshu.com/p/9684090d36a3

echo $!打印上一个后台进程的PID

ps -ef
ps -ef 是用标准的格式显示进程的、其格式如下

awk
awk工作流程是这样的:读入有’n’换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,0则表示所有域,1表示第一个域,n表示第n个域。默认域分隔符是”空白键” 或 “键”,所以1表示登录用户,$3表示登录用户ip,以此类推。

入门实例假设last -n 5的输出如下# last -n 5 仅取出前五行rootpts/1192.168.1.100TueFeb1011:21still loggedinrootpts/1192.168.1.100TueFeb1000:46-02:28(01:41)rootpts/1192.168.1.100MonFeb911:41-18:30(06:48)dmtsaipts/1192.168.1.100MonFeb911:41-11:41(00:00)root tty1 FriSep514:09-14:10(00:01)如果只是显示最近登录的5个帐号#last -n 5 | awk '{print $1}'rootrootrootdmtsairoot

链接:https://www.jianshu.com/p/57971d3c8856

ls -l | wc -l

用wc命令来统计当前目录下的文件数

Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。命令功能是统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

gt是大于的意思。 -eq是等于的意思。 -ne是不等于的意思。 -ge是大于等于的意思。 -lt是小于的意思。 -le是小于等于的意思

.文件前 表示隐藏

查看一个文件每一行最后更改的详情(版本、作业)
svn blame filename
查看一个文件所有更改历史详情
svn log --diff filename

关闭防火墙
https://www.linuxidc.com/Linux/2016-12/138979.htm
'
root
sudo su

Mac mount nfs失败 增加 -o resvport

sudo mount -t nfs -o resvport,rw centos:/home /rhome

sudo find / -name tomcat

SVN

生成diff文件:

svn diff > xxx.diff

生成 patch:
svn diff > aaa.patch
应用 patch:
patch –p0 < ../aaa.patch
删除该 patch
patch –p0 -R < ../aaa.patch

重复patch相关
https://www.crifan.com/patch_error_reversed_or_previously_applied_patch_detected_assume_r_n/

svn回滚
svn revert FILE // 单个文件回滚
svn revert DIR --depth=infinity // 整个目录进行递归回滚
svn revert . --depth=infinity // 当前目录进行递归回滚

SCP

scp -r /home/space/a/ root@www.runoob.com:/home/root/b/
从a复制到b

VI中的多行删除与复制
法一:
单行删除,:1(待删除行)d
多行删除 ,:1,10d
法二:
光标所在行,dd
光标所在行以下的N行,Ndd

tail 命令从指定点开始将文件写到标准输出·
tail -n 5 log2014.log
-f 循环读取

-q 不显示处理信息

-v 显示详细的处理信息

-c<数目> 显示的字节数

-n<行数> 显示行数

SSH免密码登录
https://blog.csdn.net/furzoom/article/details/79139570

假设要登录的机器为192.168.1.100,当前登录的机器为192.168.1.101。

首先在101的机器上生成密钥(如果已经生成可以跳过):

$ ssh-keygen -t rsa
一路回车即可。

然后在将生成的公钥复制到机器100上的~/.ssh/authorized_keys中,使用如下命令:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100
root为需要登录到机器100上的身份,需要替换成需要的用户名。

最后,测试免密码登录:

$ ssh root@192.168.1.100

shift+pgup或pgdown=终端上下翻页滚动

vi编辑

http://www.cnblogs.com/baichuanhuihai/p/7928404.html

Linux下批量Kill多个进程

ps -ef|grep httpd|grep -v grep|cut -c 9-15|xargs kill -9
管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的

几个命令:
“ps - ef”是linux 里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep mcfcm_st”的输入。
“grep httpd”的输出结果是,所有含有关键字“httpd”的进程,这是Oracle数据库中远程连接进程的共同特点。
“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该令

查找固定行数日志
显示5-10行
sed -n '5,10p' access.log

执行历史命令中的特定命令

在下面的例子中,如果你想再次执行第四条命令,执行!4即可

history | more

1 service network restart
2 exit
3 id
4 cat /etc/redhat-release

!4 cat /etc/redhat-release

Fedora release 9 (Sulphur)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • 第一章 1.Linux是一套免费使用和自由传播的类UNIX操作系统,它可以基于Intel x86系列处理器以及Cy...
    yansicing阅读 5,136评论 0 9
  • 一、常用操作以及概念快捷键求助关机PATHsudo包管理工具发行版VIM 三个模式GNU开源协议 二、磁盘HDD磁...
    为心莳萝阅读 220评论 0 0
  • Linux 目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。...
    miniminiming阅读 623评论 0 4
  • ls 命令说明 ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS...
    逗留阅读 597评论 0 0
  • 文/雁南飞 一场全生产队的抓阄分地大会。就这样在大家的吵闹声结束了。 抓到好地人,欢天喜地激动不已,一溜烟的跑回家...
    雁南飞FM阅读 296评论 0 2