每天学点Linux命令(持续更新)

mkdir

在绝对路径下建立文件夹
mkdir /home/lyj/Desktop/test1即在桌面下建立了test 1文件夹

文件夹套用(比如在A文件夹下再建立B文件夹)
mkdir -p /home/lyj/Desktop/test6/test7这样test6中就有一个文件夹test7了

住:如果mkdir前面加上sudo的话,建立的文件夹就会有权限了

如果一次行建立多个文件夹
mkdir test1 test2 test3

删除文件夹

sudo rm -rf [文件的路径]

vim基本操作

操作 命令
全选 按esc后,然后ggvG或者ggVG
全部复制 按esc后,然后ggyG
全部删除 按esc后,然后dG

解析:

命令 解释
gg 让光标移到首行
v 进入Visual可视模式
G 光标移到最后一行
d 删除选中内容
y 复制选中的内容到0号寄存器
"+y 复制到+寄存器,即系统的剪切板

查找
输入/string,按n查找到下一处

sed命令

sed -i 's/原字符串/替换字符串/' [file]
特殊字符用\转义
当有'单引号时:
sed -i "s/原字符串包含'/替换字符串包含'/" [file]

wc

wc -l [file]  //输出file文件有多少行

awk

paste

paste -d -s -file1 file2
选项含义如下:
-d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。
-s 将每个文件合并成行而不是按行粘贴。

iconv

iconv -f [原始字符集1] -t [目标字符集] [file]
eg:  iconv -f UTF-16LE -t UTF-8 Speaker7290.txt
iconv -l   #列出当前支持的字符编码
file [file]  #查看file文件的编码格式

cut

-d 表示指定分隔符
-f 表示选择域
eg:

[root@localhost shell]# ifconfig eth0 | grep "inet addr"
          inet addr:192.168.1.199  Bcast:192.168.1.255  Mask:255.255.255.0
[root@localhost shell]# ifconfig eth0 | grep "inet addr" | cut -d : -f 2
192.168.1.199  Bcast        //以 : 为分隔符,选取第二个域里面的内容,输出
[root@localhost shell]# ifconfig eth0 | grep "inet addr" | cut -d : -f 2 | cut -d ' ' -f 1 
192.168.1.199     

awk

linux中的awk命令详解

Linux终端不能输入中文解决方案

在用户目录下的.inputrc文件(如果没有,则新建一个)添加: 
set meta-flag on 
set convert-meta off 
set input-meta on 
set output-meta on

如果还是不能输入中文,再试试在/etc/profile文件里添加: 
LANG=”zh_CN.UTF-8” 
LC_MESSAGES=”zh_CN.eucCN” 
export LANG LC_MESSAGES

dos2unix text

grep


2019/02/26

cat

  1. 显示文件内容
$ cat test   #显示test的内容

hello world!

$ cat test test1 #按序显示test,test1的文件内容

hello world!
hhhh

2.创建一个文件,并写入内容,以ctrl+D结束输入

$ cat>test
aaaaaaa

cat test
aaaaaaa
  1. 显示文件的行号
$ cat -n test

1   hello world!

4.在每行的结束添加$

$ cat -e test

#!/bin/bash$
echo "hello world!"$
$
read VAR$
echo "VAR is $VAR"$
$
expr $VAR - 5$
$
test "HELLO"="hello"$
test $VAR -eq 10$
exec ./othershell.sh$
$
exit$

5.重定向到文件

$ cat test >test1 #把test中的内容输出到test1中(覆盖test1原有的文件)

$ cat test test1 test2>test3 #把test,test1,test2中的内容重定向到test3中

$ cat -n test>test1 #把test中的每一行加上行号输出到test1中

$ cat test >>test1 #把test中的内容追加到test1中

$ cat<test #把test中的文件输出到屏幕上

6.排序

cat test test1 test2 | sort >test4 #把test,test1,test2中的文件定向到test4中并且按照字典排序
cat test test1 test2 | sort -u >test4 #去掉重复的行

7.标注TAB

cat -T test

^I#!/bin/bash
echo "VA^IR is $VAR"
echo "hello world!"
exec ./othershel^Il.sh
exit^I
expr $VA^IR - 5
read VAR
test "HELLO"="hello"
test $VAR -eq 10

参考:13 Basic Cat Command Examples in Linux

cut

1.通过字节截取(一个英文字母为一个字节,当截取汉字的时候可能会出现乱码)

echo "hello world"| cut -b 1,3
hl

2.通过字符截取

echo "hello world"| cut -b 1,3
hl

3.通过界定符截取

names.csv

John,Smith,34,London
Arthur,Evans,21,Newport
George,Jones,32,Truro
$ cut -d ',' -f 1,3 names.csv 

John,34
Arthur,21
George,32

4.取反

$ cut -d ',' -f 1,3 --complement names.csv 

Smith,London
Evans,Newport
Jones,Truro

5.设置输出文件的界定符

$cut -d ',' -f 1,3 --complement --output-delimiter='@' names.csv 

Smith@London
Evans@Newport
Jones@Truro

参考:Linux and Unix cut command tutorial with examples

paste

$ cat name
John
Bob
Alice
Tony

$ cat gender 
male
male
female
male

$ cat age 
12
14
8
18
$ cat id
1
2
3
4
5

1.合并上述四个文件

$ paste id name gender age

1   John    male    12
2   Bob male    14
3   Alice   female  8
4   Tony    male    18
5           

2.加入定界符
会按照指定的分隔符按顺序填充,分隔符不足,则重复利用

paste -d '|,' id name gender age

1|John,male|12
2|Bob,male|14
3|Alice,female|8
4|Tony,male|18
5|,|

3.按行合并
先把每个文件的每一行放在同一行按照tab分隔,然后再把这些行依次加入新的文件(总共有几个文件就有几行)

$ paste -s id name gender age|head -n 10
1   2   3   4   5
John    Bob Alice   Tony
male    male    female  male
12  14  8   18

4.把连续N行放在同一行
把传来的文件一行行读来填充短横-

$ cat name | paste - - -
John    Bob       Alice
Tony        
$ cut -d" " -f 1 name |paste - - num 
John    Bob 1
Alice   Tony    2
        3
        4

参考:Paste command in Linux with examples


2019.2.27

umask

  • umask是设置创建文件或目录时的默认权限
  • Linux里面的权限分为三个部分,user,group,other.即当前用户的权限,用户所属的组的其他用户,非前两者的其他用户。
  • 文件总共有三种访问类型,rwx,分别为读,写,可执行
  • 可以通过ls -l查看当前目录下所有文件的权限信息

    第一位表示文件的类型,d表示目录,-表示普通文件,l表示链接
    后面每三位分别对应user,group,other的权限,这里面的-表示不具备这种权限。比如rw-表示该文件的当前用户具备读和写的权限,不具备可执行的权限
  • 三种权限操作
    +:添加某种权限
    -:禁止某种权限
    =:只允许指定的权限
  • rwx分别对应数字4 2 1
  • 用1-7代表不同权限


  • 在Linux下,默认的文件权限是666,默认的目录权限是777,将umask的值分别与666,777相减,得到的就是文件和目录的默认权限。比如umask是022,那么文件的默认权限是666-022=644,即rw-r--r--
    参考:Linux umask command

chmod

chmod 742 file #为file授权,采用数字表示方式,也可以用下面的方式
chmod u+rw file #对user进行授权,group,other同理
chmod -R 564 directory #对目录进行递归授权
参考:Linux chmod command


2019.3.7

运算符&&,||

command1 && command2 && command3 ...
依次执行命令,直到有命令执行失败或者所有命令执行完成停止

command1 || command2
只要有命令执行成功就停止往后执行

command 1 | command 2
他的功能是把第一个命令command 1执行的结果作为command2的输入传给command 2

shift

shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。
示例:依次读取输入的参数并打印参数个数
shift_test.sh

#!/bin/bash
while [ $# != 0 ]
do
echo "prama is $1,prama size is $#"
shift
done

输入如下命令运行:

./shift_test.sh a b c
prama is a,prama size is 3
prama is b,prama size is 2
prama is c,prama size is 1

每次运行shift(不带参数的),销毁一个参数,后面的参数前移
Shift命令一次移动参数的个数由其所带的参数指定。
例如当shell程序处理完前九个命令行参数后,可以使用shift 9命令把$10移到$1

Linux中的标准输入输出

标准输入0 从键盘获得输入 /proc/self/fd/0
标准输出1 输出到屏幕(即控制台) /proc/self/fd/1
错误输出2 输出到屏幕(即控制台) /proc/self/fd/2
/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”
1、2>/dev/null意思就是把错误输出到“黑洞”
2、>/dev/null 2>&1默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”
3、2>&1 >/dev/null意思就是把错误输出2重定向到标准出书1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕
关于这里”&”的作用,我们可以这么理解2>/dev/null重定向到文件,那么2>&1,这里如果去掉了&就是把错误输出给了文件1了,用了&是表明1是标准输出。
https://blog.csdn.net/zhongqi2513/article/details/78613768


2019.3.27

grep

1. -i 不区分大小写

[root@localhost shell]# cat test1.txt
ab
Ac
6356
AKF57
[root@localhost shell]# grep -i "a" test1.txt
ab //找出所有字符’a’ 并且不区分大小写
Ac
AKF57

参考资料:linux下grep用法
grep用法


2019.3.28

uniq

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。uniq 可检查文本文件中重复出现的行列
-c或--count 在每列旁边显示该行重复出现的次数。

对file中的单词统计词频,并排序
cat file|sort |uniq -c|sort -n

find

find kaldi/ -name "train_lm.sh"   #在kaldi目录下,按照文件名搜索train_lm.sh

-iname :表示不区分大小写


2019.4.1

查看文件夹的大小

du -sh 目录

2019.4.24

远程复制跳过相同文件

使用cp命令的-n参数即可跳过相同的文件 ,但scp却没这个参数,如何实现呢?
rsync它比scp更强大,支持“不覆盖”原目录
例子:rsync -avz --progress /root/client/ root@202.112.23.12:/home/work/
//将本机的/root/client/拷贝至远程的202.112.23.12:/home/work/目录,--progress可以查看拷贝的过程
例子:rsync -avzu --progress /root/client/ root@202.112.23.12:/home/work/ //u选项,指定不覆盖原目录内容
参考资料:
linux远程scp,但是不覆盖已经存在文件的方法

复制文件时排除某一些文件

rsync -r -v --exclude="dirName" dir1 dir2
将dir1中的文件传输到dir2中,dir1中的"dirName"不复制
一条exclude选项只能排除一个,可以多写几个即可多排除几个

通过列表存参数

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

推荐阅读更多精彩内容