我和linux的第二十二天
这几天学校的事情比较多,空闲时间也有,但没有利用起来。前些天听国学课,发觉自己心性还是不很成熟,以前自觉遇到君子应用君子的方法相处,遇到小人用小人的方法对待,老师一句话,疏清了自己。当我们用小人的方法对待小人时,有一天,你和小人打了一架,很多时候,我们就不能再去以君子之心来对待君子了。什么事都是一样的,自己应该主宰自己,不应因外界的改变去改变自己。继续吧,坚持下去。
命令别名alias、unalias:
新创一个新命令,可以直接执行该命令。例如:alias lm=’ls -l | more’。alias查看设置别名,unalias取消命令别名。
历史命令history:
history [参数],n数字,要列出最近的n条命令行的意思、-c将目前的shell中所有history内容全部清除。
!number:执行第n条命令;!command由最近的命令向前搜寻命令串开头为command的那个命令,并执行;!!执行上一个命令。
命令运行的顺序:
1.以相对/绝对路径执行文件;
2.由alias找到该命令来执行;
3.由bash内置的(builtin)命令来执行;
4.通过$PATH这个变量的顺序找到的第一个命令来执行。
bash的登录和欢迎信息:/etc/issue,/etc/motd
登录界面信息写在/etc/issue中,issue内的变量代码意义:\d本地端的日期、\t本地端的时间、\l显示第几个终端机接口、\m显示硬件等级(i686,x84_64...)、\s显示操作系统名称、\r显示系统版本、\n显示主机网络名称。
/etc/issue.net这个是提供给telnet远程登录程序用的,当我们使用telnet连接到主机时,主机的登录界面就会显示/etc/issue.net而不是/etc/issue。
/etc/motd这个是让普通用户登录后取得的信息。
bash的环境配置文件:
login shell:取得bash时需要完整的登录流程的,称为login shell。例如:由tty1~tty6登录,需要输入用户账号与密码,此时的bash就称为login shell。
non-login shell:取得bash接口的方法不要重复登录的举动,例如:你以X window登录后,再以X的图形界面启动终端机,此时那个终端接口没有需要再次输入账号和密码,此时bash环境称为non-login shell。
login shell读取两个配置文件:
/etc/profile:系统整体的设置,最好不要修改这个文件;
~/.bash_profile或~/.bash_login或~/.profile:属于用户个人设置,可修改自己的数据。其实bash的login shell设置只会读取上面三个文件中的一个,而读取的顺序是依照上面的顺序。
non-login shell读取配置文件:
~/.bashrc:帮我们定义三方面数据,1.依据不同的UID规定umask的值;2.依据不同的UID规定提示符(PS1变量);3.调用/etc/profile.d/*.sh的设置。
source:读入环境配置文件命令
source(.) 配置文件名,将新设置的内容读进目前的环境中。
其它配置文件:
/etc/man.config:规定了使用man的时候man page的路径到哪里寻找。
~/.bash_history:历史命令的记录文件。
~/.bash_logout:记录了当我注销bash后系统再帮我做完什么操作后才离开。
终端机环境设置:stty,set
ctrl+c中止目前命令、ctrl+d输入结束(EOF)、ctrl+m就是Enter、ctrl+s暂停屏幕的输出、ctrl+q恢复屏幕的输出、ctrl+u在提示符下,将正行命令删除、ctrl+z暂停目前命令。
bash环境中的通配符:
特殊符号:文件名进来不要使用到下述字符
数据流重定向(redirect):
standard output与standard error output,标准输出指的是命令执行所回传的正确的信息,而标准错误输出可理解为命令执行失败后,所回传的错误信息。
传送所用的特殊字符分别如下:
标准输入(stdin):代码为0,使用<或<<;
标准输出(stdout):代码为1,使用>或>>;
标准错误输出(stderr):代码为2,使用2>或2>>。
1>:以覆盖的方法将正确的数据输出到指定的文件或设备上;
1>>:以累加的方法将正确的数据输出到指定的文件或设备上;
2>:以覆盖的方法将错误的数据输出到指定的文件或设备上;
2>>:以累加的方法将错误的数据输出到指定的文件或设备上。
<:将原本需要由键盘输入的数据改为文件内容来代替;
<<:可以终止一次输入。
/dev/null垃圾桶黑洞设备
标准输出和标准错误输出一同输出在一个文件夹使用2>&1或&>,例如:find /home -name .bashrc 2>&1 test,正确输出和错误输出一同写入test中。
以下情况下使用数据流重定向:
屏幕输出的信息很重要,我们需要将它保存下来;
后台执行中的程序,不希望我它干扰屏幕正常的输出结果时;
一些系统例行命令(如卸载/etc/crontab中的文件)的执行结果,希望它可以保存下来时;
一些执行命令可能已知错误信息时,想以“2>/dec/null”将它丢弃时;
错误信息与正确信息需要分别输出时。
命令执行的判断依据,一次输入多重命令:
cmd;cmd,不考虑命令相关性的连续命令执行;
$?命令回传码,若前一个命令执行结果正确,在linux下面会回传一个$?=0的值。
command1 && command2 || command3:cmd1正确执行,则执行cmd2,cmd2正确执行不执行cmd3;cmd2错误执行开始执行cmd3;cmd1错误执行不执行cmd2,执行cmd3。
管道命令pipe(|):command1 | command2 | command3,管道命令“|”仅能处理经由前面一个命令传来的正确信息,也就是standard output的信息,对于standard error并没有直接处理的能力。
选取命令:cut,grep
cut:提取某一段信息,以“行”为单位。-d接分隔符与-f使用、-f依据-d的分隔字符将一段信息切割成为数段,接数字、-c以字符(characters)的单位取出固定字符区间。
grep:分析一行信息,grep [参数] ‘查找字符串’ filename,-a将二进制(binary)文件以text文件的方式查找数据、-c计算找到‘查找字符串’的次数、-i(ignore)忽略大小写的不同、-n输出行号、-v反向选择,即显示出没有‘查找字符串’的一行。
排序命令:sort,wc,uniq
sort:sort [参数] file or stdin,-f忽略大小写、-b忽略最前面的空格符部分、-t分隔符,默认以[Tab]键来分隔、-k以哪个区间来进行排序。
uniq:将重复的行删除掉只显示一行,uniq [参数],-i忽略大小写,-c进行计数。
wc:计算输出数据的整体数据。
双向重定向:tee
可以将数据流送与文件和屏幕(screen);而输出到屏幕的,其实就是stdout,可以让下个命令继续处理。tee [参数] file,-a以累加(append)的方式,将数据加入file中。
字符转换命令:tr,col,join,paste,expand
tr:用来删除一段信息当中的文字,或者进行文字信息的替换。tr [参数] set1...,-d删除信息当中set1这个字符串、-s替换掉重复字符串。
col:col [参数],-x将tab键转换成对等的空格键。
join:处理两个文件之间的数据,主要是将两个文件当中有相同数据的那一行加在一起。
paste:对比两行相关性,直接将两行粘在一起,中间以tab键隔开。
expand:将tab键转换成空格键。-t接数字,一个tab键代表多少个字符。
切割命令:split
将大文件切割成小文件。split [参数] file prefix,-b接欲切割文件大小,单位b,k,m等、prefix代表前导符,可作为切割文件的前导文字。
参数代换:xargs
产生某个命令的参数,很多命令其实不支持管道命令,因此我们可以通过xargs来提供该命令引用standard input之用。
1.在linux上可以找到哪些shell(举出三个)?哪个文件记录可用的shell是什么?而linux默认的shell是什么?
A.cat /etc/shells查看可用的shell,有/bin/sh、/bin/bash、/sbin/nologin;linux默认shell是bash。
2.在shell环境下,有个提示符(prompt),他可以修改吗?要改什么?默认的提示符内容什么?
A.不可以,\$提示符如果是root时提示符为#,否则就是$。默认提示符内容PS1=[\u@\h\W]\$即[账户名称@主机名,用户所在文件夹]提示符。
3.如何显示HOME这个环境变量?
A.echo $HOME。
4.如何得知目前的所有变量与环境变量的设定值?
A.env或export查看环境变量,set查看所有变量(包括环境和自定义变量)。
5.我是否可以设定一个变量名称3myhome?
A.不可以,变量的首字符必须为字母。
6.在这样的练习中:“A=B”且“B=C”,若我执行“unset $A”,则取消的变量是A还是B?
A.取消的是B。unset $A相当于unset B。
7.如何取消变量与命令别名的内容?
A.unset $available;unalias filename。
8.如何设定一个变量名称为name内容为It's my name?
A.name=“It’s my name”。或name=It\’s\ my\ name。
9.bash环境配置文件主要分为哪两种类型的读取?分别读取哪些重要文件?
A.一类登录login shell的读取,分别读取/etc/profile系统整体设置文件,~/.bash_profile或~/.bash_login或~/.profile个人用户设置文件。第二类非登录non-login shell的读取,仅读取~/.bashrc。
10.CentOS 5.x的man page的配置文件是什么?
A./etc/man.config。
11.试说明', ", 与`这些符号在变量定义中的用途?
A.单引号改变字符属性,仅为一般字符的现实类型,双引号内仍可保持变量内容。反单引号,作为外部输入信息。
12.转义符号\有什么用途?
A.定义内容中含有特殊字符时可用/进行转义,成为一般字符。
13.连续命令中,;, &&, ||有何不同?
A.;不考虑命令的相关性,&&执行完A正确继续执行,错误不再执行,||执行完A正确不再执行,错误继续执行。
14.如何将last的结果中,独立出帐号,并且印出曾经登录过的帐号?
A.last | cut -d ‘ ‘ -f 1。
15.请问foo1 && foo2 | foo3 > foo4,这个命令串当中,foo1/foo2/foo3/foo4是命令还是文件?整串命令的意义是什么?
A.foo1、foo2、foo3是命令,foo4为文件。foo1 && foo2的标准输出结果作为foo3标准输入通过foo3命令写入文件foo4中。
16.如何列出在/bin目录下任何以a开头的文件文件名的详细数据?
A.ls -l /bin/a*。
17.如何列出/bin目录下,文件名为四个字符的文件?
A.ls -l /bin/????。
18.如何列出/bin目录下,文件名开头不是ad的文件?
A.ls -l /bin/[^a-d]*。
19.我想要让终端机接口的登录提示符修改成我自己喜好的模样,应该要改哪里? (filename)
A.vim /etc/issus;vim /etc/motd。
20.承上题,如果我是想要让使用者登入后,才显示欢迎信息,又应该要改哪里?
A.vim /etc/motd。
我和linux的第二十二天的更多相关文章
- javaSE第二十二天
第二十二天 312 1:登录注册IO版本案例(掌握) 312 2:数据操作流(操作基本类型数据的流)(理解) 313 (1)定义: 313 (2)流对象名称 313 (3 ...
- Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块
Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...
- (linux shell)第二章--命令之乐(一)
文章来自于我的个人博客:(linux shell)第二章--命令之乐(一) 上一章我们描写叙述了一些linux shell中须要注意的一些语法.接下来我们開始了解linux shell的经常使用 ...
- 孤荷凌寒自学python第二十二天python类的继承
孤荷凌寒自学python第二十二天python类的继承 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) python中定义的类可以继承自其它类,所谓继承的概念,我的理解 是,就是一个类B继承自 ...
- linux学习第二天 (Linux就该这么学)
2018年11月10日,今天是学习的第二天 今天学习了安装vmware workstation12的安装及怎么安装 redhat7系统,在新建虚拟机时注意要选择“稍后安装操作系统”要vmwark wo ...
- Linux入门第二天——基本命令入门(中)
一.文件搜索命令 1.文件搜索命令:locate 速度很快(具体见Linux工具网址的对比),注意无法找到新建的文件(原理暂不展开) locate命令其实是“find -name”的另一种写法,但是要 ...
- linux基础-第二十单元_计划任务crond服务
第二十单元 计划任务crond服务 什么是计划任务:后台运行,到了预定的时间就会自动执行的任务,前提是:事先手动将计划任务设定好.这就用到了crond服务 crond服务相关的软件包[root@MiW ...
- Linux 笔记 - 第二十一章 配置 NFS 服务
一.前言 NFS(Network File System,网络文件系统),主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS 客户端(一般为应用服务器,例如web)可以通 ...
- Linux学习--第十二天--服务、ps、top、pstree、kill、&、jobs、fg、vmstat、dmesg、free、uptime、uname、crontab、ls
服务分类 linux服务分为rpm包默认安装的服务和源码包安装的服务. rpm包默认安装的服务分为独立的服务和基于xinetd服务. 查询已安装的服务 rpm包安装的服务 chkconfig --li ...
随机推荐
- 【转】request.getServletPath()和request.getPathInfo()用法
转自:https://my.oschina.net/sub/blog/182408 在 Web 中,我们通常需要获取 URL 相对于 Webapp 的路径,主要是下面的几个方法: request.ge ...
- Leetcode Kth Smallest Element in a BST
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Not ...
- poj 2559 Largest Rectangle in a Histogram - 单调栈
Largest Rectangle in a Histogram Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19782 ...
- 【HDU】1599 find the mincost route
题意 \(n(1 \le n \le 100)\)个点\(m(1 \le m \le 1000)\)条加权边的无负环无向图,求一个最小环. 分析 加入有一个环,其编号最大的点为\(L\),那么这个环可 ...
- iOS 10 新特性 大汇总 及iOS 10 的一些小问题和 xcode 8 的新版本小问题
iOS 10正式版是很值得升级的,特别是那些不打算购买iPhone 7的老用户,毕竟新系统在体验.流畅性上都做了一些升级. 1.开放电话接口 支持垃圾电话提醒 对于使用iPhone的国人来说,这个功能 ...
- webview使用技巧汇总
1.webview去除原网址的广告或者标题 js语句 document.documentElement.getElementsByClassName('这里写你要消除的空间的class里面的字符串') ...
- iOS开发之单元测试
开始之前 本文侧重讲述如何在iOS程序的开发过程中使用单元测试.使用Xcode自带的OCUnit作为测试框架. 一.单元测试概述 单元测试作为敏捷开发实践的组成之一,其目的是提高软件开发的效率,维持代 ...
- 新入门node.js必须要知道的概念
一.对于一个刚入门node.js的朋友来说,一定要了解一些基础概念: 今年我正式进入社会后,发现自己所知道的IT方面的知识,真的只是牛毛,原来人外有人,山外有山,还需要继续努力.下面是一些我的自学习心 ...
- STM32_RTC君
五一假期已过,大家是否还像五一五二五三那样快乐呢??答案就交给你们自己寻找了哈..说到五一..就从五一开始的那一刻起..就开始计时着..到五一假期结束..呵呵..在这里,智商和情商比我高的人估计又猜到 ...
- FTD团队目录
一.Daily Scrum Meeting[Alpha] · [Alpha]Daily Scrum Meeting 第一次 · [Alpha]Daily Scrum Meeting 第二次 · [Al ...