标准输入 键盘
标准输出 显示器 i/O
运算器 cpu
控制器 cpu
存储器 内存
echo 输入 --> 输出
覆盖重定向 > 清空目标所有原有内容
追加重定向 >> 在目标文件内容最后追加新内容
rm 删除文件或目录
rm -r 递归删除
rm -f 强制删除 默认不提示
mkdir 递归创建
Which 查找指定命令所在地
alias 命令别名
rm 命令原本删除时不提示用户 但 安全起见 -i 用alias起别名 rm
为了强制删除不提示—>-f force
\rm 在命令前加上 反斜线\ 表示使用命令本意,不使用命令别名
创建文件hanhan,用alias起别名ls
执行hanhan就是执行ls
如果要删除某个文件,请使用以下命令指定删除文件
比如:
/usr/bin/rm 指定文件名
unalias 命令别名 表示取消指定的命令别名
whereis 关键字 表示在系统中查找指定关键字
环境变量
提供操作环境的一些变量 可以变化的值
Path
Hash -r清空
给一个XINGMING变量赋值为zhangsan
用echo引用XINGMING变量发现值为zhangsan
当系统里面需要使用zhangsan的变量名称时就可以用XINGMING这个变量名称来引用
变量:
1.变量代表一个有名字的、具有特定属性的一个存储单元;
2.变量用来存放数据,也就是存放变量的值;
3.变量的值可以改变;
4.变量有特定的类型,类型决定了存储单元的大小和变量值的范围,运算符可应用于变量上。
执行bash命令相当于新启用一个shell,echo命令查找XINGMING变量,发现在新的shell里没有XINGMING变量,因为在新的shell里没有定义这个变量
使用exit回到原来的shell中,发现有XINGMING这个变量。
执行pstree
发现pstree在bash下执行
再执行一个bash命令,在执行pstree命令,则发现
则当声明新的变量时,只在当前shell有效
使用export(表示导出某个变量)命令,发现有XINGMING这个变量,则使用export(表示导出某个变量)命令,所有子shell都会继承该变量。会话之间不影响。
Export VAW_NAME 导出该变量,所有子进程继承该到处变量,会话隔离。
Cat 本意连接并显示文件内容到标准输出
Cat 命令不跟任何参数的时候,表示连接了标准输入和标准输出。
使用ctrl+c退出
通配符:
*表示任意长度的任意字符
?表示任意单个字符
rm -rf /* 表示匹配所有文件 删除根目录下所有文件
rm -rf/ /表示根目录 删除根
使用mkdir创建目录test
使用cd命令进入目录test
使用touch命令创建文件1,2,3,4,a,b,c,d,
使用cp命令发现多了一个10文件,cp命令把1文件复制成10文件
若再次使用cp 1 10命令,则发现
重复
直接输入alias命令表示查看系统现有别名
复制文件10与1的时间不同,用stat命令查看1,10文件详细信息
如果想复制与原有文件一致度高的文件就要使用命令cp -a
执行cp 1 10 12命令,提示12不是目录,用mkdir命令建立12目录,再次用cp 1 10 12命令,发现该命令表示将文件1,10复制到目录12中
Cp -r命令(r代表recurse,递归)拷贝整个目录,复制目录就要复制目录及目录下所有文件。
Mv是move缩写,用来移动文件或者将文件改名(move(rename)files),Linux中MV命令常用来备份文件或目录。
Mv 1 2表示文件1覆盖文件2
Mv 1 2 3把1,2放到3目录去,因为3不是一个目录所以没有成功
MV 1 22表示把1文件的名字重命名为22
echo命令是在显示器上显示一段文字,一般起到提示的作用。
rmdir命令用来删除目录,前提是目录必须是空的。
.表示当前目录
..表示当前目录的上一目录
cat命令查看相对短一些的文件
cat -n 显示行号 行号并不是文件内容的一部分
more 查看长文件 空格(按页向下翻页)回车(按行向下翻页) 看完就结束,返回终端
less查看长文件 可以来回看 pageup pagedown 来回翻页,查看完成不退出,可以继续操作 退出查看按q按键
head 查看文件从第一行开始的多少指定行(标准用法head -n 10 messages,简写head -10 messages)
head -n(数字) num(文件名)
tail 查看文件从最后一行开始的多少指定
tail -n(数字) num(文件名)
tail -f跟踪内容变化,使用CTRL+c退出跟踪
如果想要前15行中间的5行,可以把前10行保存为一个文件,用tail命令去后5行
使用重定向把前10行保存为新文件
用tail命令取后5行
可是这样看来很复杂,怎样能简便一些呢?就需要通过“|”管道
这样看起来就简便很多
那如果又想要这5行中的第二三行呢?可以继续使用管道。
使用tail -f追踪wenjianming,在打开一个新的终端,
让前一个终端的文件发生变化,使用echo hahahahahahaha >> wenjianming (追加重定向)
日志追踪,方便排错。
如果使用echo xixixixixi > wenjianming表示将文件内容换成xixixixixi。文件的截断。(覆盖重定向)
“|”管道,用来连接管道前命令的标准输出和管道后命令的标准输入,一般用来流水线处理数据。
文件处理
cut 对文件按字段进行裁剪,不影响文件原有内容
cut -d :(分隔符) -f 1(所在字段) passwd(文件名)
-d 指定字段分隔符
-f 指定要保留的字段
1 保留第一个字段
1,3 保留1和3字段
1-3 保留1,2,3字段
首先用cat查看passwd文件,发现成表格式分布,每一行七个字段,以“:”为分隔符,
用cut命令分离第一字段
保留1,3字段
保留1-3字段
sort 按照指定规则指定字段进行排序
sort -t 指定字符
sort -k 指定字段
sort -n 按数值大小
sort -r 反向排序
sort -u 去重
uniq
-c:在数据行前出现的次数
-d:只打印重复的行,重复的行只显示一次
-D:只打印重复的行,重复的行出现多少次就显示多少次