2012-03-23 11:34:00 weixin_34292924 阅读数 149
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7137 人正在学习 去看看 良许

2> /dev/null

 

perl中调用外部命令或外部程序的时候,$a=`cmd`;偶尔会出现该程序会有错误输出的情况。

如果我们不希望这些错误输出影响perl的输出结果,或者不希望程序运行的时候还时不时冒出一些错误信息,那么我们可以在调用命令的时候把错误输出屏蔽掉。

$a=`cmd 2>/dev/null`;

 

关于/dev/null文件的详细介绍,参见另一篇博文

【linux】/dev/null与/dev/zero详解

2016-10-12 22:50:11 Jane_Liee 阅读数 330
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7137 人正在学习 去看看 良许

  • Linux练习 二

在student用户下执行find /etc -name passwd 命令,并管理其输出要求如下:
(1)显示所有正确输出,屏蔽错误输出

find /etc/ -name passwd 2> /dev/null
find /etc/ -name passwd 2> file 

(2)保存正确输出到/mnt/find.out,错误输出到/mnt/find.err中

[student@foundation22 Desktop]$ find /etc/ -name passwd >/mnt/file.out 2> /mnt/file.err 
bash: /mnt/file.out:Persion denied     ##出错,原因是权限不够

[student@foundation22 Desktop]$ su -       ##改权限
Passwd:
[root@foundation22 Desktop]$ chmod 777 /mnt/
[root@foundation22 Desktop]$ chmod ugo+rwx /mnt/   ##给mnt最大的权限
[root@foundation22 Desktop]$ logout
[student@foundation22 Desktop]$ find /etc/ -name passwd >/mnt/file.out 2> /mnt/file.err ##student有了权限翻身农民把歌唱

(3)建立/mnt/find.all文件,并且保存所有输出到此文件中

find /etc/ -name passwd &>/mnt/file.all 

(4)再次保存所有输出到/mnt/find.all中,并且保持源文件内容

find /etc/ -name passwd &>>/mnt/file.all 
            ##即将所有的内容再次保存到file.all里,不覆盖原有的内容

(5)屏蔽此命令的所有输出

find /etc/ -name passwd &>> filee
        ##将所有的输出都保存在指定的文件里就好,因为输出只有一份,如果用户指定了输出存放的位置,那就不会再显示在输出界面上

(6)显示此命令的所有输出并保存输出到桌面上的任意文件中

find /etc/ -name passwd     ##未对输出界面的输出作干涉

(7)保存正确输出到/mnt/find.out.1中,屏蔽错误输出

find /etc/ -name passwd > /mnt/file.out.1 2> /dev/null
2018-08-25 15:34:51 LEON1741 阅读数 11159
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7137 人正在学习 去看看 良许

作为一个完美主义者,我在windows系统下编写和调试程序时,都会小心翼翼的搞定每一个warning,使得程序最终编译出来的输出结果非常干净,简简单单的一个success,让人看的神清气爽!

然而在linux下,事情往往不如我所愿,特别是在编译一些大型的开源项目,比如u-boot、linux内核、qt等程序的源码时,一方面本身这些代码的规模就极其庞大,就算所有模块全部没有警告,仅仅是编译输出的其他各类信息(比如过程信息、配置信息、路径信息等),就已经是频繁刷屏,让人应接不暇了。这时候,若再加上一些warning信息的话,则更让人头大【注1】。而最痛苦的是,如果此时出现了一些错误,则会出现错误信息被夹杂在海量的警告信息和其他信息中,导致很难察觉和追溯,给程序的编译和调试带来极大的麻烦。此处最典型的实例就是我昨天自己亲身经历的一个事情。

注1:在实际情况中(特别是编译像u-boot、内核、qt等大型项目源码时),这些warning可以说是非常的多,非常的多,也不知道怎么会有这么多。我一直想不明白,就是各位大神在编写和调试这些项目的源码时,为什么不把代码写干净一点,非得要留下这么多的warning呢,希望有朝一日有大神能帮我解答这个问题?

昨天在编译一份I.MX6的嵌入式程序时,由于编译过程涉及到u-boot、kernel、rootfs、app、UI等多个部件,因此我们当时自己写了一个脚本进行自动化编译。而对于kernel的编译过程,是先编译出image,然后再使用lzop工具进行压缩生成zImage。那么,问题就来了,我的系统中忘了安装lzop,导致生成了image之后,没有生成配套的zImage。但是,当时我们的脚本也写的不够严谨,当出现这个问题后,脚本并没有自动停止,而是继续运行下去了。所以,当我一看到最后脚本提示说运行成功了(当然,这里的成功其实只是一个最终的提示信息,并不代表全部过程都成功),也就没有去详细分析其中的过程(因为shell中的输出信息可谓是海量,正常情况下我想应该是没有人会去翻阅的),于是就以为所有程序都编译OK了,于是就直接一股脑下载到目标板上去了。结果无需多说,自然是出了问题。当时也是排查了很久,最后才发现问题所在。

于是,为了解决这个问题(就是编译程序时各类提示信息频繁刷屏,导致实际有用的信息被淹没在海量信息里,很难查阅),或者说,为了预防类似的问题再次出现,我就在想有没有什么比较好的招数呢?自然,大多数人都会想的到,最常用的一招就是,编译时使用静默输出的配置,即:

make -s

这样会关闭所有的其他输出信息,只保留编译过程中的警告和错误信息。显然,这种情况下,肯定比之前要好多了。但是,这里的-s也只是关闭了常规提示信息,编译警告信息则会照常输出。可是,如上所述,很多大型开源项目中,警告信息那可也不是一般的多,分分钟就给你刷屏刷到千里之外。所以,经过我自己的亲身实践,这个办法也收效甚微,只能继续思考。

终于,经过一番检索和验证,最终发现通过引入“输出文件”的思路,能够比较有效的解决这个问题。具体来说就是,将输出在屏幕上的各类信息同步输出到一个指定的文件中去,一旦有什么情况,翻阅和查询那个文件,总比在shell中回滚要方便的多。

不过,在开始介绍具体的方法之前,要先对linux中的输出设备进行一下介绍。大家都知道,linux系统中默认有3个输出设备,分别为stdin、stdout、sdterr,分别表示标准输入设备、标准输出设备和标准错误设备。那么你可知道这3类设备在系统中的,都各自有一个指定的代号吗?见下表:

设备名称 标准叫法 代号
标准输入设备 stdin = standard input 0
标准输出设备 stdout = standard output 1
标准错误设备 stderr = standard error 2

有了他们各自的代号,我们就可以进行分流,将你不太关注的信息输出到文件里去,有空再慢慢查阅。而将你关注的信息输出到屏幕上,实时获取。具体有以下几种组合方式:

1、将所有信息全部输出到屏幕

这个就不用多说了,直接一个make命令下去就好

make xxx				# 输出所有的提示信息到屏幕上
make xxx -s				# 仅输出警告及错误信息到屏幕上

2、将所有信息全部输出到文件

可以实现将所有信息全部输出到同一个文件,也可以分开输出到不同的文件。

make xxx 1>info.log 2>warn.log		# 1表示常规提示信息,2表示警告及错误信息
make xxx > all.log 2>&1			# 其中的2>&1表示错误信息输出到&1中,而&1指的是all.log

3、将常规提示信息输出到屏幕,而将警告错误信息输出到文件

就是说,无关紧要的提示信息刷屏刷掉没关系,但是错误及警告信息全部输出到日志文件了,事后可以去慢慢查阅。适用于那些警告错误信息会非常多,可以一个个慢慢处理的场合。

make xxx 2> info.log			# 警告及错误信息分流到log文件中去

4、将常规提示信息输出到文件,而将警告错误信息输出到屏幕

就是说,海量的常规提示信息全部分流到文件中去了,屏幕上只剩下一些很关键的警告及错误信息,易于提取和处理。适用于那些警告及错误信息不太多,又必须现场逐个处理的场合。

make xxx 1> warn.log			# 常规提示信息分流到log文件中去
make xxx > warn.log			# 1不写也可以,因为系统默认就是1

注意:上面所有的1/2等数字,后面紧跟着大于号’>’ ,中间不能有空格!大于号">"与输出文件名中间,则可以紧跟,也可以加一个空格。

2017-03-29 22:54:44 Ningdaxing1994 阅读数 407
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7137 人正在学习 去看看 良许

以下操作都是在Red-hat 7.0版本下运行。


在Linux系统中,正确输出编号为1,错误编号为2。

1.接下来进行练习,在student用户下执行find /etc -name passwd 命令,并管理其输出要求如下:
1.1显示所有正确输出,屏蔽错误输出
在这里要介绍一下重定向的概念。
‘>’ 输出重定向到一个文件或设备 覆盖原来的文件
‘ 2>’ 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件
‘&>’ 重定向所有输出
’>>‘ 输出重定向到一个文件或设备 追加原来的文件
’2>>‘ 将一个标准错误输出重定向到一个文件或设备 追加到原来的文件

我们首先在student用户下执行find /etc -name passwd(在student牵扯到权限问题,所以用普通用户student来练习)。
这里写图片描述

1.2保存正确数出到/tmp/find.out,错误数出到/tmp/find.err中
这里写图片描述
效果如下:
这里写图片描述
1.3建立/tmp/find.all文件,并且保存所有输出到此文件中
这里写图片描述
1.4再次保存所有输出到/tmp/find.all中,并且保持源文件内容
这里写图片描述
1.5屏蔽此命令的所有输出
这里写图片描述
1.6显示此命令的所有输出并保存输出到桌面上的任意文件中
这里写图片描述
1.7保存正确输出到/tmp/find.out.2中,屏蔽错误输出
这里写图片描述

2.处理文件在文件/usr/share/mime/packages/freedesktop.org.xml要求如下:

在练习问题之前,先简单介绍一下vim。
Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。

vim是vi的升级款,相比于nano这些编辑器,我感觉是完爆它。

2.1 找到此文件中包含ich的行,并保存这些行到/root/lines中
命令行图:
2.2用vim替换掉/root/lines中的空格,但要保持文件中原有的内容
首先用vim打开上面的目录。
没有替换之前如图:
在命令行输入:%s/^ *//完成替换。
替换之后如图:

2017-01-03 09:38:37 zzdashen 阅读数 592
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7137 人正在学习 去看看 良许
1.在student用户下执行find/etc -name passwd 命令,并管理其输出要求如下:

*显示所有正确输出,屏蔽错误输出


*保存正确输出到/mnt/find.out,错误输出到/mnt/find.err中


*建立/mnt/find.all文件,并且保存所有输出到此文件中


*再次保存所有输出到/mnt/find.all中,并且保存源文件内容


*屏蔽此命令的所有输出


*显示此命令的所有输出并保存输出到桌面上的任意文件中


*保存正确输出到/mnt/find.out.1中,屏蔽错误输出



2.处理文件在文件/usr/share/mime/packages/freedesktop.org.xml要求如下:

*找到此文件中包含ich的行,并保存这些行到/root/lines中


*用vim替换掉/root/lines中的空格,但要保持文件中原有的内容


1.新建用户组:shengchan,caiwu,jishu
2.新建用户的要求如下:
      *tom是shengchan组的附加用户
      *harry是caiwu组的附加用户
      *leo是jishu组的附加用户
      *新建admin用户,此用户不属于以上提到的三个部门


3.新建目录要求如下:
      */pub目录为公共存储目录对所有用户可以读,写,执行,但用户只能删除属于自己的文件
      */sc目录为生产部存储目录只能对生产部人员可以写入,
      */cw目录为财务部存储目录,只对财务部人员可以写入,并且财务部人员所建立的文件都自动归属到caiwu组中
      *admin用户能用touch工具在/sc目录和/cw目录中任意建立文件


4.设定普通用户新建文件权限为“r--r-----”


5.设定admin用户可以通过sudo自由建立新用户


linux练习2

阅读数 636

没有更多推荐了,返回首页