关于LINUX最基本的一些命令?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于LINUX最基本的一些命令?相关的知识,希望对你有一定的参考价值。
Linux运维人员必会的120个命令跟老男孩学Linux运维:核心系统命令实战
前言
第1章 Linux命令行简介 / 1
1.1Linux命令行概述 / 1
1.2在Linux命令行下查看命令帮助 / 4
1.3Linux shutdown reboot halt / 9
关机:
shutdown -h now
halt
init 0
第2章 文件和目录操作命令 / 13
2.1pwd:显示当前所在的位置 / 13
2.2cd:切换目录 / 16
2.3tree:以树形结构显示目录下的内容 / 18
2.4mkdir:创建目录 / 22
2.5touch:创建空文件或改变文件的时间戳属性 / 27
2.6ls:显示目录下的内容及相关属性信息 / 30
2.7cp:复制文件或目录 / 39
2.8mv:移动或重命名文件 / 42
2.9rm:删除文件或目录 / 45
2.10rmdir:删除空目录 / 48
2.11ln:硬链接与软链接 / 49
2.12readlink:查看符号链接文件的内容 / 54
2.13find:查找目录下的文件 / 55
2.14xargs:将标准输入转换成命令行参数 / 68
2.15rename:重命名文件 / 71
2.16basename:显示文件名或目录名 / 72
2.17dirname:显示文件或目录路径 / 72
2.18chattr:改变文件的扩展属性 / 73
2.19lsattr:查看文件扩展属性 / 75
2.20file:显示文件的类型 / 76
2.21md5sum:计算和校验文件的MD5值 / 77
2.22chown:改变文件或目录的用户和用户组 / 80
2.23chmod:改变文件或目录权限 / 81
2.24chgrp:更改文件用户组 / 85
2.25umask:显示或设置权限掩码 / 86
2.26老男孩从新手成为技术大牛的心法 / 90
第3章 文件过滤及内容编辑处理命令 / 91
3.1cat:合并文件或查看文件内容 / 91
3.2tac:反向显示文件内容 / 103
3.3more:分页显示文件内容 / 104
3.4less:分页显示文件内容 / 107
3.5head:显示文件内容头部 / 109
3.6tail:显示文件内容尾部 / 111
3.7tailf:跟踪日志文件 / 114
3.8cut:从文本中提取一段文字并输出 / 115
3.9split:分割文件 / 117
3.10paste:合并文件 / 118
3.11sort:文本排序 / 123
3.12join:按两个文件的相同字段合并 / 127
3.13uniq:去除重复行 / 129
3.14wc:统计文件的行数、单词数或字节数 / 131
3.15iconv:转换文件的编码格式 / 133
3.16dos2unix:将DOS格式文件转换成UNIX格式 / 134
3.17diff:比较两个文件的不同 / 135
3.18vimdiff:可视化比较工具 / 138
3.19rev:反向输出文件内容 / 139
3.20tr:替换或删除字符 / 140
3.21od:按不同进制显示文件 / 143
3.22tee:多重定向 / 145
3.23vi/vim:纯文本编辑器 / 147
3.24老男孩逆袭思想:做Linux运维的多个好处 / 152
第4章 文本处理三剑客 / 153
4.1grep:文本过滤工具 / 153
4.2sed:字符流编辑器 / 159
4.3awk基础入门 / 165
第5章 Linux信息显示与搜索文件命令 / 176
5.1uname:显示系统信息 / 176
5.2hostname:显示或设置系统的主机名 / 178
5.3dmesg:系统启动异常诊断 / 179
5.4stat:显示文件或文件系统状态 / 181
5.5du:统计磁盘空间使用情况 / 183
5.6date:显示与设置系统时间 / 186
5.7echo:显示一行文本 / 190
5.8watch:监视命令执行情况 / 193
5.9which:显示命令的全路径 / 195
5.10whereis:显示命令及其相关文件全路径 / 196
5.11locate:快速定位文件路径 / 197
5.12updatedb:更新mlocate数据库 / 199
5.13老男孩逆袭思想:新手在工作中如何问问题不会被鄙视 / 200
第6章 文件备份与压缩命令 / 201
6.1tar:打包备份 / 201
6.2gzip:压缩或解压文件 / 208
6.3zip:打包和压缩文件 / 211
6.4unzip:解压zip文件 / 212
6.5scp:远程文件复制 / 214
6.6rsync:文件同步工具 / 216
6.7老男孩逆袭思想:新手如何高效地提问 / 220
第7章 Linux用户管理及用户信息查询命令 / 222
7.1 useradd:创建用户 / 222
7.2usermod:修改用户信息 / 227
7.3userdel:删除用户 / 229
7.4groupadd:创建新的用户组 / 230
7.5groupdel:删除用户组 / 231
7.6passwd:修改用户密码 / 232
7.7chage:修改用户密码有效期 / 237
7.8chpasswd:批量更新用户密码 / 238
7.9su:切换用户 / 240
7.10visudo:编辑sudoers文件 / 242
7.11sudo:以另一个用户身份执行命令 / 244
7.12id:显示用户与用户组的信息 / 248
7.13w:显示已登录用户信息 / 249
7.14who:显示已登录用户信息 / 250
7.15users:显示已登录用户 / 252
7.16whoami:显示当前登录的用户名 / 253
7.17last:显示用户登录列表 / 253
7.18lastb:显示用户登录失败的记录 / 254
7.19lastlog:显示所有用户的最近登录记录 / 255
第8章 Linux磁盘与文件系统管理命令 / 257
8.1fdisk:磁盘分区工具 / 257
8.2partprobe:更新内核的硬盘分区表信息 / 265
8.3tune2fs:调整ext2/ext3/ext4文件系统参数 / 266
8.4parted:磁盘分区工具 / 268
8.5mkfs:创建Linux文件系统 / 272
8.6dumpe2fs:导出ext2/ext3/ext4文件系统信息 / 274
8.7resize2fs:调整ext2/ext3/ext4文件系统大小 / 275
8.8fsck:检查并修复Linux文件系统 / 278
8.9dd:转换或复制文件 / 281
8.10mount:挂载文件系统 / 284
8.11umount:卸载文件系统 / 288
8.12df:报告文件系统磁盘空间的使用情况 / 289
8.13mkswap:创建交换分区 / 293
8.14swapon:激活交换分区 / 294
8.15swapoff:关闭交换分区 / 295
8.16sync:刷新文件系统缓冲区 / 296
第9章 Linux进程管理命令 / 298
9.1ps:查看进程 / 298
9.2pstree:显示进程状态树 / 305
9.3pgrep:查找匹配条件的进程 / 306
9.4kill:终止进程 / 307
9.5killall:通过进程名终止进程 / 310
9.6pkill:通过进程名终止进程 / 311
9.7top:实时显示系统中各个进程的资源占用状况 / 313
9.8nice:调整程序运行时的优先级 / 320
9.9renice:调整运行中的进程的优先级 / 323
9.10nohup:用户退出系统进程继续工作 / 324
9.11strace:跟踪进程的系统调用 / 325
9.12ltrace:跟踪进程调用库函数 / 332
9.13runlevel:输出当前运行级别 / 334
9.14init:初始化Linux进程 / 335
9.15service:管理系统服务 / 335
第10章 Linux网络管理命令 / 338
10.1ifconfig:配置或显示网络接口信息 / 338
10.2ifup:激活网络接口 / 343
ifup eth0
10.3ifdown:禁用网络接口 / 343
ifdown eth0
service network restart(/etc/init.d/network restart) 激活整个网络,所有网卡。
10.4route:显示或管理路由表 / 344
10.5arp:管理系统的arp缓存 / 350
10.6ip:网络配置工具 / 351
10.7netstat:查看网络状态 / 358
10.8ss:查看网络状态 / 362
10.9ping:测试主机之间网络的连通性 / 363
10.10traceroute:追踪数据传输路由状况 / 366
10.11arping:发送arp请求 / 367
10.12telnet:远程登录主机 / 369
10.13nc:多功能网络工具 / 370
10.14ssh:安全地远程登录主机 / 373
10.15wget:命令行下载工具 / 376
10.16mailq:显示邮件传输队列 / 379
10.17mail:发送和接收邮件 / 381
10.18nslookup:域名查询工具 / 386
10.19dig:域名查询工具 / 389
10.20host:域名查询工具 / 393
10.21nmap:网络探测工具和安全/端口扫描器 / 394
10.22tcpdump:监听网络流量 / 398
第11章 Linux系统管理命令 / 407
11.1lsof:查看进程打开的文件 / 407
11.2uptime:显示系统的运行时间及负载 / 411
11.3free:查看系统内存信息 / 411
11.4iftop:动态显示网络接口流量信息 / 413
11.5vmstat:虚拟内存统计 / 415
11.6mpstat:CPU信息统计 / 419
11.7iostat:I/O信息统计 / 420
11.8iotop:动态显示磁盘I/O统计信息 / 423
11.9sar:收集系统信息 / 425
11.10chkconfig:管理开机服务 / 430
11.11ntsysv:管理开机服务 / 433
11.12 setup:系统管理工具 / 434
11.13ethtool:查询网卡参数 / 436
11.14mii-tool:管理网络接口的状态 / 437
11.19rpm:RPM包管理器 / 443
11.20yum:自动化RPM包管理工具 / 446
top命令
第12章 Linux系统常用内置命令 / 450
12.1Linux内置命令概述 / 450
12.2Linux内置命令简介 / 450
12.3Linux常用内置命令实例 / 452 参考技术A Linux常用命令大全
系统信息
arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒
clock -w 将时间修改保存到 BIOS
关机 (系统的关机、重启以及登出 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
文件和目录
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)
mkdir dir1 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接 参考技术B linux基本命令有:
①ls
功能:列出当前目录所有文件
②cd
功能:跳转到指定目录
③cat
功能:输出指定文件的内容
④cp
功能:复制文件
⑤mv
功能:移动文件
⑥rm
功能:删除文件
⑦vi
功能:编辑文件 参考技术C 你要什么命令,查看IP -- ifconfig
Linux基本命令解析
上篇博文为大家简单介绍了在Linux中的一些简单命令以及vi/vim的初步介绍,在此为大家在介绍一下关于vi/vim的一些操作以及Linux中一些命令的基本操作知识;
vi/vim作为Linux中的默认编辑器它不仅仅只能编辑一个文本文件,而是能够同时编辑多个文本文件,在多个文本文件中可以相互转移,方便进行工作;对多个文本文件进行操作可以有编辑模式以及末行模式两种。
在vim下创建多个文件:
$vim file1 file2 file3…
在上述情况中创建多个文件需使用下述编辑模式下的调用方法转换文本文件;
在编辑模式下:
:next(可编辑下一个文件)
:prev(返回上一个编辑文件)
:first(查看或编辑第一个文档的内容)
:last(查看或编辑最后一个文件)
在vim下创建多个文件分布在同一个平面:
vim –o|-O file1 file2 file 3
-o:水平显示文件;
-O:垂直显示文件;
Ctrl+w:跳过窗口;
#Ctrl+w:跳过多个窗口;
Ctrl+w,s:将一个文件水平分屏显示;
Ctrl+w,v:将一个文件垂直分屏显示;
:qa:一次性退出所有编辑窗口;
:wa:保存全部;
在vim进行文本文件编辑时,还可以在vim界面下对shell命令进行交互,在敲击脚本时可以在vim下调用命令查看等;
跟shell交互(末行模式)
格式::!+命令
例
:!ifconfig(查看虚拟机IP)
:!mkdir 。。。。(执行一次创建目录的命令)
在将文件保存到所创建的路径下:
格式::!w 。。。。
例
:w /PATH/TO/SOMEFILES(将文本文件另存在所定路径下)
:m,nw /PATH/TO/SOMEFILES(保存文本m至n行的内容在所定路径下)
:m,+nw /PATH/TO/SOMEFILES(保存文本以m行为起点往下的n行的内容在所定路径下)
:.,$w /PATH/TO/SOMEFILES(保存文本所有内容在所定路径下)
shell概述:
UNIX的shell有很多种类,Linux系统继承了UNIX系统中shell的全部功能,现在默认使用的shell是bash;若需要更换shell则在终端中直接输入shell名,回车。如注销当前shell则输入exit,回车;
shell具有如下突出特点:
①对已有的命令进行适当组合构成新的命令;
②提供文件名扩展字符[],*,^等;
③可以使用shell的内置命令,而勿需建立新的进程;
④允许灵活的使用数据流,通配符,输入/输出重定向,管道线等机制;
⑤提供顺序,条件,循环等控制流程;
⑥提供在后台(&)执行的能力;
⑦允许用户创建,修改命令,命令提示符和其他系统行为;
⑧提供一个高级命令语言,允许用户创建从简单到复杂的程序;
Bash的特性:
一.命令的别名:
用户可以自定义命令,利用简单的方式来代替复杂的方式即命令别名的含义;
例如
alias cls=‘clear’(以cls字符串代替clear清空屏幕命令)
注意:需要注意的是,当前所定义的别名只在dangqianshell运行的环境下可以使用,一旦退出shell的连接,再次登陆时就要重新定义别名;但是如果想让修改的别名永久生效,可以采用修改.bashrc配置文件的方法,其中保存的别名并不会立即生效,只有在重新加载该文件的内容后,才会生效,且永久生效;
在修改.bashrc文件后如想在当前连接下立刻使用,可以即使加载.bashrc配置文件就可以不用退出连接使用设置的别名即
. .bashrc(在当前的shell当中加载文件的内容)
撤销别名的命令:
unalias;
unalias NAME;
二.命令历史(一部分保存在bash历史缓冲区中,一部分保存在硬盘):
BASH进程会保存其会话中用户曾经执行过的命令,以方便用户重复去执行某个命令;通过BASH提供的 历史命令文件来持久保存执行过的命令,每个用户都有其自己私有的历史文件;登陆shell的时候, bash会自动读取~/.bash_history文件中所记录的所有命令;
显示历史命令:
history命令显示命令历史表中的命令,其语法格式是:
history[option][arg...]
$history:命令不带任何参数时,则history命令会显示历史命令清单;
$history 14:最近执行的14条命令;
$history –d 9:删除第九条命令;
$history –c:清空历史缓冲区的历史命令;
重复之前使用的命令:
①上下箭头,回车执行;
②Ctrl+p(等同于上方向键)
③!-1把之前执行过的命令在执行一次;
④!!执行上一次的命令;
重复执行历史缓冲区的命令:
!number:重复执行从历史缓冲区的第number个命令执行;
!string:从历史缓冲区中查找最近一次执行过的以“string开头的命令;
!?string:从历史缓冲区中查找最近一次执行的包含字符串的命令,并执行;”
!-n:执行缓冲区倒数第n条;
Ctrl+r:在历史缓冲区中实施搜索,回车执行即可;
重复使用历史命令中的一部分:
!$:表示最后一次命令中最后一个参数;
ESC,.:按完ESC再按.可以把最后一次命令的最后一个参数补全;
!^:表示上一个命令的第一个参数;
!:number:表示上一个命令的第number个参数;
! SEQUENCE:NUMBER:表示在历史缓冲区中第“SEQUENCE”个命令的第NUMBER个参数;
在默认情况下,bash使用用户主目录下的文件“.bash_history”来保存命令历史。但是,用户也可以通过重新赋值环境变量来改变存放历史命令的文件。如
HISTSIZE;
HISTFILESIZE(保存历史的文件的大小);
HISTTIMEFORMAT(历史时间格式);
HISTCONTROL(历史命令的记录方式);
$HISTFILE="/home/mengqc/.myhistory"
命令执行后,历史命令将存放在上述路径下;
也可以通过HISTSIZE来修改历史文件中保留命令的个数;
$HISTSIZE=400
同理,可以修改HISTCONTROL的值
HISTCONTROL:
ignoredups:忽略连续且相同的命令的历史缓存;
ignorespace:忽略以空白字符开头的命令;
ignoreboth:以上两个功能都启用;
三.快捷键
C—>Ctrl
M-->Alt
E-->ESC
DEL-->Backspace
C-l:Ctrl+l,clear,清0;
C-a:Ctrl+a,光标移到开头;
C-e:Ctrl+e,光标移到编辑行末尾;
C-k:Ctrl+k,删除光标所在位置至行尾的命令行信息;
C-u:Ctrl+u,删除光标所在位置至行首的命令行信息;
C-c:Ctrl+c,取消当前命令的执行;
四.命令补全机制
在bash命令行上输入目录或文件名时,如果记不清楚完整的目录名或文件名,则可以使用Tab键,Linux就会根据输入的字母查找以那些字母开头的目录或文件,并自动补全;
使用Tab键可以完成命令补全如果给出的字符串不能作为唯一标识,则不予补全;在此敲击Tab键,bash会给出参考列表,如果参考列表中的内容过多则会询问是否列出这么多功能;“空格”+tab键能把当前工作目录的所有文件显示出来;根据提供的参数路径来进行补全,如果参数没有任何提示信息,则默认从工作目录进行查找;
Shell命令的执行过程:
1.shell会根据用户键入回车来判断用户的输入结束
2.shell会将收集到的命令信息,根据空白字符分段(token)
第一个分段被理解为命令字段;
3.判断第一个字段是内部命令还是外部命令,如果是内部命令,则直接运行;如果是外部命令, 通过PATH变量所指示的路径信息,去查找相关位置,以确定是否存在同名文件,如果有,就执 行;否则就报错;
4.判断选项是否正确,判断参数是否正确;
五. Shell的命令行展开特性:
~:bash会自动将其展开为当前登录用户的家目录;
~STRING:bash会自动将其展开为以“STRING”为用户名的用户的家目录;
~+:调用shell变量“pwd”的值;
~-:调用shell变量“OLDPWD”的值;
{}:在花括号中可以填充一个以“,”分割的路径列表,bash会将其展开为多个独立的路径;
问题:创建a_a,a_b,b_a,b_b目录
mkdir{a,b}_{b_a}
六.命令的执行结果
任何一个Linux命令都有两种执行结果,一是命令的正常输出结果;二是命令执行状态的返回值;
其一:
``:反向单引号,反引号,可以执行在倒引号里的所有命令;
$():标准的命令引用格式;
如$ss=$(echo);即可以利用ss代替echo命令;
wc:不加参数选项时,以标准输入接入,再Ctrl+d退出,显示行数,字数,字节数等;
-c:只显示字节数
-l:只显示行数
-w:只显示字数
其二:命令执行状态的返回值;
跟命令执行成功与否相关的返回内容;
保存在bash的一个特殊变量中:$?
RETSTAT=$?将上一个命令的状态返回值永久保存下来;
0:表示命令执行成功;
1,2,127:bash的内置状态返回值;
1:表示小问题;
2:严重的问题;
127:命令本身出现问题;
3-126,128-255:用户自定义状态信息;
七.引用
‘’(单引号):强引用
凡是被单引号引用的内容,bash一律将其视为普通字符,即便其本身有特殊功能和作用也是如此。但 单引号本身是个例外。
“”:弱引用
被双引号引用的内容中,有一些特殊字符仍然会保留其特殊含义,比如说$,\,``;其他均作为普通字符对待;$表示变量替换,``倒引号表示命令替换,反斜线\仅当其后的字符是“$”,“`”,“"”,“\”或换行符之一时,“\”才是转义字符。转义字符告诉shell不要对其后面的那个字符进行特殊处理,只是当作普通字符;
``:倒引号
倒引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令行,并以他的标准输出结果取代整个倒引号部分;
例如:
$echo current directory is `pwd`
$current directory is /home/m
问题:备份/etc/整个目录的内容到/tmp,要求备份后的文件名为etc-系统时间;
$cp -a /etc /tmp/etc-"date +%F%T"
[[email protected]~]$ echo ‘(只输入一个单引号)
>aaa
>dfs
>‘
aaa
dfs
八.转义命令
alias ls=’rm –rf’
当对一些危险命令设置别名时可以通过转义命令“\”撤销别名,亦可通过转义命令对输入的命令进行换行输入;
\ls(撤销别名)
\:转义字符,让后面的一个字符失去某种意义;
[[email protected]~]$ echo \(这样可以一行行输入)
>w \
>w \
>w
w ww
九.Globbing文件名通配
*:匹配任意长度的任意字符,某些特殊位置的“.”不能被匹配,路径名中的/只能显示匹配,空也可以匹配;例如,“f*”可以匹配f,fa,f1,模式*f不能匹配.profile而.*file可以;
?:匹配任意单个字符,必须且只有一个字符被匹配,无法匹配空字符;例如,“f?”可以匹配f1,fa等,但不能匹配f,fab;
[]:匹配任意指定范围内的任意单个字符,必须且只有一个字符被匹配;例如f[abcd]可以匹配fa,fb,fc,fd但不能匹配fab,fac之类的多个字符;
注意:
[a-z]:a,A,b,B,c,C…z
[A-Z]:A,b,B…z,Z
字符集:[::]
这些字符集,如果要用则必须把他放入中括号(通配符)中即两对括号
[:lower:]表示所有的小写字母;
[:upper:]表示所有的大写字母;
[[:lower:]]通配任意单个小写字母;
[:alpha:]表示所有字母字符;
[:digit:]表示所有的十进制数字;
[:alnum:]表示所以大小写字母以及十进制数字;
[:space:]表示空白字符;
[:punct:]所有的标点符号;
^:取反
例:ls p[^a]d(不要小写字母a)
问题:显示/etc/目录下,以非字母开头,且其后跟了一个字母
$ls -a /etc/[^[:alpha:]][a-Z]*
十.输入出处重定向
在使用计算机的时候,实现某种功能的主体是:程序;
程序=指令+数据;
数据:文件,一切皆文件;
可以用来输入的设备:文件;键盘文件,文件系统中的常规文件,网卡设备,声卡设备等;
可以用来输出的设备:文件,显示器,文件系统中常规文件,网卡设备,声卡设备等;
每一种程序都会有三种形式的数据流
输入的数据流:为程序获取数据流;默认的输入数据流的来源叫做键盘;
输出的数据流:将程序处理的数据结果展示给用户的数据流;默认的输出数据流的终点是显示器;
错误数据流:将程序无法处理或处理过程中出现问题的结果展示给用户的数据流;默认的错误数据流 的终点是显示器;
从键盘输入的数据流称为标准输入;
到显示器上的输出数据流成为标准输出;
到显示器上的错误数据流称为标准错误输出,简称标准错误;
IO重定向:采用非标准设备文件实现的IO操作;
简单来说:
不是从键盘设备完成的数据流输入就可以称为输入重定向或重定向输入;
不是到显示器设备的正确输出数据流就被称为输出重定向或重定向输出;
不是到显示器设备的错误输出数据流就被称为错误输出重定向或重定向错误输出;
文件描述符:file Descriptor,FD(Linux用文件的方式来标识标准输入输出以及错误)
0:标准输入,stdin
1:标准输出,stdout
2:标准错误,stderr
输出重定向:
输出重定向有两种
一,输出重定向符“>”,其作用是,把命令的标准输出重定向到指定文件,覆盖文件的内容,这样该命令就不会在屏幕下显示,而是写入指定文件;“>”还可以直接创建文件如,>filename,可直接创建文件;
输出重定向的一般格式:
命令 > 文件
例如
$who > abc
把命令who中输出重定向到abc文件中,在屏幕下看不到执行who的结果。查看abc文件的内容可以查看到who命令下的内容;
二,输出附加定向符“>>”,其作用是,把命令的输出附加到指定文件后面,而该文件原有内容不被破坏;
为了防止输出定向符“>”对文件的覆盖Linux中设定了一个命令,可以防止人们在无意识的情况下造成破坏性的操作;
~]#set–C //开启防误覆盖开关;
在此开关开启后可以使用“>|”符号继续覆盖重定向;
~]#set +C //关闭防误覆盖开关;
错误重定向:
其作用是,将命令执行系统所产生的错误提示输出到一个文件中;
2>:覆盖错误重定向;
2>>:追加错误重定向;
合并标准输出和标准错误输出重定向:
其作用是既可以输出标准输出的值到一个文件,又可以输出标准错误的值到文件;
1)&>,&>>(方法新但不是所有bash都支持)
2)COMMAND>|>> /PATH/to/SOMEFILE 2>&1(&1把错误标准输出也放入之前的标准输出路径中)
/dev/null:BlackHole,BitBucket(位桶)
ls/tmp/a.txt &> /dev/null
ls/tmp/a.txt > /dev/null 2>&1(两者等价)
输入重定向:
<:唯一输入重定向符号;(对应路径的内容输入到命令进行操作)
<<:Here Document此处文档;(在这个文档内当场添加内容,输入路径名退出)
<<<:Here String此处字符串;
输入重定向的一般格式:
命令 < 文件名
tr:具有转换,删除的功能;
利用tr命令将小写字母转换成大写字母,将数字删除等,tr命令不破坏文件内容;
关于tr命令的使用可以结合管道线和输入输出重定向操作结合使用
选项:
-d:删除指定字符串中的内容;
-s:删除所有重复出现的字符序列,如空格tr -s "\n"
例如:
#cat file | tr -d "Snail" > new_file
这里,凡是在file文件中出现的‘S‘,‘n‘,‘a‘,‘i‘,‘l‘字符都会被删除!而不是紧紧删除出现 的"Snail”字符串。
# cat file | tr -d "\n\t" >new_file
删除文件file中出现的换行‘\n‘、制表‘\t‘字符
[[email protected]]# tr -d ‘0-9‘ < /etc/passwd
(删除0-9的数字)
[[email protected]]# tr ‘a-z‘ ‘A-Z‘ < /etc/passwd
(将小写转换成大写)
#cat file | tr -s "\n" > new_file
删除空行
[[email protected]~]$ wc << /etc/onit
>hello
>everyone
>/etc/onit(以此为结尾)
2 2 15
[[email protected]]# cat > /etc/aqq <<EOF
>hell
>aaa
>EOF(以此结束)
[[email protected]]# cat /etc/aqq
hell
aaa
十一.管道(使用管道的命令必须要有标准输出,没有标准输出就没有下一个命令的输入数据流)
前面一个命令的输出结果作为后面一个命令的输入;
|:
COMMAND|COMMAND2|COMMAND3|…
注意:所有的用于管道连接的命令,都应该是能够有标注输出数据流的命令;
head–n 9 /etc/passwd |tail –n 1
tee:保存在文件里,同时标准输出;
例
[[email protected]]# echo hhhh | tee /tmp/tee.out
hhhh //先从echo输出,再保存在文件中
[[email protected]]# cat /tmp/tee.out
hhhh
[[email protected]]# echo "wujunqi,wujunqi2" | tr ‘,‘ ‘\n‘
wujunqi
wujunqi2
以上是关于关于LINUX最基本的一些命令?的主要内容,如果未能解决你的问题,请参考以下文章