常用Linux Shell命令,了解一下!
1 前言
- Linux Shell命令应该是算是非常入门的东西,但是实际上在使用的时候,会遇到各种各样的问题,前几天写了一个课程设计,要杀死一个进程。
我们正常的操作是:ps | grep xxx
kill -9 xxxx
- kill命令是常用的,但是用killall命令会更快:
killall -9 xxx
2 正文
2.1 关机/重启
#关机(root用户)
shutdown -h now # 立刻关机
shutdown -h +10 # 10分钟后关机
shutdown -h 12:00:00 # 12点整关机
halt # 等于立刻关机 #重启
shutdown -r now # 立刻重启
reboot # 等于立刻重启
2.2 echo
root@Ubuntu:~# a="Hello World!"
root@Ubuntu:~# echo a # 单纯的把字母a打印
a
root@Ubuntu:~# echo &a # 报错
[1] 8012 a:command not found
[1]+ Done echo
root@Ubuntu:~# echo $a # 正确打印a代表的字符串
Hello World!
root@Ubuntu:~#
2.3 vim文本编辑器
2.3.1 最基本用法
vim filename
- 首先会进入“一般模式”,此模式只接受各种快捷键和命令,不能直接编辑文本内容
- 按i键,就会从一般模式进入编辑模式,在此模式下,敲入的都是文本内容
- 编辑完成之后,按Esc键退出编辑模式,重新回到一般模式
- 再按:,进入“底行命令模式”,输入
wq命令,回车即可保存退出
2.3.2 常用快捷键
# 下面的一些快捷键或命令只是简单的一小部分,我只是列举出来一些比较常用的命令
# 在一般模式下使用
a # 在光标后一位开始插入
A # 在该行的最后插入
I # 在该行的最前面插入
gg # 直接跳到文件的首行
G # 直接跳到文件的尾行
nG # 直接跳到第n行
dd # 删除一行
3dd # 删除3行
yy # 复制一行
3yy # 复制3行
p # 粘贴
u # undo撤销
v # 进入字符选择模式,选择完成后,按y复制,按p粘贴
Ctrl+v # 进入块选择模式,选择完成后,按y复制,按p粘贴
V(Shift+v) # 进入行选择模式,选择完成后,按y复制,按p粘贴
2.3.3 查找/替换
:set nu # 显示行号
:set nonu # 隐藏行号
:/you # 查找文本中出现的you,并定位到第一个出现的地方,按n可以定位到下一个(按N定位到上一个)
:s/aaa/bbb # 查找光标所在行的第一个aaa,替换为bbb
:%s/aaa/bbb # 查找文本中所有的aaa,替换为bbb
2.4 拷贝/删除/移动/重命名
cp filename /home/tmp/ # 将filename拷贝到 /home/tmp/下
rm /home/tmp/filename # 删除/home/tmp/下的filename文件
rm -f /home/tmp/filename # 强制删除/home/tmp/下的filename文件
mv /home/tmp/filename ./ # 移动/home/tmp/下的filename文件到本层目录
mv filename1 filename2 #将filename1重命名为filename2
2.5 打包压缩
gzip压缩gzip a.txt
gzip解压gunzip a.txt.gz
gzip -d a.txt.gz
bzip2压缩bzip2 a
bzip2解压bunzip2 a.bz2
bzip2 -d a.bz2
- 打包:将指定文件或文件夹整理成包
tar -cvf bak.tar ./a # 将本目录下的a打包成bak.tar
tar -rvf bak.tar /etc/password # 将/etc/password追加到bak.tar中
- 解包
tar -xvf bak.tar
- 打包并压缩
tar -zcvf a.tar.gz a/
- 解包并解压缩
tar -zxvf a.tar.gz
tar -zxvf a.tar.gz -C /usr # 解压到/usr/下
- 查看压缩包内容
tar -ztvf a.tar.gz
- 打包并压缩成bz2
tar -jcvf a.tar.bz2
- 解包并解压缩
tar -jxvf a.tar.bz2
2.6 常用查找命令的使用
- 查找可执行的命令所在路径
which ls
- 查找可执行的命令和帮助的位置
whereis ls
- 从某个文件夹开始查找文件
find / -name "file*"
find / -name "file*" -ls
- 查找并删除
find / -name "file*" -ok rm {} \;
find / -name "file*" -exec rm {} \;
- 查找用户为lzyuse的文件
find /usr -user lzyuse -ls
- 查找用户为lzyuse的文件夹
find /home -user lzyuse -type d -ls
- 查找权限为777的文件
find / -perm -777 -type d -ls
- 在指定目录不分大小写查找某个文件
find ./a/ -iname a.txt
- 显示历史命令
history # 查看历史命令
history -c # 清理历史命令记录
2.7 grep命令
- 最常用的全字匹配
grep -wrn lzy ./a/
- 查找某个字符串,但是不在指定文件夹查找
grep -E "http" ./ -R --exclude-dir=./a/
grep -E "http" . -R --exclude-dir={.git,res,bin}
grep -E "http" . -R --exclude=*.{java,js} # 排除扩展名为java和js的文件
2.7.1 基本使用
- 查询包含lzy的行
grep lzy /etc/password
grep lzy ./*.txt
- cut截取以:分割保留第七段
root@Ubuntu:~# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
root@Ubuntu:~# grep root /etc/passwd | cut -d: -f7
/bin/bash
root@Ubuntu:~#
- 查询不包含lzy的行
grep -v lzy /etc/passwd
- 正则表达包含lzy
grep 'lzy' /etc/passwd
- 正则表达
grep 'l.*y' /etc/passwd
- 正则表达以lzy开头
grep '^lzy' /etc/passwd
- 正则表达以lzy结尾
grep 'lzy$' /etc/passwd
2.7.2 正则表达
. # 任意一个字符
a* # 任意多个a(零个或多个a)
a? # 零个或一个a
a+ # 一个或多个a
.* # 任意多个任意字符
\. # 转义.
o\{2\} # o重复两次
- 查找不是以
#开头的行grep -v '^#' a.txt | grep -v '^$'
- 以h或r开头的
grep '^[hr]' /etc/passwd
- 不是以h或r开头的
grep '^[^hr]' /etc/passwd
- 不是以h到r开头的
grep '^[^h-r]' /etc/passwd
2.8 Linux 文件/文件夹
2.8.1 Linux文件权限的描述格式解读
drwxr-xr-x(二进制表示 111 101 101 --> 755)
d: 标识节点类型(d:文件夹 -:文件 l:链接)
r: 可读 w: 可写 x: 可执行
第一组rwx: 表示这个文件夹的拥有者对它的权限: 可读可写可执行
第二组r-x: 表示这个文件夹的所属组用户对它的权限: 可读,不可写,可执行
第三组r-x: 表示这个文件夹的其他用户(相对于上面两类用户)对它的权限: 可读,不可写,可执行
2.8.2 修改文件权限
chmod g-rw phd.dat # 表示将phd.dat对所属组的rw权限取消
chmod o-rw phd.dat # 表示将phd.dat对其他人的rw权限取消
chmod u+x phd.dat # 表示将phd.dat对所属用户的权限增加x
chmod a-x phd.dat # 表示将phd.dat对所用户取消x权限 # 也可以用数字的方式来修改权限
chmod 664 phd.dat # 将权限修改成 rw-rw-r--
# 如果要将一个文件夹的所有内容权限统一修改,则可以添加-R参数
chmod -R 770 a/
2.8.3 修改文件所有权
- 只有root权限能执行
chown angela aaa # 改变所属用户
chown :angela aaa # 改变所属组
chown angela:angela aaa/ # 同时修改所属用户和所属组
2.8.4 统计文件或文件夹的大小
du -sh a/ # 查看文件夹a的大小
du -sh a.txt # 查看文件a.txt的大小
df -h # 查看磁盘空间
3 END
这些Linux shell命令只是一些简单常见的命令,并没有多么的nb,但是是很实用的一些命令。学习命令并不是一定要去背,要熟悉了解一些命令,最好的办法就是一行一行的执行,不断尝试,自然而然熟悉每行命令,每个参数。
如果本文有什么写的不对的地方或有什么更好地建议和想法,欢迎在下方评论留言或私信我,大家一起进步学习!大佬勿喷~~
常用Linux Shell命令,了解一下!的更多相关文章
- 精选37条强大的常用linux shell命令组合
任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \;find . type f ...
- 37条常用Linux Shell命令组合
序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程, ...
- 转 精选37条强大的常用linux shell命令组合
1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程,按内存从大到小排列 p ...
- 常用Linux shell命令汇总
1.检查远程端口是否对bash开放:echo >/dev/tcp/8.8.8.8/53 && echo "open" 2.让进程转入后台:Ctrl + z 3 ...
- 常用Linux Shell命令组合
序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \;find . type f -size 0 -delete 2 查看进程,按 ...
- Linux下最常用的Shell命令的介绍
Shell基础: 你可以通过打开Linux的terminal(终端)来执行Shell命令.Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell.在现在的大多数Linux ...
- 常用的shell命令整理
工作快一年了,shell命令也玩了一年了.还是有点积累的,下面是本人常用的. 1.pwd | xargs -i basename {} 获取当前所在目录的名称 2.ps -ef|grep -w ...
- 73条日常Linux shell命令汇总,总有一条你需要!
转载: 73条日常Linux shell命令汇总,总有一条你需要! 1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo &q ...
- Lua 常用的shell命令
lua作为一种小巧的脚本语言,其函数等动作可以使用shell命令进行运行和调试,以下是几个常用的shell命令.基本格式是 lua [选项参数] [脚本参数] (1)%lua 程序名.lua ...
随机推荐
- 2020-07-21:简述redis主从同步的过程。
福哥答案2020-07-21: 1.从服务发送一个sync同步命令给主服务要求全量同步.2.主服务接收到从服务的sync同步命令时,会fork一个子进程后台执行bgsave命令(非阻塞)快照保存,生成 ...
- C#LeetCode刷题-脑筋急转弯
脑筋急转弯篇 # 题名 刷题 通过率 难度 292 Nim游戏 62.5% 简单 319 灯泡开关 31.8% 中等 777 在LR字符串中交换相邻字符 21.9% 中等
- 使用Tensorflow搭建自编码器(Autoencoder)
自编码器是一种数据压缩算法,其中数据的压缩和解压缩函数是数据相关的.从样本中训练而来的.大部分自编码器中,压缩和解压缩的函数是通过神经网络实现的. 1. 使用卷积神经网络搭建自编码器 导入MNIST数 ...
- Kruscal算法求图的最小生成树
Kruscal算法求图的最小生成树 概述 和Prim算法求图的最小生成树一样,Kruscal算法求最小生成树也用到了贪心的思想,只不过前者是贪心地选择点,后者是贪心地选择边.而且在算法的实现中,我 ...
- Python 函数为什么会默认返回 None?
Python 有一项默认的做法,很多编程语言都没有--它的所有函数都会有一个返回值,不管你有没有写 return 语句. 本文出自"Python为什么"系列,在正式开始之前,我们就 ...
- DDD与Repository
Repository已经不是什么新鲜概念了.DDD模型自2004年提出,发展至今已经16年了.但是不少企业却无法实施,其原因也很简单:DDD是基于需求的,而很多并不理解需求:DDD是容易实现的,而很多 ...
- char **指针动态分配地址空间
1. 定义char **类型变量,初始化为NULL 2. 分配行指针数组空间 3. 为每行分配空间 4. 释放每行的空间 5. 释放二维指针 void main() { char **pointer= ...
- golang gorm 基本使用
原文链接:golang orm 框架之 gorm gorm 用法介绍 库安装 go get -u github.com/jinzhu/gorm 数据库连接 import ( "github. ...
- Docker 安装及配置镜像加速
Docker 版本 随着 Docker 的飞速发展,企业级功能的上线,更好的服务意味着需要支付一定的费用,目前 Docker 被分为两个版本: community-edition 社区版 enterp ...
- TX-LCN 分布式事务框架
第十章 TX-LCN 分布式事务框架 (Spring Cloud 高级) 一. 什么是分布式事务 分布式事务是指事务的参与者.支持事务的服务器.资源服务器以及事务管理器分别位 于不同的分布式系统的不同 ...