2018-03-30 20:36:22 spirit_artist 阅读数 79
  • NumPy数据分析

    本课程是NumPy数据分析课程,课程从NumPy环境搭建讲起,到最后股票分析项目结束,全程实战讲解了NumPy数据分析的方方面面,内容涵盖:NumPy数组创建、NumPy数组操作、NumPy广播、NumPy字符串、NumPy统计函数、排序、矩阵和股票分析项目。

    13976 人正在学习 去看看 郭宏志

Linux常见符号和命令

重定向符号

  • 在shell中常见的重定向符号有 > 和 >>

    • >符号

    表示将符号左侧的内容,以覆盖的方式输入到右侧的文件中

    • >>符号

    表示将符号左侧的内容,以追加的方式输入到右侧文件的末尾

管道符

  • 命令格式

    命令1 | 命令2

    命令1执行后的结果,传递给命令2使用

其他符号

  • 后台展示符 &

    & 就是将一个命令从前台转入到后台执行

  • 全部信息符号 2>&1

    1 表示正确输出的信息

    2 表示错误输出的信息

    2>&1 代表所有输出的信息

  • Linux系统垃圾桶

    /dev/null 是Linux下的一个设备文件,特点是无限大

常见命令

  • grep命令 文本搜索命令

    命令格式 grep [参数] [关键字] <文件名>

    • 参数详解

    -c 只输出匹配行的计数

    -n 显示匹配行及行号

    -v 显示不包含匹配文本的所有行

    • 精确定位错误代码

    grep -nr [错误关键字]

  • sed命令 编辑文件 以行为单位

    命令格式 sed [参数]'匹配条件 动作' 文件名

    • 参数详解

    参数为空 表示sed的操作效果,实际上不对文件进行编辑

    -i 表示读文件进行编辑

    ​ 注意在mac中使用-i参数,需要用-i ''

    • 匹配条件

    数字行号 或者关键字匹配

    ​ 关键字匹配格式:'/关键字/' 隔离符号 /可以换成 @ # !

    • 动作详解

    -a 在匹配到的内容下一行增加内容

    -i 在匹配到的内容上一行增加内容

    -d 删除匹配到的内容

    -s 替换匹配到的内容

    • 命令演示

    s#原内容#替换后内容#

    • 替换每行首个匹配内容

      sed -i 's#原内容#替换后内容#' 文件名

    • 替换全部匹配内容

      sed -i 's#原内容#替换后内容#g'

    • 指定行号替换首个匹配内容

      sed -i'行号s#原内容#替换后内容#' 文件名

    • 首航指定列号替换匹配内容:

      sed -i 's#原内容#替换后内容#列号' 文件名

    • 指定行号列号匹配内容

      sed -i '行号s#原内容#替换后内容#列号' 文件名

    • 在指定行号的下一行增加内容

      sed -i '行号a\增加内容' 文件名

      如果增加多行,可以在行号位置写个范围值,彼此中间用逗号隔开

    • 在指定行号的当行增加内容

      sed -i '行号i\增加的内容' 文件名

      如果增加多行,可以在行号位置写个范围值,彼此中间用逗号隔开

    • 指定行号删除

      sed -i '行号d' 文件名

      如果增加多行,可以在行号位置写个范围值,彼此中间用逗号隔开

  • awk命令 能以行和列来处理文件

    命令格式 awk [参数] '动作' 文件名

    • 常见参数

    -F 指定行的分隔符

    • 常见动作

    print 显示内容

    $0 显示当前所有内容

    $n 显示当前行的第n列内容,如果存在多个$n,中间用,隔开

    • 常见内置变量

    NR 指定显示行的行号

    NF 输出最后一列的内容

    OFS 输出格式的列分隔符,缺省是空格

    FS 输入文件的列分隔符,缺省是连续的空格和tab

  • find命令

    命令格式 find [路径] [参数] [关键字]

    • 参数详解

    -name 按照文件名查找文件

    -perm 按照文件权限来查找文件

    -user 按照文件属主来查找文件

    -group 按照文件所属的组来查找文件

    -type 查找某一类型的文件

    -size n: [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计算

    -depth 查找文件时,首先查找当前目录中的文件,然后在其子目录中查找

2014-02-19 23:57:23 dodo_check 阅读数 1200
  • NumPy数据分析

    本课程是NumPy数据分析课程,课程从NumPy环境搭建讲起,到最后股票分析项目结束,全程实战讲解了NumPy数据分析的方方面面,内容涵盖:NumPy数组创建、NumPy数组操作、NumPy广播、NumPy字符串、NumPy统计函数、排序、矩阵和股票分析项目。

    13976 人正在学习 去看看 郭宏志
  1.      在linux下,不可避免的会用VIM打开一些windows下编辑过的文本文件。我们会发现文件的每行结尾都会有一个^M符号,这是因为 DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致, 
  2. 对于回车符的定义: 
  3. windows:0D0A 
  4. unix\linux: 0A 
  5. MAC: 0D 
  6. 比较快捷的去除这些符号的方法有这么几种: 
  7. (1)是用VI的命令: 
  8.     使用vi打开文本文件 
  9.     vi dos.txt 
  10.     命令模式下输入 
  11.     :set fileformat=unix 
  12.     :w 
  13. (2) VI下使用正则表达式替换 
  14.    g/\^M/s/\^M// 
  15.     或者 
  16.    %s/^M//g 
  17. (3)使用sed 工具 
  18.     sed ’s/^M//’ filename > tmp_filename 
  19. (4)既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ ,也可以实现: 
  20.     tr -d '\r' 
  21. (5)最后一个方法是本人最常用的方法,个人觉得最方便 
  22.     在终端下敲命令: 
  23.     $ dos2unix filename 
  24.     直接转换成unix格式,就OK了!~  
2019-08-21 16:40:52 weixin_37766087 阅读数 2300
  • NumPy数据分析

    本课程是NumPy数据分析课程,课程从NumPy环境搭建讲起,到最后股票分析项目结束,全程实战讲解了NumPy数据分析的方方面面,内容涵盖:NumPy数组创建、NumPy数组操作、NumPy广播、NumPy字符串、NumPy统计函数、排序、矩阵和股票分析项目。

    13976 人正在学习 去看看 郭宏志

本文总结了Linux中的$符号的各种用法

用法一:

显示脚本参数($0$?$*$@$#$$$!)(本质上属于变量替换)

$0:就是该bash文件名,个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住,如${10}.

$?:是上一指令的返回值,成功是0,不成功是1。一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。一般指令程序倘若执行成功,其回传值为 0;失败为 1。

$*:所有脚本参数的内容:就是调用调用本bash shell的参数。 

$@:基本上与上面相同。只不过是“$*”返回的是一个字符串,字符串中存在多外空格。 “$@”返回多个字符串。

$#:返回所有脚本参数的个数。

$$ :Shell本身的PID(ProcessID),即当前进程的PID。

$! :Shell最后运行的后台Process的PID

$- :使用Set命令设定的Flag一览

 

示例:

# touch variable 

# vi variable 

脚本内容如下: 

#!/bin/sh 

echo "number:$#" 

echo "scname:$0" 

echo "first :$1" 

echo "second:$2" 

echo "argume:$@" 

保存退出 

赋予脚本执行权限 

# chmod +x variable 

执行脚本 

# ./variable aa bb 

number:2 

scname:./variable 

first: aa 

second:bb 

argume:aa bb 

通过显示结果可以看到: 

$# 是传给脚本的参数个数 

$0 是脚本本身的名字 

$1是传递给该shell脚本的第一个参数 

$2是传递给该shell脚本的第二个参数 

$@ 是传给脚本的所有参数的列表

 

用法二:

获取变量与环境变量的值

如:path=2,则echo $path 或者echo${path}显示的就是path的值。

在linux及unix的sh中,以$开头的字符串表示的是sh中定义的变量,这些变量可以是系统自动增加的,也可以是用户自己定义的$PATH表示的是系统的命令搜索路径,和windows的%path%是一样的$HOME则表示是用户的主目录,也就是用户登录后工作目录

示例:echo $PATH.

 

用法三:

shell$(( ))$( )``${ }的区别

说明:

${ }这种形式其实与用法一和二是一样的,属于变量替换的范畴,只不过在变量替换中可以加上大括号,也可以不加大括号。

简而言之:$(( ))属于执行计算公式,等价于$[ ],$( )和` `属于命令替换,${ }属于变量替换

(1)$( )与``(反引号):返回括号中命令的结果

    在bash中,$( )` `(反引号)都是用来作命令替换的,执行括号或者反引号中的命令。

    命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行

 示例:命令:$ echo today is $(date "+%Y-%m-%d"),显示:today is 2014-07-01

    

    注:在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下:

        1)``很容易与''搞混乱,尤其对初学者来说。

        2)在多层次的复合替换中,``必须要额外的跳脱处理(反斜线),而$( )比较直观。

   最后,$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。

示例:

          1# 将cmd1执行结果作为cmd2参数,再将cmd2结果作为cmd3的参数

               cmd3 $(cmd2 $(cmd1))

         2 # 如果是用反引号,直接引用是不行的,还需要作跳脱处理

          cmd3 `cmd2 \`cmd1\``

(2)${ }变量替换

一般情况下,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围

 

示例:

取路径、文件名、后缀

先赋值一个变量为一个路径,如下:

file=/dir1/dir2/dir3/my.file.txt

记忆方法如下:

  • # 是去掉左边(在键盘上 # $ 之左边)

  • % 是去掉右边(在键盘上 % $ 之右边)

  • 单一符号是最小匹配;两个符号是最大匹配

  • *是用来匹配不要的字符,也就是想要去掉的那部分

  • 还有指定字符分隔号,与*配合,决定取哪部分

 

 

 

2009-09-10 15:50:48 iteye_10361 阅读数 50
  • NumPy数据分析

    本课程是NumPy数据分析课程,课程从NumPy环境搭建讲起,到最后股票分析项目结束,全程实战讲解了NumPy数据分析的方方面面,内容涵盖:NumPy数组创建、NumPy数组操作、NumPy广播、NumPy字符串、NumPy统计函数、排序、矩阵和股票分析项目。

    13976 人正在学习 去看看 郭宏志
在linux下,不可避免的会用VIM打开一些windows下编辑过的文本文件。我们会发现文件的每行结尾都会有一个^M符号,这是因为 DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致,

对于回车符的定义:
windows:0D0A
unix\linux: 0A
MAC: 0D

比较快捷的去除这些符号的方法有这么几种:

(1)是用VI的命令:
使用vi打开文本文件
vi dos.txt
命令模式下输入
:set fileformat=unix
:w

(2) VI下使用正则表达式替换
g/\^M/s/\^M//
或者
%s/^M//g

(3)使用sed 工具
sed ’s/^M//’ filename > tmp_filename

(4)既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ ,也可以实现:
tr -d '\r'

(5)最后一个方法是本人最常用的方法,个人觉得最方便
在终端下敲命令:
$ dos2unix filename
直接转换成unix格式,就OK了!~
2019-12-18 17:47:04 Ming_Ba 阅读数 220
  • NumPy数据分析

    本课程是NumPy数据分析课程,课程从NumPy环境搭建讲起,到最后股票分析项目结束,全程实战讲解了NumPy数据分析的方方面面,内容涵盖:NumPy数组创建、NumPy数组操作、NumPy广播、NumPy字符串、NumPy统计函数、排序、矩阵和股票分析项目。

    13976 人正在学习 去看看 郭宏志

基础符号

表示
$: 可以调取变量中的内容
表示命令提示符号(普通用户提示符)
可以取出指定列的信息(awk使用)
表示一行的结尾
表示
!: 用于表示取反或排除的意思
命令行中表示取出最近命令
vi/vim中表示强制操作
表示
#: 表示文件内容注释符号
表示用户命令提示符号(管理员提示符)

引号符号

表示
" " 表示输入内容,就是输出内容。部分信息会被解析
‘ ’ 表示输入内容,就是输出内容(所见即所得)
`` 先执行反引号中的命令
没有引号 和双引号类似,区别可以识别序列信息

定向符号

表示
< 标准输入重定向
<< 标准追加数日重定向
> 标准输出重定向
> 标准追加输出重定向
2> 错误输出重定向
2>> 错误追加输出重定向

路径符号

表示
. 表示当前目录
. . 表示上一级目录
~ 表示用户家目录
- 表示上一次的目录

逻辑符号

表示
&& 符号前一件事执行成功,在执行符号后的命令
| | 符号前一件事执行失败,在执行符号后面的命令
不管前面的命令成功是否,都会执行符号后的命令

通配符号

通配符号概念:

  1. 通配符号主要匹配文件的名称
表示
* 匹配任意字符或匹配字符串信息
{} 匹配生成序列的信息

正则符号

系统正则符号概念:

  1. 正则符号主要用于匹配字符信息
  2. 正则符号主要匹配文件内容信息
  3. 正则符号只有三剑客命令可以识别
  4. 正则符号可以用于分析数据,判断数据
基础正则符号 BRE
^ 匹配以什么开头的信息
$ 匹配以什么结尾的信息
^$ 匹配空行信息
. 匹配任意,且只有一个字符
* 匹配符号前面一个字符,连续出现0次或多次
.* 匹配任意所有字符
\ 转义符号:1.将有意义的符号转变的没有意义。2. 有没有意义的符号转变的有意义。
[] 匹配多个字符信息,括号内的所有字符都是独立拆单个的
[^ ] 匹配多个字符信息进行排除,或者可以理解为反转

扩展正则

三剑客命令识别正则:
grep:#grep -E - - - 加参数 E 可以识别扩展正则
sed:#sed -r - - - 加参数 r 可以识别扩展正则
awk:它就很牛批了,啥都不用加就能识别

扩展正则符号 ERE
+ 匹配符号前面的字符出现1次或多次
匹配符号前面的字符出现0次或1次
{} 匹配符号前一个字符连续出现指定次数
| 匹配前后的字符串并匹配它们
() 将多个字符汇总成一个总体

Linux 符号系列

阅读数 11

没有更多推荐了,返回首页