重定向
本来从屏幕输出输入的内容,可以更改到文件或其他设备的操作叫重定向
可以打印输入的内容,也可以重定向内容到文件,不存在就创建文件并写入内容
同样文件可以更改内容
两个箭头追加重定向文本
这个操作叫输出重定向:
1如果目标文件不存在,创建,否则直接进行访问
2.访问
a. 输出重定向 (从文件开始,覆盖式的写入) >
b. 追加重定向 (从文件的结尾,追加式的写入) >>
输入一个cat,会从键盘输入缓冲区中读内容,读到什么打印什么
按crtl+c结束
也可以从文件中读取内容显示,可以加小于符号
输入重定向
1.文件名 2.文件 3.显示器
从文件中读取内容重定向到新文件中
liux下,一切皆文件。对于键盘显示器等读和写,直接用函数指针调用不同的函数功能。这样可以统计处理,让读写变的简单
文件查看
cat
对于一个内容较多的文件,cat会显示最后一屏幕的内容,如果要看前面的内容需要慢慢翻上去
more
语法:more[选项][文件]
功能:more命令,功能类似cat
常用选项:
-n 所有行编号
q 退出more
-数字,显示前几行
打印一屏幕内容,暂停,继续打印按回车,逐行增加查看,退出按q,或打印完自动结束
less 重要
对于查看文件,更推荐less。是对文件或其他源分页显示的工具,是正统查看文件内容的工具,功能很强大
对比more更有弹性,less可以用[pageup][pagedown]等功能键前后翻看,也拥有更多的搜索功能
语法:less [参数] 文件
功能:
less与more类似,但使用less可以随意浏览文件,而more只能向前移动,不能向后,less查看前不会加载整个文件
选项:
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n: 重复前一个搜索(与/或?有关)
N:反向重复前一个搜索 (与/或?有关)
q:quit
终止异常情况
按crtl + C 可以终止运行的命令
head
head用来显示开头至标准输出中,开头某个数量的文字区块
语法: head [参数]…[文件]…
功能:
显示档案的开头至标准输出中,默认打印开头10行
选项:
-n<行数> 显示的行数
tail
和head相对,显示结尾的几行。使用-f选项可以查阅正在改变的日志文件,不断刷新,看到最新的文件内容
语法: tail [必要参数][选择参数][文件]
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息处理,常用来查看日志文件
选项:
-f 循环读取
-n<行数> 显示行数
如果想拿中间部分的内容,怎么取
如果想拿文件的3-5行,可以先取这个文件的前5行,重定向到新文件中,然后取新文件末尾的3行
可以利用 | 这个符号,管道来进行资源流向的改变。将前面的内容继续交给后面的命令处理
wc -l可以统计内容数量
时间相关指令
date显示
用法: date [OPTION]… [+FORMAT]
- 在显示方面,可以设定显示格式,加号后接标记,常用标记如下:
- %H: 小时(00…23)
- %M: 分钟(00…59)
- %S: 秒(00…61)
- %X: 相当于 %H:%M:%S
- %d: 日(01…31)
- %m: 月份(01…12)
- %Y: 完整年份(0000…9999)
- %F: 相当于 %Y-%m-%d
2.设定时间方面
- date -s //设置当前时间,只有root权限才能设置,其他只能查看
- date -s 20080523 //设置成20080523,会把具体时间设置成空 00:00:00
- date -s 01:01:01 //设置具体时间,不会对日期修改
- date -s “01:01:01 2008-05-23” //设置全部时间
- date -s "01:01:01 20080523 " //设置全部时间
- date -s “2008-05-23 01:01:01” //设置全部时间
- date -s “20080523 01:01:01” //设置全部时间
3.时间戳
时间->时间戳: date+%s
时间戳->时间: date -d@1709045816
表示从1970年1月1日开始所经过的秒数,不考虑润秒
第0秒的时间戳,因为是有时差,所以并不是0点0分
也可以用在线转换工具
cal
可以用来显示公历,以地球绕行太阳一周为一年
格式:cal [参数][月份][年份]
功能:查看日历等时间信息,如果只有一个参数,表示年份(1-9999),两个参数,表示月份和年份
常用选项:
-3 显示系统前一个月,当前月,下一个月的日历
-j 显示在当年中的第几天
-y 显示当前年份的日历
find 重要重要
linux下find命令在目录结构中搜索文件,并执行指定的操作。find提供了很多条件,功能很强大
即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效
运行一个非常耗资源的find命令时,很多人倾向于放在后台,因为遍历一个大的文件系统可能会花费很蠢时间(这里指30g以上的文件系统)
语法: find pathname -options
功能: 用于在文件树查找文件,做出相应处理(可能访问磁盘)
常用选项:
-name 按文件名查找
alias
给命令起别名,实际上是新建了一个命令程序
alias [名字]=‘[原命令]’
grep
语法: grep [选项]搜索字符串
功能: 在文件中搜索字符串,将找到的行打印
常用选项:
-i 忽略大小写的不同
-n 顺便输出行号
-v 反向选择,即显示出没有搜索字符串的行
zip/unzip
压缩用来方便归档和传输
语法: zip压缩文件 zip目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r 递归处理,将目录下所有文件和子目录一起处理
将test2目录压缩:zip test2.zip test2/*
解压到tmp目录:unzip test2.zip -d /tmp
对于单个文件不需要带选项,对于目录文件就需要递归处理
解压加-d可以指明路径
tar
打包/解压,不打开它,直接看内容
tar [-cxtzjvf] 文件与目录…参数
- -c: 建立一个压缩文件的参数指令(creat的意思)
- -x: 解开一个压缩文件的参数指令
- -t: 查看tarfile里面的文件
- -z: 是否同事具有gzip的属性?即是否需要用gzip压缩
- -j: 是否同事具有bzip2的属性? 即是否需要用bzip2压缩
- -v: 压缩的过程中显示文件,常用,不建议用在背景执行过程
- -f: 使用档名,在f之后立即接当名,不要再加参数
- -C: 解压到指定目录
tgz是tar.gz的缩写
解压只需要换一个选项x,z选项去掉压缩为tar包,tar包并不压缩
指定目录
bc
进行浮点运算
输入quit退出
uname -r
语法: uname [选项]
功能: 获取电脑和操作系统的相关信息
补充: uname可现实主机所用的操作系统版本、硬件的名称基本等信息
常用选项:
-a或-all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
x86_32是32位,x86_64是64位
xargs
将文本作为参数从管道流到命令中
命令其实就是程序,执行命令就是执行程序
查看ls命令的程序,输入which加命令显示文件的路径,然后查看这个文件
热键
Tab—具有命令补全和档案补齐的功能
Crtl-c按键—让当前程序停掉
crtl-d按键—代表键盘输入结束的意思,也可以取代exit,终止登录
crtl-r 历史搜索,快速输入历史命令
关机
语法: shutdown [选项] 场景选项:
- h: 系统服务停掉后,立即关机
-r: 系统服务停掉后重新启动
-t sec:-t后面加秒数,过几秒关机的意思
history
可以看到历史命令
以下命令扩展
安装的登录命令: login、shutdown、halt、reboot 重启、install、mount、umount、chsh、exit、last
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、In
系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who
其他命令: tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode
shell命令和运行原理
linux是一个操作系统,称之为核心(kernel),但一般用户不能直接使用,因为操作难度和成本都笔记高,也可能会出错带来不安全因素。所以有了“外壳程序”,来和操作系统沟通
外壳程序的意义:
1.用户和操作系统交互中间软件层
2.可以在一定程度,起到保护操作系统的作用
外壳将使用者的命令翻译给核心处理。同时,将核心的处理结果翻译给使用者
Shell外壳最简单的定义:命令解释器(conmmand interpreter)包含:
堆Windows GUI,不是直接操作内核,而是通过图形接口完成操作
shell对于linux有同样的作用,对指令解析给内核,反馈结果