当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Shell命令

Shell命令 时间:2019-07-29      来源:成都中心,严老师

一、认识Shell

在Linux系统中,Shell充当着用户与Linux内核的桥梁,俗称壳保护着Linux内核,同时也负责完成用户与内核之间的交互。

当用户需要与内核交互时,将命令传递至Shell,再由Shell将命令解析成内核所能理解的指令,然后操作系统做出响应对硬件进行控制,最后再将结果通过Shell返回给用户。

经过多年的发展,由不同的机构、针对不同的目的,开发出许多不同类型的Shell程序。目前流行的Shell主要有几种 :

Bourne Shell

Bourne Again Shell

C Shell

K Shell

Shell for Root

Bourne Again Shell简称Bash,由于易用和免费,Bash 在日常工作中被广泛使用。同时Bash 也是大多数Linux 系统默认的 Shell。

二、Shell命令

(1)文件目录类

1.pwd 

功能:显示当前绝对路径

2.ls

功能:显示文件和目录的信息

ls   以默认方式显示当前目录下的内容

ls -a  显示所有文件包括隐藏文件

ls -l  显示详细信息

3.cd

功能:切换目录

cd dir 切换到dir目录

cd /  切换到根目录

cd ..  切换到到上一级目录

cd ~  切换到用户目录,比如是root用户,则切换到/root下

4.mkdir

功能:创建目录

mkdir aa     创建目录aa

mkdir a/b/c -p 创建多级目录

5.rm 

功能:删除文件或目录

rm 1.txt  删除1.txt文件

rm aa -r 删除文件夹aa

6.cp

功能:拷贝文件或目录

cp 1.txt ./dest/   拷贝1.txt到dest目录下

cp 1.txt 3.txt    拷贝1.txt到同级目录的3.txt

cp aa  ./dest/ -r 拷贝文件夹aa到dest目录下

7.mv 

功能:移动命令

mv 1.txt ./dest/   拷贝1.txt到dest目录下

mv 1.txt 3.txt    将1.txt改名为3.txt

mv aa  ./dest/ -r 移动文件夹aa到dest目录下

8.cat 

功能:显示文件的内容

cat 1.cpp

9.head、tail 

功能:head显示文件前10行(默认)

功能:tail显示文件后10行(默认)       

10.touch

功能:创建文件或修改文件时间戳

11.du 

功能:显示指定的目录或文件所占用的磁盘空间

du -sh  /home 以K,M,G为单位显示home的总大小

12.ln   

功能:建立软连接和硬连接

ln -s dir linkdir  给dir创建软连接linkdir

13.find 

功能:查找

find  /home -type f -name “1.c”  在home目录查找1.c文件 

find  ./ -type f -name “*.txt”     在当前目录查找所有txt文件

14.file  

功能:显示文件类型

file 1.txt

file a.out 

15.which

功能:在PATH路径查找文件

which ls 查找ls的路径

 

(2)系统管理类

1.shutdown 、reboot

功能:关闭或重启计算机

shutdown -h now 

shutdown -r +10  10分钟后重启

shutdown -c 取消重启或关机

reboot 重启

2.su 

功能:切换用户

su farsight  切换到farsight用户

su - 切换到root用户,同时使用该用户环境

3.adduser

功能:添加用户

adduser farsight 

4.passwd

功能:设置或更改用户密码

passwd user 修改user的密码

5.chown 

功能:更改文件或目录的所有者

chown farsight /dir 将dir设为farsight用户所有

6.chmod 

功能:修改文件权限

chmod 777 1.sh

chmod +x 1.sh 

7.sudo

功能:用来以其他身份来执行命令,预设的身份为root

8.man 

功能:帮助命令

man 1 ls     查看ls命令手册

man 2 socket 查看socket函数手册

9.clear 

功能:清屏

10.echo 

功能:字符串输出

echo “hello” 输出字符串hello

echo $PATH 输出PATH变量

 

(3)归档压缩类

1.gzip gunzip  

功能:解压文件

gzip  1.txt      压缩1.txt

gunzip -f file.gz  解压文件

2.tar  

功能:解压文件

tar -vxf file.tar     解压缩包

tar -xzvf file.tar.gz  解压tar.gz

tar -cvf file.tar dir   将dir打包压缩

 

(4)进程管理类

1.ps

功能:显示进程信息

ps -ef 显示当前系统详细进程

ps -aux 显示所有包含其他使用者的行程

2.pstree 

功能:将所有行程以树状图显示

3.top 

功能:实时显示process的动态

4.kill 

功能:给进程发信号

kill -signum  pid  给pid发信号  

kill pid           结束pid进程

 

(5)软件管理类

1.apt

功能:对软件进行管理

apt-get install nginx 安装nginx

apt-get update 更新源 

apt-get upgrade 升级软件 

apt-get remove cmatrix 删除软件

apt-get check 确认依赖的软件仓库正确 

apt-get clean 清理缓存 

2.dpkg

功能:对软件进行管理

dpkg -i package.deb  安装deb 包 

dpkg -r package_name 删除软件

dpkg -l 显示系统中所有已经安装的 deb 包 

dpkg -L cmatrix 显示软件cmatrix所提供的文件列表

dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表 

dpkg -S /bin/ping 确认ping命令由哪个deb包提供 

 

(6)文本处理类

1.wc 

功能:统计文本文件

wc -l 1.txt    统计1.txt的行数

wc -w 1.txt   统计1.txt的字数

wc -c 1.txt    统计1.txt的字节数

2.grep

功能:过滤来自一个文件或标准输入匹配模式内容

ps -ef | grep "nginx" 显示关于nginx的进程信息

grep "jack" *.txt     在所有的txt文件中查询关键字jack

grep -r "id" *     递归搜索所有文件中的关键字id

grep -n root /etc/passwd  将/etc/passwd,有出现 root 的行取出来显示行号

dmesg | grep -n --color=auto 'eth' 

dmesg 列出核心信息找出内含 eth 那行,并着色

grep -f a.txt b.txt 输出 b 文件中在 a 文件相同的行

echo "A a b c" |xargs -n1 |grep -i a   匹配开头不分大小写的单词

grep -E -v "^$|^#" file.txt  去除文件空行或开头#号的行

grep -r '192.168.1.1' /etc --include *.conf 匹配指定ip的conf文件

3.sed 

功能:流编辑器,过滤和替换文本

sed -n '3,9p' file.log  输出第三行到第九行

sed -n '/aaa/,/bbb/p' file.log 输出从aaa开始到bbb结束的行

sed -i 's/string1/string2/g' file.txt 将文件中的 "string1" 替换成 "string2"

sed '/^$/d' file.txt 从文件中删除所有空白行 

sed '/ *#/d; /^$/d' test.c 从文件中删除所有注释和空白行

sed -e '1d' file.txt 从文件中排除第一行 

sed -e 's/ *$//' file.txt 删除每一行最后的空白字符

sed -e 's/00*/0/g' file.txt 用单个零替换多个零 

4.awk  

功能:awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等等

 

tail -n3 /etc/services |awk '{print $2}'  输出第二字段

awk -F ':' '{print $1}' /etc/passwd     指定冒号为分隔符打印第一字段

tail /etc/services |awk '/tcp/{print $0}'  匹配包含 tcp 的行

tail /etc/services |awk '/^[a-z0-9]{8} /{print $0}' 匹配第一个字段是 8 个字符的行

tail /etc/services |awk 'BEGIN{print"Service\t\tPort\t\t\tDescription\n==="}{print

$0}'                             打印页眉

tail /etc/services |awk '/blp5/ && /tcp/{print $0}' 记录blp5和tcp的行

echo "www.baidu.com/user/test.html" |awk 'BEGIN{RS="/"}{print $0}' 以/进行分割

tail -n2 /etc/services |awk 'BEGIN{RS="/";ORS="#"}{print $0}' 替换字符

 

(7)网络类

1.ping

功能:用来确认网络连接是畅通的,测网速

ping www.baidu.com 

 

2.ifconfig、ifup、ifdown

功能:查看用户网络配置

ifconfig eth0 显示一个以太网卡的配置

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 设置地址

ifup eth0    启用eth0

ifdown eth0  禁用eth0

 

3.ssh 

功能:远程登录到其他主机

ssh -l root 192.168.1.1 //使用root登录192.168.1.1

4.scp 

功能:用于Linux之间复制文件和目录

scp file root@192.168.1.1:/root 拷贝file文件到ip为192.168.1.1的主机/root目录下

scp root@192.168.1.1:/root/1.c ./ 拷贝ip为192.168.1.1主机root目录下的1.c文件到本地主机当前目录

5.telnet  

功能:TELNET协议的远程登录

telnet 192.168.1.1 登录指定ip

telnet 192.168.1.1 6666 登录指定ip和端口

telnet www.baidu.com 登录指定网站

6.route  

功能:查看路由信息

route  显示路由信息。

route add –host 192.168.1.66 dev eth0  添加路由

route add –net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1  给子网192.168.1.0添加路由和网关

route add default gw 192.168.3.1  添加默认网关地址192.168.3.1

route del –host 192.168.1.66 dev eth0   删除路由

route change 192.168.1.0 mask 255.255.255.0 192.168.3.123  将子网 192.168.1.0 的下一跃点地址设置为 192.168.3.123

7.netstat  

功能:显示各种网络相关信息

netstat    显示本机网络连接情况。

netstat –a 显示所有的有效连接信息

netstat -l  列出处于监听的socket

netstat –ac每隔1秒刷新1次显示,直到用户中断显示。

netstat -i  显示网络接口列表

netstat –r  显示路由表。

netstat -an | grep ':22' 找出运行在指定端口的进程

netstat -apn | grep ssh 找出程序的运行端口

netstat –st 显示TCP端口信息。

netstat –su 显示UDP端口信息。

netstat –s  显示各个协议的统计信息。

8.iptables 

功能:防火墙设置

iptables -L -n 查看本机iptables

iptables -F      清除预设表filter中的所有规则链的规则

iptables -X      清除预设表filter中使用者自定链中的规则

service iptables restart 重启防火墙

iptables -A INPUT -p tcp --dport 80 -j ACCEPT 开启80端口

iptables -A INPUT -s 192.168.3.126 -p tcp --dport 22 -j ACCEPT 限制指定ip登录ssh

iptables -t filter -A INPUT -s 192.168.1.66 -i eth0 -j DROP 禁止指定ip从eth0访问本机

iptables -I FORWARD -s 192.168.1.66 -j DROP 禁止指定ip上网

iptables -A FORWARD -f -m limit --limit 200/s --limit-burst 200 -j ACCEPT

处理ip碎片数量

上一篇:STM32 USART串口

下一篇:ADC

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部