Shell命令整理
Shell命令
一、认识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碎片数量
Shell命令整理的更多相关文章
- 常用的shell命令整理
工作快一年了,shell命令也玩了一年了.还是有点积累的,下面是本人常用的. 1.pwd | xargs -i basename {} 获取当前所在目录的名称 2.ps -ef|grep -w ...
- Linux的经典shell命令整理
Linux的经典shell命令整理 1.删除0字节文件find -type f -size 0 -exec rm -rf {} \; 2.查看进程按内存从大到小排列ps -e -o “%C : %p ...
- 常用shell 命令整理 一 进程 cpu
1.查看内存从大到小排列 ps -e -o "%C : %p : %z : %a"|sort -k5 -nr 分析: -e 显示进程 -o 按用户自定义格式显示 %C cpu %p ...
- (Shell)Shell命令整理
目录 常用命令 1. 上传.下载 2. 删除文件和文件夹 3. 目录操作 4. 文件的操作 4.vim 为新添加的文件后缀支持语法高亮 常用命令 1. 上传.下载 上传文件:rz,然后回车弹出上传文件 ...
- Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本
Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本 在 mac 或者 linux 系统中,我们的浏览器或者其他下载软件下载的文件全部都下载再 ~/Downloads/ 文 ...
- Hadoop Shell命令大全
hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于大多数程序猿/媛来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大 ...
- Android执行shell命令
一.方法 /** * 执行一个shell命令,并返回字符串值 * * @param cmd * 命令名称&参数组成的数组(例如:{"/system/bin/cat", &q ...
- Android成长记(1)-----android环境搭建与adb shell 命令
整理一下学习android一步一步存下来的自己总结或是从网上摘抄的比较不错的文档,电脑要上交了,最舍不得的就是自己积累的这么点东西了,所以决定发布到黎梓小站,以供大家一起学习以及自己日后忘记了也有地方 ...
- Windows常用shell命令大全
Windows常用shell命令大全 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本.更主要的是基于界面引导Path与命令行直达速度是难以比拟的.另外Geek很大一部分是键盘控,而非鼠 ...
随机推荐
- 学习Java第七周
重要知识点 1.“super”的用法 构造器和方法,都用关键字super指向超类,但是用的方法不一样.方法用这个关键字去执行被重载的超类中的方法 2.接口和抽象类的异同 相同: 1.接口和抽象类都有抽 ...
- DEVOPS技术实践_08:声明式管道语法
简介 前面简单的做了管道的实验,看了一下的它的效果 声明式管道是Groovy语法中的一个更简单和结构化的语法.下面主要学习明式管道语法. 一 声明式管道的基本结构 以上节的代码为例 node { de ...
- [工具] Git版本管理(四)(贡献开源代码、git配置、git免密、gitignore)
一.开源项目贡献代码 1.fork项目代码 例如,我们想向tornado框架贡献代码,首先搜索tornado. 然后,将tornado的代码fork到我们的仓库中. 2.clone到本地进行开发 克隆 ...
- 聊聊密码学中的DES算法
用心分享,共同成长 没有什么比你每天进步一点点更实在了 本文已经收录至我的github,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/artic ...
- DispatcherServlet的url-pattern尽量不要配置为"/*"
DispatcherServlet的url-pattern尽量不要配置为"/*" 原因 当Dispatcher的url配置为"/*"时,会把tomcat的web ...
- docker练习-群
了解Swarm集群 群集是一组运行Docker并加入群集的计算机.在此之后,继续运行使用的Docker命令,但现在它们由群集管理器在群集上执行.群中的机器可以是物理的或虚拟的.加入群组后,它们被称为节 ...
- schedule of 2016-10-09~2016-10-16(Sunday~Sunday)——1st semester of 2nd Grade
most important things to do 1.prepare for toefl 2.joint phd preparations 3.ieee trans thesis to writ ...
- tomcat 介绍及环境搭建
一.tomcat介绍 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型 系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选. ...
- 关于ESP8266 NodeCMU固件无法刷入新代码的解决方法
在玩ESP8266时,有时候会无意中写了导致死循环的代码,或都某些函数传递了不合适的参数导致系统崩溃,这可能会导致ES8266不停地重启,这时我们发现无法刷入新的代码,也无法删除8266中的原代码.我 ...
- IDEA 2019.2及以下版本永久激活教程(亲测可用)
写在前面 由于最近jetbrains公司开始严厉打击盗版激活码,所以导致一大批激活码失效,我身边的小伙伴对于如此苦恼,但是由于考虑到正版费用还是比较高昂的前提下,所以鉴于此,遂将之前整理的jar包激活 ...