linux shell 输出 linux的shell编程

大家好,今天小编来为大家解答以下的问题,关于linux shell 输出,linux的shell编程这个很多人还不知道,现在让我们一起来看看吧!

请问linux把shell的信息全部输出到文本文件的命令是什么

user创建新的用户账户

alias设置命令的别名

bzips.bz2的文件压缩程序

cal月历显示

cat将所有内容输出到标准输出设备

chfn更改finger命令显示的信息

chgrp变更文件与目录的所属组

chmod更换文件或目录的权限

chown更换文件或目录的拥有者或所在组

clear清除画面上的信息

col滤除控制字符

cp复制文件或目录

crontab设置定时器

date设置显示系统时间及日期

dd由键盘输入文件中的数据,然后依照指定格式来转换数据,再输出至所指定的文件或屏幕上

df显示磁盘文件系统的使用状况

dmesg显示开机信息

du显示目录或文件所占磁盘空间

e2fsck检查ext2文件系统

echo文字显示

edquota编辑quota

egrep查找文件中符合条件的字符串

exec shell执行命令后即交出控制权

export设置显示环境变量

fdisk磁盘分割(分区)

fg前台执行程序或命令

fgrep查找文件中符合条件的字符串

file识别文件类型

find查找文件或目录

finger显示用户信息

free查看内存状态

fsck检查文件系统并试着修复错误

ftp传输文件

grep搜索文件中符合条件的字符串

groupadd创建组

groupdel删除组

groupmod改变组识别码或名称

gunzip文件解压缩

gzip文件压缩

halt关闭系统

help shell创建命令内容

history列出所有使用过的命令

hostname查询及设置主机名称

id显示用户ID及所属的组ID

ifconfig显示或设置网络上状态

insmod加载模块

jobs显示正在后台执行的工作

kill删除执行中的程序或工作

last列出目前与过去登录系统的用户相关信息

less显示文件内容

lilo安装内核加载、开机管理程序

linuxconf设置Linux系统

ln连接文件或目录

locate寻找文件

login登录系统

logout注销系统

ls列出目录内容

lsmod显示已加载系统的模块名称

mail E-mail管理程序

make编译系统核心或模块

man在线查询命令

mcopy复制MS-DOS文件

mdel删除MS-DOS文件

mdeltree删除MS-DOS文件及包含的子目录文件

mdir显示MS-DOS目录

mkbootdisk创建目前系统的引导盘

mkdir创建目录

mke2fs创建ext2文件系统

mkfs创建各种文件系统

more一页一页地显示文件内容(文本文件)

miunt挂入文件系统

mouseconfig设置鼠标相关参数

mv移动或更名现有的文件或目录

netconfig Red Hat Linux用来设置网络功能的图形接口程序

netstat显示目前系统的网络状态

nice变更程序执行时的优先等级

nohup在用户注销系统后继续以后台的方式执行指定的命令

open查找第一个可使用的虚拟终端,并执行位于“--”符号后的命令

passwd提供管理员及用户管理或变更密码

patch利用修补文件来修改源文件

pine邮件处理程序,它可收发电子邮件及浏览新闻组

ping使用ICMP对远程主机发出要求响应的信息,以侦测远程主机的网络功能是否正常

ps显示程序执行的状况

pwd显示目前的工作目录

quota查询磁盘空间限制以及使用情形

quotacheck检查磁盘使用空间及限制

quotaoff关闭磁盘使用空间限制

quotaon开启磁盘使用空间限制

reboot停止系统运作并重新开机

renice重新调整程序执行的优先级

repquota显示磁盘空间限制状况

rm删除文件或目录

rmdir删除目录

rpm管理Red Hat Linux套件

set设置Shell的执行方式

setup设置公用程序,可设置的选项包括:登录认证方法、键盘配置、

鼠标配置、开机启动服务、声卡本配置、时区设置和 X Window配置等

shutdown系统关机

startx启动 X Window

stat显示inode内容

su变更用户身份

sync将内存缓冲区内的数据写入磁盘

tail列出文件内容最后部分

talk和其他用户交谈

tar文件备份

telnet登录远程主机

top显示及管理执行中的程序

traceroute显示封包到远程主机间的详细路径

umask在创建文件时预设的权限屏蔽

umount卸载文件系统

unalias删除别名

uname显示系统信息

uncompress将.Z文件解压缩

unzip将.Zip文件解压缩

useradd创建用户账号

userdel删除用户账户

vi编辑文本文件

w显示目前登录系统的用户信息

wall将信息传送至每位终端用户

whereis查找文件,预设whereis去查找的文件包括:/bin、/etc、/sbin、

/usr/bin、/usr/etc、/usr/games、/usr/include、/usr/lib、

/usr/local、/usr/man、/usr/sbin、/usr/src、/usr/local/bin、

/usr/local/etc、/usr/local/game、/usr/local/lib和/usr/local/man>

which在环境变量¥PATH设置的目录中,搜索符合条件的文件

who显示目前登录系统的用户信息

whoami显示用户名称

whois搜索并显示用户信息

write可传送信息给另一位登录的用户

Xconfigurator设置 Xfree86

xf86config设置XFree86

zip压缩程序

Linux Shell脚本系列教程:终端打印命令详解

这篇文章主要介绍了Linux Shell脚本系列教程(二):终端打印命令详解,本文着重讲解了echo终端打英printf终端打印两个打印出输出命令,需要的朋友可以参考下

终端打印

终端是交互式工具,用户可以通过它与shell环境进行交互。在终端中打印文本是大多数shell脚本和工具日常需要执行的基本任务。通过终端打印,人们可以知道系统的运行状态,这对用户来说是至关重要的。

echo终端打印

代码如下:

echo"Welcome to Bash"

echo'Welcome to Bash'

echo Welcome to Bash

以上三种方法的效果是一样的,输出内容都是“Welcome to Bash”,并在末尾添加换行符。在默认情况下,echo在每次调用后会添加一个换行符,而无需手动输入换行符。此处,建议养成一种习惯,对于其他的方法了解即可。

使用双引号时的限制

使用双引号输出字符串时,字符串内不能含有特殊字符(!),或者要在特殊字符前加转义字符/。使用单引号或者不使用引号,也可以正常输出特殊字符。

代码如下:

echo"cannot include!"#这种情况下将会报错

echo"cannot include/!"#这种情况下可以正常输出!

echo cannot include!#这种情况下可以正常输出!

echo'cannot include!'#这种情况下可以正常输出!

使用单引号的限制

在使用单引号输出字符串时,变量替换将会失效。使用双引号或者不使用引号可以正常输出被替换的变量。

代码如下:

var="abcd"

echo'1234$var'#这种情况下将输出 1234$var

echo 1234$var#这种情况下将输出 1234abcd

echo"1234$var"#这种情况下将输出 1234abcd

不使用引号时的限制

在不使用引号输出字符串的情况下,无法显示分号(;),因为分号在Bash中被用作命令定界符。使用单引号或者双引号可以输出分号。

代码如下:

echo hello;hello#第一个hello被当成字符串输出,第二个被当成命令

printf终端打印

printf使用的参数和C语言中的printf函数一样,使用引用文本或由空格分隔的参数。在printf函数中,我们可以使用格式化字符串,指定字符串的宽度、左右对齐方式等。在默认情况下,printf不会在行尾添加换行符,需要手动添加。

代码如下:

printf"Hello world"#使用引用字符

printf"%-5s%-10s%-4s/n" No Name Mark#指定宽度及左对齐方式

printf"%-5s%-10s%-4s/n" 1 Sarath 80.3456

工作原理

%s,%c,%d,%f都是格式替换字符,其所对应的参数可以置于带引号的格式字符串之后。

%-5s指明了一个格式为左对齐且宽度为5的字符串替换,-表示左对齐,若不指定对齐方式,则默认采用右对齐方式。宽度指定了保留给某个变量的字符数,如果要输出的内容宽度不足,则用空格填充,若多于指定宽度,则超出部分被丢弃。

%4.2f表示指定小数可以保留两个小数位,要注意的是4并不代表整数部分的位数,也不代表整数位和小数位的和。

注意:使用echo和printf的命令选项时,要保证选项出现在命令行内所有字符串之前,否者Bash会将选项视为另一个字符串。

补充内容

在echo中使用转义字符

在默认情况下,echo会自动在输出字符串末尾添加换行符,可以使用-n选项来忽略结尾的换行符。echo同样接受双引号字符串内的转义序列作为参数。如果需要使用转义序列,则采用echo-e“包含转义序列的字符串”这种形式,在ubuntu14.04中,不需要添加-e选项,若添加,则-e选项会被作为字符串的一部分输出。

代码如下:

echo"Hello World"#将在末尾添加换行符

echo-n"Hello Wordl"#末尾不会添加换行符

echo-e"1/t2/t3"#将输出-e 1 2 3

echo"1/t2/t3"#将输出1 2 3

打印彩色输出

在终端中生成颜色输出,有助于我们从大量文本中快速定位特定的信息,我们可以使用转义序列来实现颜色输出。

每种文本颜色都有对应的颜色码。

   代码如下:

echo-e"/e[1;31m This is red text/e[0m"

echo-e"/e[1;41m This is red background/e[0m"

#ubuntu14.04不支持这种方式改变文本或者背景颜色

如何在Linux终端里用Shell和C输出带颜色的文字

我们知道,使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,不管是用shell还是C语言。

一、shell下的实现方法

先来讲在shell下,如何实现。用echo命令就可以实现,参看以下例子:

echo-e"\033[32mHello, world!"

当你在终端里敲下这条命令后,是不是发现系统用绿色输出了"Hello,world!",不止如此,连之后的命令提示符都变成了绿色?不要着急,听我继续说。echo命令-e选项的作用是激活终端对反斜线转义符(即\)的解释。引号内\033用于引导非常规字符序列,在这里的作用就是引导设置输出属性,后边的[32m就是将前景色设置为绿色,字母m表示设置的属性类别,数字代表属性值。设置可以单独使用,例如:

echo-e"\033[0m"

这行命令的作用是恢复属性为默认值,也就是说0m设置项用于恢复默认值。现在你的终端是不是又一切正常了?

理解了这些,剩下的就简单了。用这种命令,除了设置文本前景色,还可以设置很多属性。下边列出其他的设置项:

--------------------------------------------------------------------------

\033[0m关闭所有属性

\033[1m设置高亮度

\033[4m下划线

\033[5m闪烁

\033[7m反显

\033[8m消隐

\033[30m至\33[37m设置前景色

\033[40m至\33[47m设置背景色

\033[nA光标上移n行

\033[nB光标下移n行

\033[nC光标右移n行

\033[nD光标左移n行

\033[y;xH设置光标位置

\033[2J清屏

\033[K清除从光标到行尾的内容

\033[s保存光标位置

\033[u恢复光标位置

\033[?25l隐藏光标

\033[?25h显示光标

--------------------------------------------------------------------------

各数字所代表的颜色如下:

字背景颜色范围:40----49

40:黑

41:深红

42:绿

43:黄色

44:蓝色

45:紫色

46:深绿

47:白色

字颜色:30-----------39

30:黑

31:红

32:绿

33:黄

34:蓝色

35:紫色

36:深绿

37:白色

另外,同类的多种设置项可以组合在一起,中间用分号(;)隔开。如下:

echo-e"\033[20;1H\033[1;4;32mHello,world\033[0m"

这行命令首先\033[20;1H将光标移动到终端第20行第1列,之后的\033[1;4;32m将文本属性设置为高亮、带下划线且颜色为绿色,然后输出Hello,world;最后\033[0m将终端属性恢复为默认值,这样就不会看到连命令完成后的命令提示符也变了样儿了。

通过以上各种命令的组合就可以实现对终端输出地复杂控制。

二、如何在C编程中实现?

理解了以上在Shell中的实现方法,关于在C中如何实现就很简单了。可以说只需要用printf函数代替上边的echo-e就OK了。参见下例:

int color= 32;

printf("\033[20;1H\033[1;4;%dmHello, world.\033[0m", color);

这个例子类似上边shell中最后那个例子,只是这里颜色值通过变量color来指定(当然,也可以直接指定)。

三、联想

看到这里你可能会想,是不是在其他编程语言里也可以用类似的方法实现对终端输出的控制呢?答案是肯定的!比如在Python中,可以如下输出:

color=32

print“\033[20;1H\033[1;4;%dHello, world.\033[0m"%color

这个例子的效果跟上边C的例子是相同的。

阅读剩余
THE END