一、shell常用命令
下面命令应用中,双引号可以不加;
<1>alias 给一个已经存放的文件取一个别名 (临时有效)
alias 别名="源命令的名称"
alias dir_list='ls -l' (空格不能要)
unalias 取消一个别名
unalias dir_list;
在home/ubuntu/.bashrc中修改,重启一个终端,别名永远有效;
<2>环境变量:操作系统给我们提供的全局变量。(在任何一个终端,任何一个目录都是全局可见)
(1)PATH环境变量:若是我们需要执行默认命令的时候,系统默认会到PATH环境变量中路径找我们的书写命令。PATH环境变量
存放的是一些路径。
shell中系统提供的变量特点:
a.常常大写。
b.没有数据类型,可以直接使用。
(2)查看PATH环境变量的内容:
echo $PATH
(3)把自己当前的路径到系统提供的环境变量中的方法:
$PATH 引用原来系统已经存在的环境变量的值
export PATH=$PATH:路径1:路径2:路径3
a.例如:
export PATH=$PATH:/home/ubuntu/work
只在当前终端有效,同时加在/etc/profile或/home/ubuntu/.bashrc中,才能在其他终端中有效;
原理:
当我们执行一个命令的时候,系统默认会在PATH环境变量中找我们的输入的命令的源文件。
/home/ubuntu/.bashrc shell的一个配置,当我们每次开启一个终端的时候时候,都会执行一遍,是用来初始化shell运行的环境。
<3>linux常见的命令
(1)pwd
(2)cd
(3)ls
(4)cp 复制文件/文件夹到另一个路径下
例如: cp hello.c /home/ubuntu 把hello.c 复制到/home/ubuntu目录下
cp dir_list /home/ubuntu -a 把dir_list文件夹复制到/home/ubuntu目录下
(5)mv 移动文件/文件夹到另一个路径下
例如:
mv hello.c /home/ubuntu 把hello.c 复制到/home/ubuntu目录下
mv dir_list /home/ubuntu 把dir_list文件夹复制到/home/ubuntu目录下
mv hello.c world.c 把当前目录下的hello.c重命名为world.c
(6)cat 显示文件的内容
例如:
cat hello.c 显示hello.c文件的内容
cat -n hello.c 带行号显示hello.c文件的内容
(7)rm 删除文件
参数:
-r 删除文件夹
-f 强制执行
常用:
rm hello.c 删除hello.c这个文件
rm -rf dir_list 删除dir_list这个文件夹
<4>linx进阶命令
(1)grep 从文件中搜索字符串
格式:grep "搜索的字符串" 文件名
例如: 在/etc/passwd中查找“xt”
grep "xt" /etc/passwd
常用参数:
a.搜索file文件中,以"string"开头的行
例如: grep "^string" file
b.搜索file文件中,以"string"结尾的行
例如: grep "string$" file
c.搜索file文件中,只包含“string”的行
例如:grep "^string$" file
d.在搜索文件的时候,同时显示行号
例如:grep "xt" -n /etc/passwd
习惯的用法:
e.在当前目录下所有的文件中搜索"main"(包括子目录)
grep "main" * -nR
(2)find :在指定路径下搜索文件
常用:
find 路径 -name 文件名
例如:find /home/chw -name test.c
(3)管道链接符"|" ->将一个命令的输出当作另一个命令的输入
(理解:后一个命令的操作,在前一个名来的基础上进行的。)
例如:cat /etc/passwd | grep "chw"
ls /usr/include | grep "stdio.h"
ls /home/ubuntu | grep "test.c"
(4)wc :统计 行数 单词的个数 字节数
参数:
-l 显示一个文件的行数
-w 显示一个文件的单词个数
-c 显示一个文件的字节数
(5)head 显示文件头n行的内容
head -行数 文件名
例如:
head -10 /etc/passwd
(6)tail 显示文件最后n行的内容
tail -行数 文件名
例如:
tail -1 /etc/passwd 显示最后一行的内容
tail -2 /etc/passwd 显示倒数两行的内容
思考:如何显示第10行的内容?(只显示第10行的内容)
head -10 /etc/passwd | tail -1
(7)cut : 字符串裁剪命令
注:改命令一般与管道一起使用。
格式:
cut -d "分割字符" -f 字段
参数:
-d 指定我们的分割字符
-f 指定我们显示的区域
例如:
cat /etc/passwd | grep "ubuntu" | cut -d ":" -f 1,2,3
得到结果:ubuntu:x:1001
(8)echo 先屏幕上输出信息
等价于puts("hello wold");
echo "hello world" 想屏幕上输出“hello world”
(9)su 切换用户
格式: sudo su 用户名 切换到其他用户
<5>shell中的通配符讲解
(1)含义:shell通用的匹配符号,我们叫做通配符。
(2)常用符号:
* 匹配任意长度的字符串 例如:ls file_*.c
? 匹配一个字符 例如: ls file_?.c
[..] 匹配输入其中指定的一个字符,全部列出来选择一个使用 例如: file_[abc].c
[起始-终止] 匹配一个字符范围 例如: file_[a-z].c file[1-9].c
[^..] 匹配除了指定字符意外的单个字符 例如: file[^abc].c
<6>输入/输出重定向
默认输入:键盘
默认输出:显示器
含义:改变默认的输入和输出方式,把本来应该输入到屏幕的上的内容,该输出到其他的位置。(文件)
(1)输出重定向(>)
含义:改变默认输出方式。把本来应该输出到屏幕的上的正确的内容,该输出到其他的位置。
格式: 输出到屏幕上的信息 > 新的文件名
例如:
echo "hello world" > log [重定向之前,会先把文件的内容给清除掉]
echo "welcome to handsom" >> log [以追加的方式在下一行中写入数据]
ls > log
pwd > log
grep "ubuntu" /etc/passwd > log
(2)输入重定向(<)
含义:改变默认输入方式。把本来应该从键盘获取的信息,该输出到其他的位置。(文件)
wall 给当前所有的用户发送广播消息 ,当输入完成后,按下回车表示输入结束按下ctrl + d,给所有的用户发送消息
wall < log 把文件中的内容发送给其他用户
练习:
1. 通过echo 命令把“Good Good study,Day Day up”写到 log.txt文件中
2. 开启一个新的终端,利用su命令切换一个新的用户
3. 通过wall命令把log.txt文件的内容发送给其他用户
(3)出错重定向(2>)
含义:改变默认输出方式。把本来应该输出到屏幕的上的错误的内容,该输出到其他的位置。
格式: 输出到屏幕上的错误信息2> 新的文件名
例如:
ls dasfadsfdafadsf.txt > log (该文件不存在,系统会提示错误,把错误的消息输出到文件中)
<7>命令置换
含义: 将一个命令的输出当作另外一个命令的参数。
格式:command1 `command2`
注:这里的符号不是单引号,而是反撇号,esc下面那个键。
例如:
find `pwd` -name "hello.c"
ls `pwd`