linux 终端打印内容输出到文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 终端打印内容输出到文件相关的知识,希望对你有一定的参考价值。

参考技术A 方法:利用tee命令可将linux终端的打印内容输出到文件

示例:ifconfig | tee ifconfig.log

运行结束后可在ifconfig.log文件中查看打印的内容

linux基础指令以及权限管理

基础指令

#打印字符串
echo hello linux

#将file1 和 file2粘合在一起,打印到标准输出流
cat file1 file2

标准输入输出

  • 标准输入,stdin,即键盘、鼠标输入
  • 标准输出,stdout,即输出到终端
  • 标准错误流,stderr,输出到终端的错误信息

常用命令

# 列出目录下的文件以及详细信息
ls -l /home

#将file1复制到file2
cp file1 file2
#将多个文件复制到dir目录
cp file1 file2 file3 dir

#将file1重命名成file2,如果两者在同一个目录下
mv file1 file2
#将多个文件移动到dir目录下
mv file1 file2 file3 dir

# 创建文件file,如果已经存在则更新创建时间
touch file

#删除文件以及目录下的文件
rm file
rm -rf /dir

#将参数显示到标准输出,还可以输出变量以及
echo hello again

浏览目录

  • .表示当前目录
  • ..,表示上一层级目录
# 切到dir目录下
cd /dir

#创建dir目录
mkdir /dir

echo at* #打印当前目录下所有at开头的文件名
echo *at* #所有包含at的
echo *at # 所有at结尾的

# * 通配任意长度的字符串
# ? 通配单字符
# ‘*‘可以禁止通配符展开,即打印字符(*)本身

中间命令

#在passwd文件中匹配root关键字的行,并打印到标准输出流
grep root /etc/passwd
#匹配etc目录下所有包含root行的文件
grep root /etc/*
# -i表示不区分大小写匹配root,比如RooT,rOOT等
grep -i root /etc/passwd
#-v 表示反向匹配passwd文件,即打印所有不含有root的行
grep -v root /etc/passwd

#相当于cat和more的加强版,分屏浏览文件内容
less /usr/share/dict/words
# B前一屏,SPACE后一屏,q退出,/word向下搜索Word关键字,?word向上搜索Word关键字

#显示当前目录
pwd -P

#比较两文件的不同点
diff file1 file2

#查看file1文件的格式信息
file file1

#/dir目录下查找名为fileName的文件地址,并打印到终端
find /dir -name fileName

#打印file1的前10行,如果 -5,表示前5行
head file1
#打印passwd文件尾部内容
tail /etc/passwd

#排序file1的行,输出到标准流(终端)
sort file1
sort -r /etc/passwd#反向排序

基础文件系统知识

修改密码

passwd #然后输入一次旧密码,两次新密码即可修改当前用户密码
passwd root #修改root用户的密码

dot文件

即以.开头的文件,默认隐藏,调用ll可显示

环境变量与shell变量

STUFF=blade #给STUFF变量赋值blade,注意等号两边没空格,否则报错

echo $STUFF #打印STUFF变量

#将变量转成系统环境变量
export STUFF
  • 环境环境变量与shell变量的最大区别:shell变量只在当前shell作用,环境变量整个系统都可以使用,包括一些文件配置文件等。典型的,我们常配置$PATH变量

命令路径

$PATH变量,他定义了一堆目录,目录之间以:分割开来。在终端键入指令时,比如ls,就会在PATH定义的路径下搜索指令文件。如果有多个目录含有该指令,以第一个目录为准

敲命令行的一些快捷键

ctrl-b #光标左移
ctrl-f #光标右移
ctrl-p #上一个指令
ctrl-n #下一个指令
ctrl-a #光标移到指令开头
ctrl-e #移到指令结尾
ctrl-u #删除光标到开头的内容
ctrl-k #删除光标到结尾的内容
ctrl-y #粘贴前面删除的内容

帮助文档

#查看ls指令帮助文档
man ls

#查看find指令的文档
info find

#查找带sort关键字的所有指令
man -k sort

指令类型

类型代号 类型意义
1 用户指令
2 系统内核函数
3 lib函数库
4 接口、设备、驱动信息
5 配置文件,大多在/etc下面
8 超级用户的系统级指令

重定向以及管道

重定向:即将输出流的位置重新改变,常用的是该标准输出流到一个文件

#将grep的输出重定向到file1中
grep root /etc/passwd > file1
#一般的`>`会清空文件的本身内容在接受输出,使用`>>`会改为追加模式

管道:即前一个指令的输出做下一个指令输入,数据在指令之间流通就像流经不通的管道一样

# 将grep的输出内容使用sort排序,然后重定向到file1中
grep -v root /etc/passwd | sort > file1

查看、操作中进程

参数

  • pid:进程id,process id
  • tty:终端设备
  • stat:状态,S表示sleep,R表示RUN
  • time,占用CPU的时间
  • command:启用这个进程的指令

查询指令

# x:当前用户占用的所有进程 ax:系统所有进程 u:更详细的进程信息 w:显示命令行全名
#下面的意思为:显示进程名含有keywords的进程
ps -aux process_keywords

终结进程

kill pid
kill -term pid

kill -stop pid #暂停进程
kill -cont pid #唤醒进程

kill -9 pid

文件权限

技术分享图片

drwxr-xr-x的含义

文件详情的第一列,形如drwxr-xr-x,就是描述一个文件权限的描述符,共计10位字符

  • 0位,-:表示文件,d:表示目录,l:表示链接文件等
  • 1-3:表示文件所有者的权限,r:读 w:写 x:执行
  • 4-6:用户组的权限
  • 7-9:其他组的权限

修改文件权限

#group other增加读权限
chmod go+r file

#设置权限为744,即读写操作-读-读
chmod 744 file

数值描述权限

  • r:4
  • w:2
  • x:1

因此,744就是(4+2+1)-(4+0+0)-(4+0+0)

注意,一个目录如果没有x权限,只能ls查看他包含的文件名称,却不能cd进去,也不能读取他里面的文件

创建符号链接

符号链接,即快捷键,给某个目录建立一个快捷键

#target:目标目录 linkname:连接符号名
ln -s target linkname

压缩、归档

压缩:将文件归为一个压缩包,降低占用空间

#压缩
gzip file
#解压
gunzip file.gz

归档:即将多个文件或者某文件夹整合为一档

# c:创建归档 v:显示细节 f:表示文件,后接文件名
tar cvf archive.tar file1 file2...
#解压归档文件 x:解压
#tar xvf achiver.tar

其实,在实际中压缩与归档可以用tar指令一步完成,如

#解压
tar xzvf file.tar.gz

#压缩 归档
tar czvf achiver.tar.gz file1 file2...

linux目录结构

  • bin:可执行文件,c编译的二进制文件和shell脚本
  • sbin:超级用户的可执行文件,系统级指令
  • etc:配置文件
  • lib:编译动态链接库、函数等
  • home,家目录,理论上每个用户都在下面有个家
  • dev:接口设备文件
  • proc 和 sys:系统信息如进程信息等
  • var:运行时信息,日志、缓存、用户信息等
  • usr:大量系统文件,复杂
  • boot:启动的内核加载文件
  • media:可插拔设备文件
  • opt:第三方软件目录,很多系统没有这个目录

usr目录

存放用户空间的进程和数据

  • usr/bin 和 usr/sbin:用户使用的一些指令
  • usr/lib:链接库
  • include:c的哄文件(*.h)
  • info:指令文档
  • man:指令文档
  • local:管理员装软件的地方

内核位置

系统内核在vmlinuz或者boot/vmlinuz中

超级用户

通过修改etc/sudoers文件,可以添加拥有超级权限的普通用户。这个用户只需要敲sudo即可执行root权限

参考

  • 《精通linux第二版》

以上是关于linux 终端打印内容输出到文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将彩色文本输出到 Linux 终端?

linux怎么打印文件的路径和文件的内容

Linux 数据流重定向

linux基础指令以及权限管理

Linux 输出重定向 “>”“>>”“freopen”

Bash脚本:如何在Linux Shell上输出和格式化文本