Linux(2)- Linux基础命令

Linux命令形式:   命令 [参数] [路径文件]               []代表可选

                               rm      -f      /tmp/log.log

         为什么需要参数,因为一个命令有多重功能,多种用途

1、创建一个目录: mkdir  /data      (make directory)

2、查看某个目录或文件 :ls  -ld /data          (list   l: long    d:目录)以长格式查看目录

       drwxr-xr-x 2 root root 4096 Jun 24 08:30 /data

3、在 /data 下摸一个文件  log.txt:  (就是摸一下文件,如果文件不存在,就新建文件,如果存在,就改变文件的访问时间atime等时间戳信息)(用于创建文件或修改文件的时间戳)

       touch log.txt           touch /data/log.txt

       

4、Vi 编辑器:

     vi a.txt  (如果这个文件不存在,也会直接创建)

vi 的模式:

命令模式下退出 vi

:q  退出

:wq  保存退出

:q!   强制不保存退出

:wq! 强制保存退出

 

echo:  打印输出内容

单行文本的覆盖

echo "i am happy" > a.txt     (重定向,会把 a.txt 的内容删除,覆盖为 i am happy)

不想覆盖,追加到末尾(追加重定向)

echo "aaaaa" >> a,txt 

echo "aaaaa" >> a,txt <<EOF    (末尾追加EOf)

 

符号

: 多个命令的分隔符

/    根或多个路径的分隔符

>   重定向 (数据流朝着箭头的方向流动),覆盖原来的文件

>>  追加重定向(数据流朝着箭头的方向流动),在原来的文件的 【结尾】,【追加】内容

<<  还有这种流向

..  上一级目录

.    当前目录

~   (波浪线)用户的家目录

 

cat命令:不仅仅查看,还可以写入

cat >a.txt (回车后我们就可以进行写入操作了,写完想结束就按 Ctr+C )     【覆盖】

cat >>a.txt    【追加】

 

把 old.txt 拷贝到  /tmp 目录下

cp  old.txt  /tmp    (cp 文件  路径)

cp /data/old.txt  /tmp/        完成路径拷贝

cp 默认情况下只能拷贝文件,不能拷贝目录

 

拷贝目录

cp -a  或者 cp -r

cp  -a  /etc  /tmp

      -a    (相当于 -pdr)

      -p    (保持属性一样)

      -r     (递归,用于复制目录)

 

 

移动目录或文件

mv   [-ifu]   [源文件 / 源目录]   [目的文件 /  目的目录]

       - i :如果目的文件已存在,询问是否覆盖

       - f :强制执行,不会询问

       - u:若目的文件存在,则比源文件新,才会移动

问题:如果文件已存在,如何进行覆盖不提示?

      cp /tmp/test.txt  /mnt/

      \cp /tmp/test.txt  /mnt/                (在命令前面加一个  \       就不会进行提示) 

 

查看目录结构:

tree:

 

xargs :用于把 find / ls 的输出交给后面处理

 

 

alias          (查看计算机中所有命令的别名)

cp = cp -i         (复制时进行询问,输入cp ,相当于输 入      cp -i)

unalias cp        (取消别名,这个时候再输入 cp 复制命令就不会提示询问了,尽量不要改,因为root权限很多人使用)

(可以自己添加别名,我们可以把多个名利组成一个简单的命令操作,重启电脑就失效了,但是我们可以定义永久别名)

 

 

查看命令的位置:

 which cp

/bin/cp          (命令的位置)

还可以使用(whereis,locate,find)

 

find : 在目录下查找文件       (注意:重要)

find / type f - name "cat"      (从根目录开始查找,类型是文件,名字叫 “cat”)

/bin/cat

find 按时间删除

find  / -type f -mtime  +5  (找出五天前的文件)

find  / -type f -mtime   -5(最近五天)

find  /log -type f -mtime  -name "*.log" -5|xargs rm -f  (删除  /log 库下的最近五天的所有日志   ,find 会自动去寻找 )

-type f   文件

         d  目录

find的时间表

有用的查找方法:

从当前目录开始查找:查找文件名为 server.properties 其中包含 “2005”
find . -type f  -name "server.properties" |xargs grep "2005"  (.表示从当前目录)  
grep -i   : 不区分大小写
$grep -5 'parttern' inputfile //打印匹配行的前后5行
$grep -C 5 'parttern' inputfile //打印匹配行的前后5行
$grep -A 5 'parttern' inputfile //打印匹配行的后5行
$grep -B 5 'parttern' inputfile //打印匹配行的前5行

 

查看 ett.txt  的 20-30 行数据

head -30 ett.txt | tail -11

sed  -n 20, 30p ett.txt  (-n 取消默认输出)

seq 1 2 9 (输出 : 1 3 5 7 9 行:这样会隔行输出)

seq 20 30 > a.txt (这样我们就把20-30行输出到 a.txt 中,这样我们就可以查看了)

awk '{if(NR?19&&NR<31) print &0}' ett.txt         NR 表示行号

sed适合行

awk适合列

1:2:3:4的数据  

awk -F ":" '{print $1}'  文件名   (以  : 为列分割   ,$1  打印第一列)

 

 

sed 替换

sed -i  s#aaaaaaa#bbbbbbbbb#g 文件名   (要替换的内容是aaaa,替换的结果是bbbb) 没文件名是全替换,我们需要加文件名 (加  -i 代表 是插入,不加不会修改文件,只是输出改变而已)

find / -type f -name "a.txt"|xargs  sed -i  s#aaaaaaa#bbbbbbbbb#g   (使用find可以实现从哪个目录开始查找所有这个名字的文件进行替换)

sed -i  s#aaaaaaa#bbbbbbbbb#g  a.txt   进行替换

 

find / -type f -name "a.txt"|xargs  cat  (批量进行查看所有的 a.txt)

find / -type f -name "a.txt"|xargs  ls         (find可以进行一个文件一个文件的进行处理)

 

查看日志的方式:

1. 应用场景二:根据日期查询日志

      sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

      特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;

                      先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点

 

2.应用场景三:日志内容特别多,打印在屏幕上不方便查看
    (1)使用more和less命令,

           如: cat -n test.log |grep "debug" |more     这样就分页打印了,通过点击空格键翻页

    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析

            如:cat -n test.log |grep "debug"  >debug.txt

 

 

 

常用快捷键:

Ctr +C :终止当前任务命令或程序

Ctr+D : 退出当前用户环境。相当于exit,logout

Ctr+Shift+c(ctr+insert) 复制

Ctr+Shift+v(shift+insert)  粘贴

ctr+a   :命令行的移动  :一行命令的开头

ctr+e   :                           一行命令的结尾

ctr+U: 不留痕迹的清除你写的命令

ctr+R : 自动帮我们从历史记录查找命令

!历史记录的行号 (就可以执行历史记录这一行的命令)

 

 

 

 

命令的帮助

man 命令    (man ls)

 

管道:

就是把前一个的处理结果交给后面处理 , 管道可以有多个

把 find 命令查找到的所有文件 送进管道进行,后面一个命令取出进行删除

 

find命令的高级使用

 

查看系统的日志

dmesg

 

Linux 的比较工具:

vimdiff a.txt b.txt

退出是 :q!

 

 

需要Linux视频(本人花钱购买的,可苗费赠送)教程可加WX:duye13533164533

 

Linux系统视频教程:https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.4ace1deb4a6RwP&ft=t&id=627367898363

jvm高级进阶优化教程:https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.4ace1debpKnCp8&ft=t&id=627374195856

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值