课程知识概述--系统命令
seq
cat
less
more
head
tail
grep
tr
alias
复习 1.echo
-e 激活特殊的意义
\n 表示回车
\t tab键 [root@oldboy~]#echo "oldboy\talex"
oldboy\talex
[root@oldboy~]#
[root@oldboy~]#echo -e "oldboy\talex"
oldboy alex [root@oldboy~]#echo "oldboy\nalex"
oldboy\nalex
[root@oldboy~]#
[root@oldboy~]#
[root@oldboy~]#echo -e "oldboy\nalex"
oldboy
alex 例子:在/oldboy目录下创建 oldboy1/01stu..02stu oldboy2/01stu..02stu oldboy3/01stu..02stu oldboy10/01stu..02stu 结果如下:
/oldboy/oldboy1/01stu
/oldboy/oldboy1/02stu /oldboy/oldboy2/01stu
/oldboy/oldboy2/02stu
....
/oldboy/oldboy10/01stu
/oldboy/oldboy10/02stu 例子2: 在/oldboy目录下创建 test01/blog test01/bbs test01/www test10/blog test10/bbs test10/www
结果:
在/oldboy下有10个目录 test01..test10
在10个目录下分别有三个目录 bbs blog www
[root@oldboy~]#echo /oldboy/oldboy{01..10}
/oldboy/oldboy01 /oldboy/oldboy02 /oldboy/oldboy03 /oldboy/oldboy04 /oldboy/oldboy05 /oldboy/oldboy06 /oldboy/oldboy07 /oldboy/oldboy08 /oldboy/oldboy09 /oldboy/oldboy10
[root@oldboy~]##mkdir /oldboy/oldboy{01..10}
[root@oldboy~]#
[root@oldboy~]#mkdir oldboy01 oldboy02 oldboy03
[root@oldboy~]#ll
总用量 468972
-rw-r--r--. 1 root root 23 4月 27 10:25 1.txt
-rw-r--r--. 1 root root 89782552 3月 20 17:23 360safe+267791+n498d041f99.exe
-rw-r--r--. 1 root root 389758391 8月 22 2018 gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
drwxr-xr-x. 2 root root 6 5月 8 08:52 oldboy01
drwxr-xr-x. 2 root root 6 5月 8 08:52 oldboy02
drwxr-xr-x. 2 root root 6 5月 8 08:52 oldboy03
-rw-r--r--. 1 root root 201 5月 7 11:39 passwd
-rw-r--r--. 1 root root 670293 5月 7 11:17 services
drwxr-xr-x. 12 root root 136 5月 7 11:56 test
-rw-r--r--. 1 root root 94 4月 29 11:51 test.sh
[root@oldboy~]#mkdir /oldboy/oldboy1 /oldboy/oldboy2 /oldboy/oldboy3 [root@oldboy~]#echo /oldboy/oldboy{01..2}/01stu
/oldboy/oldboy01/01stu /oldboy/oldboy02/01stu
[root@oldboy~]#
[root@oldboy~]#
[root@oldboy~]#echo /oldboy/oldboy{01..2}/{01..02}stu
/oldboy/oldboy01/01stu /oldboy/oldboy01/02stu /oldboy/oldboy02/01stu /oldboy/oldboy02/02stu tree 以树形结构显示
yum -y install tree -d 只显示所有的目录
[root@oldboy~]#tree -d /oldboy/
/oldboy/
├── oldboy01
│   ├── 01stu
│   └── 02stu
├── oldboy02
│   ├── 01stu
│   └── 02stu
├── oldboy03
│   ├── 01stu
│   └── 02stu ​ -L 深度等级 PS: -L 1 之间有空格
[root@oldboy~]#tree -L 1 /oldboy/
/oldboy/
├── oldboy01
├── oldboy02
├── oldboy03
├── oldboy04
├── oldboy05
├── oldboy06
├── oldboy07
├── oldboy08
├── oldboy09
└── oldboy10 [root@oldboy~]#tree --du -h /root/
/root/
├── [ 23] 1.txt
├── [ 86M] 360safe+267791+n498d041f99.exe
├── [372M] gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
├── [ 6] oldboy01
├── [ 6] oldboy02
├── [ 6] oldboy03
├── [ 201] passwd
├── [655K] services
├── [ 196] test
│   ├── [ 6] stu01
│   ├── [ 6] stu02
│   ├── [ 6] stu03
│   ├── [ 6] stu04
│   ├── [ 6] stu05
│   ├── [ 6] stu06
│   ├── [ 6] stu07
│   ├── [ 6] stu08
│   ├── [ 6] stu09
│   └── [ 6] stu10
└── [ 94] test.sh 458M used in 14 directories, 6 files [root@oldboy~]#tree --du -h gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
372M used in 0 directories, 0 files
[root@oldboy~]#tree gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm [error opening dir] 0 directories, 0 files 例子2: 在/oldboy目录下创建 test01/blog test01/bbs test01/www test10/blog test10/bbs test10/www
结果:
在/oldboy下有10个目录 test01..test10
在10个目录下分别有三个目录 bbs blog www echo {} 序列中输出不规范的字符串或者数字 1 10 20 35
[root@oldboy~]#echo stu01 stu10 stu15 stu22 stu33
stu01 stu10 stu15 stu22 stu33
[root@oldboy~]#
[root@oldboy~]#
[root@oldboy~]#echo stu{01,10,15,22,33}
stu01 stu10 stu15 stu22 stu33 [root@oldboy~]#echo {a,r,u}oldboy
aoldboy roldboy uoldboy
[root@oldboy~]#echo {a,r,u}-oldboy
a-oldboy r-oldboy u-oldboy
[root@oldboy~]#
[root@oldboy~]#echo oldboy{www,bbs,blog}
oldboywww oldboybbs oldboyblog
[root@oldboy~]#
[root@oldboy~]#
[root@oldboy~]#echo oldboy/{www,bbs,blog}
oldboy/www oldboy/bbs oldboy/blog ​ [root@oldboy~]#echo A-www A-blog B-www B-blog
A-www A-blog B-www B-blog
[root@oldboy~]#
[root@oldboy~]#echo {A,B}{www,blog}
Awww Ablog Bwww Bblog
[root@oldboy~]#
[root@oldboy~]#
[root@oldboy~]#echo {A,B}-{www,blog}
A-www A-blog B-www B-blog [root@oldboy~]#mkdir -p /oldboy/test{01..10}/{www,bbs,blog}
[root@oldboy~]#
[root@oldboy~]#tree /oldboy/
/oldboy/
├── test01
│   ├── bbs
│   ├── blog
│   └── www
├── test02
│   ├── bbs
│   ├── blog
│   └── www 错误的书写方式:
[root@oldboy~]#echo /oldboy/test{01..02}/www bbs blog
/oldboy/test01/www /oldboy/test02/www bbs blog
[root@oldboy~]#mkdir /oldboy/test{01..02}/www bbs blog
mkdir: 无法创建目录"/oldboy/test01/www": 没有那个文件或目录
mkdir: 无法创建目录"/oldboy/test02/www": 没有那个文件或目录
[root@oldboy~]#mkdir -p /oldboy/test{01..02}/www bbs blog
[root@oldboy~]#
[root@oldboy~]#tree /oldboy/
/oldboy/
├── test01
│   └── www
└── test02
└── www 4 directories, 0 files
[root@oldboy~]#ll bbs/ blog/
bbs/:
总用量 0 blog/:
总用量 0 2.seq 序列
-w 输出规范的数字 echo {01..10}
-s 指定分隔符 默认回车分隔
[root@oldboy~]#seq -s + 10
1+2+3+4+5+6+7+8+9+10 3.cat 查看文件内容
-n 显示行号 1)输出内容到屏幕 shell编程 打印菜单
[root@oldboy~]#cat <<EOF
> oldboyedu
> EOF
oldboyedu [root@oldboy~]#cat <<AAA
> test
> alex
> AAA
test
alex
2)内容输入到文件中 > 先清空后写入
[root@oldboy~]#cat 1.txt
test
test
oldboy
alex
lidao
[root@oldboy~]#cat >1.txt<<EOF
> hehe
> hehe
> hehe
> EOF
[root@oldboy~]#cat 1.txt
hehe
hehe
hehe 3)内容追加到文件中 >> 追加内容 [root@oldboy~]#cat 1.txt
hehe
hehe
hehe
[root@oldboy~]#cat >>1.txt<<EOF
> oldboy
> oldboy
> EOF
[root@oldboy~]#cat 1.txt
hehe
hehe
hehe
oldboy
oldboy 4)合并文件 将多个文件的内容合并到同一个文件 方便统计计算
[root@oldboy~]#cat 1.txt 2.txt 3.txt
hehe
hehe
hehe
oldboy
oldboy
[root@oldboy~]#echo 11111111 >1.txt
[root@oldboy~]#echo 22222222 >2.txt
[root@oldboy~]#echo 33333333 >3.txt
[root@oldboy~]#cat 1.txt 2.txt 3.txt
11111111
22222222
33333333
[root@oldboy~]#cat 1.txt
11111111
[root@oldboy~]#cat 2.txt
22222222
[root@oldboy~]#cat 3.txt
33333333
[root@oldboy~]#cat 1.txt 2.txt 3.txt > all.txt
[root@oldboy~]#
[root@oldboy~]#cat all.txt
11111111
22222222
33333333 PS: 只要能在屏幕上显示的内容 就可以定向到文件中 > >> ​ [root@oldboy~]#cat {1..3}.txt
11111111
22222222
33333333
[root@oldboy~]#echo "1111111111\n2222222\33333333"
1111111111\n2222222\33333333
[root@oldboy~]#echo -e "1111111111\n2222222\33333333"
1111111111
2222222\33333333
[root@oldboy~]#
[root@oldboy~]#echo -e "1111111111\n2222222\n33333333"
1111111111
2222222
33333333
[root@oldboy~]#
[root@oldboy~]#echo -e "1111111111\n2222222\n33333333" >all.txt
[root@oldboy~]#
[root@oldboy~]#
[root@oldboy~]#cat all.txt
1111111111
2222222
33333333 ​
4.less 一页一页的查看文件内容
​ 运行一个文件 程序 系统加载到内存中运行
​ 如果一个文件较大 加载到内存的速度较慢
​ vim 当前所有的文件内容加载到内存中
​ PS:在Linux中查看大文件不用vim和cat
​ 参数选项:
-N 显示行号
f 往下翻页
空格 往下翻页
b 往上翻页
100g 快速移动到100行
gg 移动到文件的开头
1g 移动到文件的开头
G 文件的结尾
/ 搜索字符串
n 往下查找
N 往上查找
q 退出 5.more 一页一页的查看文件内容 建议使用less
f
b
到文件的末尾自动退出 6.head 从文件的第一行开始显示 默认显示前10行 包含空行
-n 5 显示文件的前5行
-5 简写
-c 显示文件的前n个字符
[root@oldboy~]#head -5 services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
[root@oldboy~]#head -2 services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
[root@oldboy~]#head services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports -c 了解 [root@oldboy~]#head -c 3 services
# /[root@oldboy~]# ​ 7. tail 默认显示尾部的10行内容
-n5 显示最后5行内容
-5 简写
-f 实时显示文件内容的变化 follow 跟随
tailf 简写
-F 时时显示文件内容的变化 如果查看的文件不存在 则会等待 监控此文件 1)[root@oldboy~]#tail -n 2 services
iqobject 48619/udp # iqobject
matahari 49000/tcp # Matahari Broker
[root@oldboy~]#tail -2 services
iqobject 48619/udp # iqobject
matahari 49000/tcp # Matahari Broker 例子: head tail
1.复制/etc/passwd 到当前家目录
2.显示当前passwd的第15行 如何显示? [root@oldboy~]#head -16 passwd |tail -1
polkitd:x:999:998:User for polkitd:/:/sbin/nologin 管道:可以把管道前的命令的结果 作为后面命令来使用 2)-f 时时显示文件内容的变化 tail -f 简写 tailf
[root@oldboy~]#tailf /var/log/messages
May 8 11:04:36 oldboy systemd: Starting firewalld - dynamic firewall daemon...
May 8 11:04:37 oldboy systemd: Started firewalld - dynamic firewall daemon.
May 8 11:04:37 oldboy kernel: ip_tables: (C) 2000-2006 Netfilter Core Team 3)-F 时时显示文件内容的变化 如果查看的文件不存在 则会等待 监控此文件
[root@oldboy~]#tail -F oldboy.txt
tail: 无法打开"oldboy.txt" 读取数据: 没有那个文件或目录
tail: "oldboy.txt" 已被建立,正在跟随新文件的末尾
test
test
test
test
test
test 8. grep 查找过滤字符串 awk sed grep
选项参数:
-n 显示过滤到内容的行号
-v 取反
语法格式: 三剑客中 单引号 双引号 不加引号 意义不同
grep 'root' file
cat passwd|grep root 方法1:
[root@oldboy~]#grep 'root' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin 方法2:
[root@oldboy~]#cat passwd |grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin ​ 方法3: -n [root@oldboy~]#grep -n root passwd
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin [root@oldboy~]#grep -n . passwd
25:oldboy1:x:1002:1002::/home/oldboy1:/bin/bash
26:oldboy2:x:1003:1003::/home/oldboy2:/bin/bash PS: . 代表了单个任意字符 *所有 ^ 以任意字符开头 $ 以任意字符结尾 ^$ 空行
< 标准输入 常和tr配合使用 方法4: -v 取反
[root@oldboy~]#cat 1.txt
oldboy
alex
goudan
gousheng
erma
[root@oldboy~]#grep oldboy 1.txt
oldboy
[root@oldboy~]#grep -v oldboy 1.txt
alex
goudan
gousheng
erma 方法5: 配置文件都有注释 只想查看生效的配置 [root@oldboy~]#grep -v '#' config
SELINUX=disabled
SELINUXTYPE=targeted ​ [root@oldboy~]#grep '^$' config [root@oldboy~]#grep -v '^$' config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@oldboy~]#grep -v '^$' config |grep -v '#'
SELINUX=disabled
SELINUXTYPE=targeted 扩展:
[root@oldboy~]#egrep -v '^$|#' config
SELINUX=disabled
SELINUXTYPE=targeted 9.tr 内容替换 1对1的替换 不能替换字符串 (oldboy alex 错误的) sed替换
特殊符号的替换 PS: 有些命令不能直接对文件进行操作
[root@oldboy~]#tr ":" "#" 1.txt
tr: 额外的操作数 "1.txt"
Try 'tr --help' for more information. 方法1:
[root@oldboy~]#cat 1.txt |tr ":" "#"
root#x#0#0#root#/root#/bin/bash
bin#x#1#1#bin#/bin#/sbin/nologin
daemon#x#2#2#daemon#/sbin#/sbin/nologin 方法2:
[root@oldboy~]#tr ":" "#" < 1.txt
root#x#0#0#root#/root#/bin/bash
bin#x#1#1#bin#/bin#/sbin/nologin
daemon#x#2#2#daemon#/sbin#/sbin/nologin [root@oldboy~]#tr "/" "+" < 1.txt
root:x:0:0:root:+root:+bin+bash
bin:x:1:1:bin:+bin:+sbin+nologin
daemon:x:2:2:daemon:+sbin:+sbin+nologin
[root@oldboy~]#
[root@oldboy~]#
[root@oldboy~]#tr "\n" "+" < 1.txt
root:x:0:0:root:/root:/bin/bash+bin:x:1:1:bin:/bin:/sbin/nologin+daemon:x:2:2:daemon:/sbin:/sbin/nologin+[root@oldboy~]# 方法3: 无意义的替换 [root@oldboy~]#cat 2.txt
aabbcc
aabbcc
aabbcc
oldboy
[root@oldboy~]#tr "oldboy" "alex" < 2.txt
aaxxcc
aaxxcc
aaxxcc
xlexxx 9. alias 别名 系统安全设置
周玉强 强哥 小强 强强 钢炮
冉xx oldboy mv --->别名---> mv -i
rm --->别名---> rm -i
cp --->别名---> cp -i
ll --->别名---> ls -l [root@oldboy~]#rm -i 1.txt # -i 和用户交互 提高安全性
rm:是否删除普通文件 "1.txt"? rm='rm -i'
执行rm命令 其实是执行了 rm -i 第一个里程碑 如何查看系统设定好的别名
[root@oldboy~]#alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i' 第二个里程碑 临时取消别名 \ 转译 还原本来的意义 脱掉了马甲 [root@oldboy~]#\rm 1.txt 第三个里程碑 如何设置别名
格式:
alias 别名的名称(随便定义见名字知道其意思)='系统可执行的命令' [root@oldboy~]#alias rm='echo command bny....'
[root@oldboy~]#\rm 2.txt 例子:
[root@oldboy~]#alias vieth0='vim /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@oldboy~]#vieth0 第四个里程碑 取消别名
[root@oldboy~]#unalias rm 第五个里程碑 永久生效
写入 /etc/profile
source /etc/profile PS:工作中上吧的时候一定要注意查看 alias

day07---系统命令的更多相关文章

  1. Linux 系统命令笔记

    前言 翻出N年前学习笔记,感觉还有点用,放到博客备忘,自己查看用. 一. 系统命令笔记 1.系统 % /etc/issue           # 查看操作系统版本  %          # 观察系 ...

  2. MySql UDF 调用外部程序和系统命令

    1.mysql利用mysqludf的一个mysql插件可以实现调用外部程序和系统命令 下载lib_mysqludf_sys程序:https://github.com/mysqludf/lib_mysq ...

  3. Pyhton 利用threading远程下发文件和远程执行linux系统命令

    #!/usr/bin/env python # encoding: utf-8 #__author__ = 'cp' #__date__ = '21/07/16 上午 10:32' import th ...

  4. java中执行系统命令

    java程序中执行系统命令猛击下面的链接看看你就知道怎么用了 http://blog.csdn.net/a19881029/article/details/8063758 http://wuhongy ...

  5. windows系统命令总结

    windows系统命令总结 IIS管理器:inetmgr SQL server数据库管理器:ssms windows服务:services.msc

  6. Python系统命令操作

    系统命令 1.call 执行命令,返回状态码 ret = subprocess.call(['ls', '-l'], shell=False) ret = subprocess.call('ls -l ...

  7. Java 执行系统命令

    在Java中执行系统命令,主要是使用ProcessBuilder和Runtime.getRuntime().exec().而在这里主要是介绍两种方法的使用. 使用情景是在linux系统中,使用menc ...

  8. linux查看系统命令

    [root@server ~] # uname –a                       # 查看内核/操作系统/CPU信息的linux系统信息命令 [root@server ~] # hea ...

  9. Python执行系统命令的方法 os.system(),os.popen(),commands

    os.popen():用python执行shell的命令,并且返回了结果,括号中是写shell命令 Python执行系统命令的方法: https://my.oschina.net/renwofei42 ...

  10. 52-which 显示系统命令所在目录

    显示系统命令所在目录 which command-list 参数 command-list 是which搜索的一条或多条命令(实用程序) 示例 which 单条命令 $ which ls /bin/l ...

随机推荐

  1. [转帖]linux系统下grub.cfg详解和实例操作

    linux系统下grub.cfg详解和实例操作 简介 grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后,内核会根据grub配置文件中的配置,找到根分区所使用的文 ...

  2. 【转帖】【性能提升神器】STRAIGHT_JOIN

    今天给大家下另一个性能提升神器-STRAIGHT_JOIN,在数据量大的联表查询中灵活运用的话,能大大缩短查询时间. 首先来解释下STRAIGHT_JOIN到底是用做什么的: STRAIGHT_JOI ...

  3. 基于Seata探寻分布式事务的实现方案

    作者:京东物流技术与数据智能部 张硕 1 背景知识 随着业务的快速发展.业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向微服务架构.随之而来就必然遇到分布式事务这个难题,这篇文章 ...

  4. MySQL查询排序和分页

    连接数据库 mysql -hlocalhost -uroot -proot 排序查询语法: select 字段列表 from 表名 order by 字段1 排序方式1, 字段3 排序方式2,字段3 ...

  5. elementUI日期选择器,对日期格式进行处理

    使用elementUI日期选择器中,获取不同格式的时间 <el-form-item label="归零时间:" prop="zeroing"> &l ...

  6. 7.3 Windows驱动开发:内核监视LoadImage映像回调

    在笔者上一篇文章<内核注册并监控对象回调>介绍了如何运用ObRegisterCallbacks注册进程与线程回调,并通过该回调实现了拦截指定进行运行的效果,本章LyShark将带大家继续探 ...

  7. 8.5 CheckRemoteDebuggerPresent

    CheckRemoteDebuggerPresent 也是一个微软提供的反调试函数,该函数可以在本地或者远程进程中使用.函数接收两个参数进程句柄和一个指向布尔值的指针.如果指定的进程正在被调试,则函数 ...

  8. 7.2 C/C++ 实现动态链表

    动态链表是一种常用的动态数据结构,可以在运行时动态地申请内存空间来存储数据,相比于静态数组和静态链表,更加灵活和高效.在动态链表中,数据元素被组织成一条链表,每个元素包含了指向下一个元素的指针,这样就 ...

  9. LyScript 实现应用层钩子扫描器

    Capstone 是一个轻量级的多平台.多架构的反汇编框架,该模块支持目前所有通用操作系统,反汇编架构几乎全部支持,本篇文章将运用LyScript插件结合Capstone反汇编引擎实现一个钩子扫描器. ...

  10. element-ui表格筛选,根据表头属性显示隐藏列

    效果: 步骤: 1.标签上添加要过滤的源数组 <el-table-column label="标签" :filters="filterList" filt ...