Linuxecho命令用法详解

Posted 柒号华仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linuxecho命令用法详解相关的知识,希望对你有一定的参考价值。

作者:柒号华仔
个人主页:欢迎访问我的主页
个人信条:星光不问赶路人,岁月不负有心人。
个人方向:专注于5G领域,同时兼顾其他网络协议,编解码协议,C/C++,linux等,感兴趣的小伙伴可以关注我,一起交流。


目录

1. echo命令介绍

echo命令是脚本语言中的常用命令,作用相当于C语言里面的printf。在shell中,可以打印变量的值,或者输出指定的字符串,可以将结果写入到文件,也可以打印在终端。echo命令可以在显示器上显示一段文字,起到提示的作用,对于调试非常有帮助。

在终端输入help echo即可查看echo的命令详情:

2. 命令参数解释

字符含义
-n不自动换行
-e解释转义字符
-E不解释转义字符
\\a发出警告声
\\b转义后相当于按退格键(backspace) ,但前提是"\\b"后面存在字符; “\\b"表示删除前一一个字符,”\\b\\b" 表示删除前两个字符。
\\c不换行输出,在"\\c"后面不存在字符的情况下,作用相当于echo -n;但是当"\\c"后面仍然存在字符时,"\\c"后面的字符将不会被输出。
\\eescape,相当于 \\033
\\E与\\e相同
\\f换行,但下一行内容起始位置和上一行从\\f处换行的位置对齐
\\n换行且光标移至行首
\\r换行字符,光标移至行首,输出\\r后面的内容
\\t转以后表示插入tab,即横向制表符。
\\v换行,但下一行内容起始位置和上一行从\\v处换行的位置对齐
\\ \\表示插入""本身。
\\0nnn插入nnn(八进制)所代表的ASCII字符
\\xHH插入HH(十六进制)所代表的ASCII数字

3. echo使用实例

echo命令使用方法较多,我们通过实例来列举常用用法,只要参考这些实例即可满足我们日常的编程和调试需要。

3.1 字符串输出

字符串输出到终端显示是最简单的用法。

echo 'Hello World'

3.2 单引号与双引号

echo后的单引号表示强引用,单引号里面是什么内容就输出什么,而双引号是弱引用,变量的值会代替变量名输出。

3.3 转义字符可用

当我们需要使用特殊转义字符时(特殊转义字符见上面命令参数详解表格),需要指定参数-e,格式为

echo -e 处理特殊字符

3.4 输出字符串带颜色

在打印log时,我们经常要突出显示一些提示文字,比如Error用红色,Waring用黄色,便于第一时间发现问题。
输出文字带颜色需要结合-e选项和“\\033”一块使用,格式为

echo –e "\\033[颜色m 字符串 \\033[0m"

3.5 写入文件

以覆盖方式写入文件,写入语句会覆盖目标文件原有内容,保证文件保存的始终是最新内容。

echo "Hello World" > hello.txt

以追加方式写入文件,写入语句不会覆盖目标文件原有内容,只会追加在文件末尾。追加方式适用于记录运行log,便于后期问题分析。

echo "Hello World" >> hello.txt

两种写入方式区别在于指向符,>覆盖,>>追加。

3.6 输出时间

获取当前系统时间并输出,在打印Log时可以记下当前的系统时间,或者在编译程序时,可以记下编译时的系统时间,便于回溯和版本跟踪。

current_time=$(date "+%Y-&m-%d %H:%M:%S")
echo '['$current_time']'"Hello World" >> hello.txt

linux 详解useradd 命令基本用法

linux 详解useradd 命令基本用法

时间:2019-03-24
本文章向大家介绍linux 详解useradd 命令基本用法,主要包括linux 详解useradd 命令基本用法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

linux 详解useradd 命令基本用法

概要:

在 Linux 中 useradd 是个很基本的命令,但是使用起来却很不直观。以至于在 Ubuntu 中居然添加了一个 adduser 命令来简化添加用户的操作。本文主要描述笔者在学习使用 useradd 命令时的一些测试结果。

说明:本文中的所有试验都是在 Ubuntu14.04 上完成。

功能

在Linux中 useradd 命令用来创建或更新用户信息。

useradd 命令属于比较难用的命令 (low level utility for adding users),所以 Debian 系的发行版中建议管理员使用 adduser 命令。其实 adduser 命令只是一个调用了 useradd 命令的脚本文件。

本文将详细分析群组和家目录相关的选项。并且以实例的方式介绍常用的 useradd 命令写法。

语法和基本选项

注意:本文并不是一个完整的文档,所以仅列出部分常用的选项进行说明。

useradd [option] username

[option]:

-d<登入目录> 指定用户登入时的目录。

-g<群组> 初始群组。

-G<群组> 非初始群组。

-m 自动创建用户的家目录。

-M 不要创建用户的家目录。

-N 不要创建以用户名称为名的群组。

-s 指定用户登入后所使用的shell。

细说用户组

首先我们要搞清楚,什么是初始群组?简单来说在 /etc/passwd 文件中,每行的第四个字段指定的就是用户的初始群组。用户登录后立即就拥有了初始群组中的权限。

下面我们通过不同的命令来查看群组选项的用法:

$ sudo useradd tester1

没有使用任何群组相关的参数,默认在创建用户 tester1 的同时会创建一个同名的群组。用户 tester1 的初始群组就是这个新建的群组。

$ sudo useradd tester2 -N

这次我们使用了 -N 选项,即不要生成与用户同名的群组。查看下 /etc/passwd 文件,发现 tester2 用户的初始群组ID是100。这个100是哪来的?有ID为100的群组吗?其实100作为 -N 的默认值是写在配置文件中的。不管有没有ID为100的群组,都是这个值。当然我们也可以通过修改配置文件来改变这个默认值!

$ sudo useradd tester3 -g sudo

sudo 是一个非常有权势的群组,我决定把 tester3 加入到这个群组。好,现在去查看一下 /etc/passwd 和 /etc/group 文件,看看有没有新的群组被创建? tester3 的初始群组又是谁?这次没有创建与 tester3 同名的群组。用户 tester3 的初始群组变成了 sudo。

$ sudo useradd tester4 -G sudo

和上一条命令相比我们只是把小写的g替换成了大写的G。但结果可相差太多了,请您一定要好好的检查 /etc/passwd 和 /etc/group 文件。因为这次不仅创建了群组 tester4,它还是用户 tester4 的初始群组。和tester1 的唯一不同是 tester4 被加入了 sudo 群组。

在实际的使用中,tester3 和 tester4 的场景都是比较常见的,需要根据实际情况进行区分。

细说家目录

Useradd 命令对用户家目录的处理让人困惑,下面我们将通过实验来了解家目录相关的不同选项的使用方法:

$ sudo useradd tester1

让我们重新看看创建用户 tester1 这条命令。它不会为用户 tester1 创建名为 tester1 的目录作为家目录,但是我们打开 /etc/passwd 文件,发现 tester1 的记录中居然包含了家目录 /home/tester1。

tester1:x:1005:1005::/home/tester1:

这让人不可思议,但这条命令确实是这么实现的。

$ sudo useradd -m tester5

若要在创建用户的同时创建用户的家目录,必须指定 -m 选项。

$ sudo useradd -d /home/abc tester6

我们希望自己指定家目录,此时不生成目录 abc

$ sudo useradd -d /home/abcd -m tester7

此时生成目录 abcd,并且目录下默认存在文件

常见用例

Case 1: 创建一个带有家目录并且可以登录 bash 的用户

$ sudo useradd -m -s /bin/bash tester1

Case 2: 指定创建用户家目录的路径

$ sudo useradd -m -d /home/xxx tester2

/home/xxx目录会被创建。

Case 3: 创建一个没有家目录且不能登录的用户

$ sudo useradd -s /sbin/nologin tester3

Case 4: 创建时把用户加入不同的用户组

$ sudo useradd -m -G xxx,sudo tester4

注意过个组名使用逗号分隔,不能有空格。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上是关于Linuxecho命令用法详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux|命令格式详解及echo命令参数用法详解

linux下echo命令详解

Linux echo命令详解

Linux echo, sort, sed 等一些命令总结

echo详解

linux的echo命令使用变量。