Linux学习笔记


  • mkdir 创建目录

mkdir -p /dir1/dir2 连续创建目录

  • touch 创建文件

创建以file[n]命名的一万个文件:

touch file{1..10000}

  • > 重定向

重定向>,会清除文件里以前所有的数据;

利用重定向将内容写入file.txt文本:

echo ‘I am Studying Linux’>file.txt

  • >> 内容追加

利用重定向将内容写入file.txt文本,只在文件尾部追加需要的内容

echo ‘I am Studying Linux’>>file.txt

可追加多行

  • cat命令重定向

cat >file.txt #回车并直接写入需要内容,按ctrl+C/D结束

  • cat命令内容追加:

cat >>file.txt #cat命令内容追加,按ctrl+C/D结束

  • cat命令多行内容追加:
cat >>file.txt<<xmq
>line1
>line2
>line3
>xmq

自定义设置字符作为开始与结束的标志

创建内容并同时写入内容:

echo "写入的内容" >/usr/data/file.txt

凡是用echo、touch创建的都是“文件”

  • < 输入重定向
cat <file.txt #即 cat file.txt
cat >abc.txt <file1.txt #将file1.txt中的内容重定向到abc.txt文件
tr " " "\n"<a.txt >>a.txt #将a.txt中的空格改成换行符,并追加到a.txt后

箭头方向即数据流向,输入重定向,将文件中的数据流向给命令

  • 2>>错误内容追加

输入错误命令,并将错误结果追加到file.txt

lls >>file1.txt 2>>file2.txt 
ls >>file1.txt 2>>file2.txt #正确内容追加到file1,错误内容追加到file2
ls &>>file1.txt #正确和错误的内容全部追加到fiel1
lls >>file1.txt 2>&1 #标准错误输出同标准正确输出一致,全部追加到file1
  • 总结:

>1> 输出重定向:把前面输出的东西输入到后边的文件中,会清除文件原有内容。

>>1>> 追加重定向:把前面输出的东西追加到后边的文件尾部,不会清除文件原有内容。

0<< 输入重定向:输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名。

0<<<< 追加输入重定向:后跟字符串,用来表示“输入结束”,也可用ctrl+D来结束输入。

2> 错误重定向:把错误信息输入到后边的文件中,会删除原文文件内容。

2>> 错误追加重定向:把错误信息追加到后边的文件中,不会删除原文文件内容。

说明:

1、箭头的指向就是数据的流向。

数字说明:

标准输入: 代码为0,使用<或<<。数据流向:从右到左。

标准正常输出: 代码为1,使用>或>>。数据(正确的数据)流向:从左到右。

标准错误输出: 代码为2,使用2>或>>。 数据(错误的数据)流向:从左到右。

  • cat 查看文件内容

查看某一文件下所有文件内容:

find /data/data/ -type f |xargs cat
  • xargs 从标准输入获取内容创建和执行命令行

    常用命令:xargs -n 数字分组

$ echo 1 2 3 4 5 6 7 8 >a.txt
$ cat <a.txt
1 2 3 4 5 6 7 8
$ xargs -n 4 <a.txt
1 2 3 4
5 6 7 8
  • cp 复制文件

    cp -r 文件夹路径 -r,递归复制,用于复制文件夹

    cp -a 文件夹路径 复制,用于复制文件夹,保持文件属性,如果文件为链接文件将复制链接

  • rm -f 文件名 -f (force)强制删除

    rm -rf 目录名 -r (recursive)递归,删除目录

    rm -v 文件名 -v 提示已删除的文件

rm命令使用比较危险,删除后无法恢复。一般使用find命令删除文件

  • find

按时间查找文件:

find /data -mtime +7 #+7表示七天以前的文件,7表示查找第7天的文件,-7表示最近7天

查找某一个路径下类型为“文件“的数据:

find /data -type f

查找某一个路径下类型为“文件“名称为file.txt的数据:

find /data -type f -name "file.txt"

  • find-exec 对查找到的数据进行处理

对某一个路径下类型为“文件“名称为file.txt的数据进行删除:

find /data -type f -name "file.txt" -exec rm {} \; #{}表示查找的内容,即将查找到的内容进行删除
find /data -type f -name "file.txt" |xargs rm -f #通过管道符号|将数据传给rm,xargs将查找到的数据变成一行,等同于rm -f a.txt b.txt c.txt

一般使用该命令删除,好处在于设置的条件比较多,不容易误删

-type f (file)文件 -type d (directory)目录 -type c( character) 字符 -type b (block)块设备、磁盘 -type s(socket)

  • | 管道符:将上一个命令的数据传递给下一个命令进行处理,管道符可多次使用。

对某一个路径下类型为“文件“名称为file.txt的数据进行移动:

mv `find aaa/ -type f -name "*.txt" ` bbb/

! 可取反 -a取交集 -o 取并集,或者

- 上一次所在的目录

~ 当前用户的家目录

. 当前目录

.. 上一级目录

  • grep 过滤命令(Linux三剑客之一),过滤需要的内容,使用-v表示排除;

    查看file.txt文件中除abc字符以外的内容

    grep -v abc file.txt

    查看file.txt文件中含abc字符的内容

    grep abc file.txt

grep num -A/-B/-C num file.txt

-A除了显示匹配一行之外,并显示该行之后的num行;

-B 除了显示匹配的一行之外,并显示该行之前的num行;

-C 除了显示匹配的一行之外,并显示该行之前后的各num行。

  • head -n 文件名 表示读取文件的前n行,默认前十行
  • tail -n 表示读取文件的后n行,默认为十行

查看文件前十行和后十行内容。并将数据在一行输出:

$ seq 20 >file.txt    #排序
$ head file.txt | xargs #xargs 将数据变为一行
1 2 3 4 5 6 7 8 9 10
$ tail file.txt | xargs
11 12 13 14 15 16 17 18 19 20
  • yum install Irzsz telnet tree nmap nc -y #-y表示直接同意安装 使用yum安装常用命令(如果没有)

  • LANG=en 改成英文版本 LANG="zh_CN.UTF-8" 改成中文版本

  • alias 设置/查看系统命令名别

别名的作用:

(1)给危险得命令加一些参数保护,防止人为误操作。

(2)把很多复杂的字符串或命令变成一个简单的字符串命令。

rm设置别名,告之不允许使用:

alias rm='echo this command does not allow to use.'
  • unalias 命令 删除别名,尽量不使用,并且重启系统后失效

alias设置别名,内容保存在系统内存中,无法永久保存,重启系统后失效;

要定义永久别名,需要将数据存储到文件目录中:

/etc/profile 全局生效

~/.bashrc 当前用户生效

  • cp 直接覆盖文件不提示

如何执行拷贝命令,遇到同名文件直接(让Linux系统不提示)覆盖

$ touch /tmp/test.txt
$ touch /mnt/test.txt
$ \cp /mnt/test.txt /tmp/ #加反斜号直接覆盖,使用反斜线,作用在于屏蔽别名。(使用alias命令查看)
$ /bin/cp /mnt/test.txt /tmp/ #加上命令全路径,直接覆盖执行
  • seq 数字 生成序列
  • seq -s "分隔符" -s指定分隔符
$ seq 100 >file.txt    #从数字1排到100生成100行数据文件
$ seq 3 10 #从数字3到10生成数据
$ seq 1 2 10 #从数字1到10每隔2位数生成数据,相当于等差数列,等差为2
  • sed stream editor,流编辑器,实现对文件的增删改替查换。Linux命令三剑客之一

sed 's#需要替换的内容#替换的内容#g' file.txt #s表示替换,g表示全局,#表示分隔符,也可使用其他任何字符替代。

$ cat >>file.txt <<input
> this is first line
> this is second line
> input

$ sed 's/first/second/g' file.txt
this is second line
this is second line

有4种可用的替换标记:

  • 数字,表明同一行文本中替换具体第几处的数据;

  • g,表明新文本将会替换所有匹配的文本;

  • p,表明原先行的内容要打印出来(即修改行重复显示一行);

  • w file,将替换的结果写到文件中。

示例1:

echo "111 111 111" >file.txt
sed -i 's/111/222/2' file.txt
cat file.txt
111 222 111

示例2:

$ cat file.txt 
111 111 111
222 222 222
$ sed 's/222/333/p' file.txt
111 111 111
333 222 222
333 222 222
sed 's/222/333/gp' file.txt
111 111 111
333 333 333
333 333 333
$ sed 's/222/333/gpw file_new.txt' file.txt
111 111 111
333 333 333
333 333 333
$ cat file_new.txt 
333 333 333
$ cat file.txt 
111 111 111
222 222 222
  • sed -e 在命令行使用多个编辑器命令
$ cat file.txt
111 111 111
222 222 222
$ sed -e 's/111/333/g;s/222/444/g' file.txt
333 333 333
444 444 444
  • sed -f xxx.sed file.txt 从文件中读取编辑器命令
$ cat xxx.sed
s/aaa/bbb/
s/ccc/ddd/
s/eee/fff/

用于每次需要重复替换多个相同的字符

  • sed -i 将替换结果写入到文件中

/data/data/目录下所有文件中aaa替换为bbb

$ find /data/data/ -type f |xargs sed -i 's/aaa/bbb/g' #-i表示修改文件内容,如果不带-i将仅仅输出到上,而不存入文件中。

自我练习:

在文件file.txt中将任意一行中tabs1的字符后一行添加内容:name:www.google.com

$ cat file.txt
tabs1:
name:www.baidu.com
url:www.baidu.com
img:/soft/one.png
$ sed -i 's/tabs1/tabs1\nname:www.googole.com/g' file.txt #\n表示换行
tabs1:
name:www.google.com
name:www.baidu.com
url:www.baidu.com
img:/soft/one.png

将目录下.txt格式的文件中的数据one改成two

$ cat *
one
one
one
one
$ find -type f -name "*.txt" |xargs sed -i 's/one/two/g' #第一种方法
$ cat *
[sumsung@localhost aaa]$ cat *
two
two
two
two
$ sed -i 's/two/one/g' `find -type f -name "*.txt"` && cat * #第二种方法,``里面的命令将会先执行
one
one
one
one
  • sed -n 不产生命令输出,sed处理的结果将不会输出到CLI中,通常与p标记一同使用,用于仅仅输出替换的数据行内容。

打印某一行:

sed -n '20'p file.txt

打印最后一行:

sed -n '$'p file.txt

总结:

sed命令选项总结:

选项描述
-e在命令行使用多个编辑器命令
-f从文件中读取编辑器命令
-i将替换结果写入到文件中
-n不产生命令输出,sed处理的结果将不会输出到CLI

sed替换标记总结:

选项描述
数字表明同一行文本中替换具体第几处的数据
g表明全局替换
p表明原先行的内容要打印出来(即修改行重复显示一行);
w file将替换的结果写入文件中
  • awk 过滤、输出内容。

查看某一行:

awk NR==19 file.txt

只查看file.txt文件(100行)内第20行到30行的内容:

$ head -30 file.txt|tail -10 #用法太low
$ sed -n '20,30'p file.txt # -n的目的是用于取消默认输出,p代表打印(print)
$ awk 'NR>19&&NR<31' file.txt #NR代表行号
$ grep 20 -A 10 file.txt #-A除了显示匹配一行之外,并显示该行之后的num行;-B 除了显示匹配的一行之外,并显示该行之前的num行;-C    除了显示匹配的一行之外,并显示该行之前后的各num行

快捷键总结:

  • tab键 三下可列出/补全命令
  • ctrl + c 终止当前任务命令或程序
  • ctrl + d 退出当前用户环境。相当于exitlogout
  • ctrl + l 清屏clear
  • ctrl shitf c CRT里复制的命令
  • ctrl shift v CRT里的粘贴命令
  • ctrl A 光标定位到开头
  • ctrl E 光标定位到结尾
  • ctrl U 清理前面的内容
  • ctrl K 清理后面的内容
  • ctrl R 搜索

72


评论
 上一篇
WJ-7B型扣件安装说明会议记录 WJ-7B型扣件安装说明会议记录
2020.08.24 星期一 培训流程:1.培训人员对本工程或本工程中的一项细节进行详细解说。 2.培训人员提出存在的疑问,培训人员进行答疑。 培训内容:1.WJ-7B扣件的组成及安装注意事项 一、部件组成及说明 弹条 一
2020-08-26
下一篇 
网站SEO优化 网站SEO优化
网站SEO优化前言 SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”。 在建站之初,各个搜索引擎是无法搜索到我们的网站,首先要做的就是让各大搜索引擎收录我们的站点,爬虫抓取网站,才能
2020-08-12
  目录