- 管理整个计算机硬件其实是操作系统的内核,内核是需要被保护的;
- 我们用户通过shell与内核进行通讯;
- shell的功能是提供用户操作系统的一个接口;
- 命令行界面的传输速度一定比较快,较不容易出现断线或者信息外流的问题;
- ~/.bash_history记录前一次登录以前执行的命令,这一次记录的暂存在内存中,注销后会记录到.bahs_history中的;
- alias直接设置别名,比如设置alias='ls -al';
- shell script可以将连续命令写成一个文件;
- type可以查看命令是bash内置的还是外部命令;
- 可以用echo显示变量,变量开头不能是数字;
- 可以用引号将有空格的东西放到变量里;
- 双引号里有$这种特殊字符,会被保存原本的特性,也就是会替换;
- 可以用\将页数符号变成一般符号;
- version=$(uname -r)内核版本;
- 变量在其他子程序需要执行使用export变成环境变量,如export PATH;
- 通常大写字符为系统默认变量,自己设置可以设置小写区分;
- 取消变量使用unset 变量;
- bash可以进入下一个进程,用exit退出;
- cd /lib/modules/$(uname -r)/kernel,进入内核;
- 单引号仅能有一般字符,双引号就可以替换特殊字符;
- 反单引号之内的命令会被先执行;
- env可以列出目前shell环境下所有的环境变量与内容,env是environment的缩写;
- set可以查看所有变量;
- $本身也是变量,代表shell线程代号,也就是所谓的PID,可以使用echo $$显示PID;
- echo $?是回传码,如果上一个成功执行那么回传0;
- locale -a看支持的语系;
- 语系文件都是放在/usr/lib/locale/,这个目录里的;
- 要读取来自键盘输入的变量,用read这个命令,这个命令最常用在shell script里,-t定时,-p提醒;
- declare与typeset类似来声明变量的类型,举个例子,sum=100+300+50;echo $sum;declare -i sum=100+300+50;echo $sum;
- declare -x可以设置成环境变量+x可以取消,-r变成只读;
- bash是有数组的,用法类似程序语言,用echo显示;
- ulimit可以限制用户的某些系统资源的使用-a显示限制-f限制大小;
- 一般用户使用ulimit限制了文件大小,智能继续减少文件容量,不能增加;
- 可以使用unalias去取消alias的设置;
- history可以查询命令的输入历史,加数字就是最近多少条,-w将目前的数据立即写入;
- 可以用$HISTSIZE来查记录命令行的大小;
- 可以用!来实现历史中的命令;
- cracker最喜欢root的~/.bash_history文件;
- issue.net是远程登录会显示的;
- 在/etc/motd中可以修改登录成功后的信息;
- 自定义变量在注销bash后就会失效,想要保留设置就需要写入配置文件;
- login shell:取得登录时完整的登录路径,non-login shell:图形界面直接终端登录,在bash界面再bash也是这种;
- login shell一般会读取/etc/profile与~/.bash_profile或者~/.bash_login或~/.profile,一般第一个不要动,bash一般只会读上面三个文件中的一个而且是按顺序;
- source可以不用注销就读取配置文件;
- 在non-login shell情况下,只会读取~/.bashrc;
- ~/.bash_logout告诉我们注销bash再帮我做完什么操作后才离开;
- stty -a将目前所有的stty参数列出来;
- *表示0到无穷的任意字符,?表示一定有一个任意字符,[abcd]表示一定有一个abcd中的任意字符,[0-9]表示0-9所有数字,[^abc]表示非a,b,c就行;
- #一般用来注释,|为管道,>>数据流重定向累加,>数据流替换,` `要先执行;
- ll / >~/rootfile 替换覆盖,>>为累加;
- 2>>,2>将错误信息输出;
- /dev/null垃圾桶黑洞设备,可以吃掉任何导向这个设备的信息;
- 同时导入一个文件的方法要使用2>&1;
- <为文件流导入,<<为输入直接停止;
- 管道命令与连续执行命令是不一样的,管道可以对前面传来正确的信息,对于错误的并没有能力;
- 每一个管道后面接的第一个数据必定是命令,而且必须要是管道命令,例如less,more,head,tail等;
- cut -d '分割的字符' -f 3,5;
- export |cut -c 12-,取出固定区间内的字符;
- last留下登录者信息;
- cut基本是处理行的;
- grep是分析一行信息,将需要的信息拿出来,last | grep root 将有root的那行拿出来,last | grep root -v取反;
- 总之grep选择行,然后用cut对列进行操作;
- sort可以放在管道后面进行排序,uniq可以将从夫的数据列出一个显示-c可以进行计数;
- wc可以计算输出信息的整体数据;
- tee会同时将数据流送于文件与屏幕;
- tr可以用来删除一段信息中的文字,或进行替换,last| tr [a-z] [A-Z]将小写变成大写,-d ‘ 删除字符’;
- col常用于将man page 转存为纯文本文件方式以方便查询;
- join是用于处理两个文件之间的数据,主要是将两个文件当中有相同数据的那一行加在一起;
- join -t ':' /etc/passwd /etc/shadow;
- 一般使用join需要使用sort排序过才好;
- paste比join简单多了,直接连在一起,中间用tab分开;
- expand会自动将tab转化成空格-t 数字,表示一个tab被几个空格替代;
- split可以将大文件根据文件大小或行数切割成小文件-b 后面接大小,cd /tmp;split -b 300k /etc/termcap termcap,想要整合文件可以cat termcap*>>termcapback;
- split -l根据行数进行切割,ls -al /|split -l 10 - lsroot,没有文件可以使用"-"来做为输入输出流;
Linux 学习“认识与学习bash”
猜你喜欢
转载自blog.csdn.net/luzhufu0815/article/details/80989612
今日推荐
周排行