【linux】学习5
鸟哥那本书第11章的内容
管理整个计算机硬件的是操作系统的内核(kernel),内核是需要保护的,我们一般用户只能通过shell来跟内核通信。Shell是用户操作系统的接口
cat /etc/passwd :可以查看每个账号登陆后默认的shell
~/.bash_history 中记录了前一次登陆以前使用过的命令
type 可以查询命令是bash内置命令 还是 外部命令
一下子写两行命令, 用 \[Enter]转义
变量
1. 显示变量内容:
echo $变量名
echo ${变量名} :这两种都可以查看变量的内容
2. 设置变量
my_name=kuangziyu //设置变量,直接用= 后面不能有空格
双引号: 保留命令原有的含义 this_user="$my_name" 则显示this_user时是kuangziyu
单引号: 字符表面的意思 this_user='$my_name' 则显示this_user时是 $my_name
$: 使用通过其他命令获得的信息
增加变量内容: my_name="$my_name":"me" 则my_name的内容变为 kuangziyu:me
改为环境变量: export my_name
取消变量: unset my_name
3.查看变量
export: 后面不接变量名时也可以显示所有的环境变量 只有环境变量会被子进程继承
env: 查看所有环境变量
set: 查看所有环境变量,自定义变量,其他变量
重要的变量:
PS1 : 提示符的设置
PS1='[\u@\h \w \A #\#]\$ ' 则输入前的提示变成了[kuang@localhost ~ 11:12 #23]$
\u 目前用户的账号名称
\h 主机名小数点前第一个名字
\w 完整工作目录的信息
\A 显示时间
\# 执行的是第几个命令
$: 当前shell的线程代号
echo $$ 显示当前shell的线程号
?:上个执行命令的回传码
echo $? 0表示上一个命令正确,其他数字表示有错,可以用来查bug
OSTYPE, HOSTTYPE, MACHTYPE 主机硬件与内核的等级 我的居然是i386
语系变量
locale -a 显示linux支持的所有语系
locale 显示当前语系相关的一些变量
LANG 后面的就是当前的语系,更改语系就改LANG的值
键盘读取变量
read [-pt] variable
-p 接个提示符
-t 接等待的"秒数“
read -p "please input your name:" -t 30 named 之后变量named就变成了 输入的名字
设置变量类型
declare [-aixr] variable
参数:
-a :将后面的 variable 定义成为数组 (array)
-i :将后面接的 variable 定义成为整数数字 (integer)
-x :用法与 export 一样,就是将后面的 variable 变成环境变量;
-r :将一个 variable 的变量设定成为 readonly ,该变量不可被更改内容,也不能 unset
变量默认类型是字符串,数值运算只能是整数 1/3=0
declare -p sum 显示sum变量的类型
declare +x sum 加法+,表示取消 取消sum的x属性,从环境变量还原到自定义变量
数组
sum[0]=1
sum[1]=2
...
直接这样写就可以了,但是echo $sum 会得到1,要访问其他的变量要使用 echo ${sum[1]}, 注意,一定要有大括号
系统限制:
ulimit -a 可以显示所有的系统限制,比如每个用户最大的进程数... 如何修改自己man
变量内容的选择性显示:
sum=123:456:8910:1234
echo ${sum#*:} 后显示 456:8910:1234
echo ${sum##*:} 后显示 1234 但实际上并没有删除,只是没有全部显示而已
# 表示从前向后删除符合条件最短的
## 表示从前向后删除符合条件最长的
% 表示从后向前删除符合条件最短的
%% 表示从后向前删除符合条件最长的
替换
echo ${sum/:/#} 显示123#456:8910:1234
echo ${sum//:/#} 显示123#456#8910#1234
两个斜杠中间的是被替换字,后面的是替换字,前面用//表示全部替换
变量的选择性设置


命令别名
alias 显示所有的命令别名
alias rm='rm -i' 设置命令别名
unalias 名称 取消命令别名
历史命令
history 查看所有的历史命令
history [n]
history [-c]
history [-raw] histfiles
参数:
n :数字,意思是『要列出最近的 n 笔命令列表』的意思!
-c :将目前的 shell 中的所有 history 内容全部消除
-a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles , 则预设写入 ~/.bash_history
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w :将目前的 history 记忆内容写入 histfiles 中
!number
!command
!!
参数:
number :执行第几笔指令的意思;
command :由最近的指令向前搜寻『指令串开头为 command』的那个指令,并执行;
!! :就是执行上一个指令(相当于按↑按键后,按 Enter)
通配符:
* 代表0到无穷多个任意字符
? 代表一定有一个任意字符
[] 代表一定有1个在括号内的字符,如 [abcd]表示一定有一个字符时abcd中的一个
[-] 如[0-9]表示0-9的所有数字
[^] 如[^abc]一定有一个字符,只要是非abc中的一个就接受
数据流重定向
1. 标准输入(stdin) :代码为0 ,使用< 或<< ;
2. 标准输出(stdout):代码为1 ,使用> 或>> ;
3. 标准错误输出(stderr):代码为2 ,使用2> 或2>> ;
find /home -name testing > list_right 2> /dev/null
正确的输出到list_right文件,错误信息丢掉 >表示把list_right文件清空后重写 >>表示在文件后面接着写
find /home -name testing > list 2>&1
把正确和错误的信息都输出到同一个文件list中
cat > catfile < somefile :把somefile的内容写入catfile
cat > catfile <<eof :当输入eof后结束输入。相当于按了ctrl+d
多个命令执行:
; 分号,不考虑命令间关系
&& || 考虑命令间关系
ls /tmp/vbirding 2>> /dev/null && echo "exist" || echo "not exist"
/tmp/vbirding存在输出exist,否则输出not exist
管道命令:
cut: 选取命令 对一行里的数据选取
last | cut -d ' ' -f 1 :last显示历史登陆信息 cut以‘ ’空格为分隔符,取出每一行中的第一个信息 即登陆人
gerp: 选取有想要的数据的那一行
last | grep 'root' :把last输出信息中有root的行都显示出来
grep --color=auto 'MANPATH' /etc/man.config :把 man.config文件中有 MANPATH的行显示出来 并且关键字用 任意颜色显示
排序:
sort: 对文件内容排序
cat /etc/passwd|sort -t ':' -k 3 -n: 对passwd内容 以‘:’为分隔符的第3个段排序 以纯数字方法排序(-n)
uniq: 取消重复的显示
last | cut -d ' ' -f 1| sort | uniq -c|sort -n: 把last内容仅显示第一节内容,对第一节内容排序,取消重复显示,统计重复出现次数(-c),再按数字排序显示
wc 显示文件中有多少行 多少字 多少字符
tee: 双向定位
last | tee last.test.list | cut -d ' ' -f 1 :把last的结果存到last.test.list中,并且在屏幕上显示每行第一部分的信息
字符转换命令
tr 字符串删除 替换
last |tr [a-z] [A-Z] :把last输出的内容中所有小写的改成大写
echo "today is a nice day"|tr -d a:将句子中的a删除
col -x: 把tab键改成对等的空格
join file1 file2 把两个文件中相关的部分整合起来
paste file1 file2 把两个文件对应的两行连在一起
expand file:把file里的tab转化为空格键
split: 将大文件切割成小文件
xargs:参数代换
find /sbin -perm +7000 | xargs ls -l:用ls -l列出/sbin下所有特殊属性的文件的详细属性 find不支持管道命令 要用xargs
- :可以代替命令中的文件名
tar -cvf - /home|tar -xvf - :最后的-代表前面命令的标准输出文件
【linux】学习5的更多相关文章
- Linux学习日记-使用EF6 Code First(四)
一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是 请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...
- Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...
- Linux学习笔记之兄弟连
systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...
- Linux学习内容
Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- Linux学习心得之 Linux下ant安装与使用
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...
- 实验楼 linux 学习
实验楼 linux 学习 一.Linux 用户管理 1.查看用户 who am i // who mom likes whoami ====--------====== 输入的第一列表示打 ...
- linux学习网站分享
http://www.zhihu.com/question/19895288 http://linux.vbird.org/ 两个linux学习的网页存起来,以后学习.
- linux学习笔记2-linux的常用命令
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...
随机推荐
- springMVC 缓存(入门 spring+mybaties+redis一)
使用redis之前需要咋电脑上安装redis: 使用spring+mybaties+redis的本质是扩展类 org.apache.ibatis.cache.Cache:在我们自己扩展的Cache ...
- jquery动态改变my97日期格式
$('#qsrq').unbind('focus'); $('#zzrq').unbind('focus'); $('#qsrq').bind('focus', function () { Wdate ...
- cf.301.D. Bad Luck Island(dp + probabilities)
D. Bad Luck Island time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- .Net的要知道的一些事
1.什么是.NET?什么是CLI?什么是CLR?IL是什么?JIT是什么,它是如何工作的?GC是什么,简述一下GC的工作方式? .Net是微软推出的框架 CLI是公共语言接口(规范) CLR是公共语言 ...
- CSU 1116 Kingdoms(枚举最小生成树)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1116 解题报告:一个国家有n个城市,有m条路可以修,修每条路要一定的金币,现在这个国家只 ...
- 微软“One Windows”的梦想已经破灭了吗?
导读 Windows 10 正式公布的时候,微软曾表示该系统将开启更为个性化的计算新纪元,可让用户在使用各类设备处理各项事务时,享受到一致.熟悉和可兼容的体验,从 Xbox 到 PC 和手机,再到平板 ...
- Open CV缩放图像
缩放图像是图像处理中需要经常使用的操作.太小的图像在图像识别中不能很好的处理,需要将其放大,太大的图像不方便储存,需要将其缩小,下面记录OpenCV图片缩放方法. 缩放函数 , , int inter ...
- 2016年10月27日--css样式表
CSS样式表 样式表分类 1.内联样式表 和html联合显示,控制精确,但是可重用性差,冗余多. !doctype html> <html> <head> <met ...
- BZOJ 4596: [Shoi2016]黑暗前的幻想乡
Sol 容斥原理+Matrix-Tree定理.容斥跟小星星那道题是一样的,然后...直接Matrix-Tree定理就可以了... 复杂度\(O(2^{n-1}n^3)\) PS:调了好久啊QAQ 明明 ...
- 初识hibernate小案例
使用hibernate前需要导入相关JAR包. 1.它可以接受词文法语言描述,并能产生识别这些语言的语句的程序 2.是一个Java的XML API,类似于jdom,用来读写XML文件的 3.支持注解配 ...