你真的了解Linux shell命令吗?
发布日期:2021-07-01 00:12:37 浏览次数:2 分类:技术文章

本文共 4110 字,大约阅读时间需要 13 分钟。

文章目录


前言

Linux shell命令应该是算是非常入门的东西,但是实际上在使用的时候,会遇到各种各样的问题,前几天写了一个课程设计,要杀死一个进程。

我们正常的操作是:

ps | grep xxxkill -9 xxxx

kill命令是常用的,但是用killall命令会更快:

killall -9 xxx

正文

1.关机/重启

#关机(root用户)shutdown -h now  # 立刻关机shutdown -h +10  # 10分钟后关机shutdown -h 12:00:00  # 12点整关机halt  # 等于立刻关机#重启shutdown -r now  # 立刻重启reboot  # 等于立刻重启

2.echo

root@Ubuntu:~# a="Hello World!"root@Ubuntu:~# echo a  # 单纯的把字母a打印aroot@Ubuntu:~# echo &a  # 报错[1] 8012a:command not found[1]+  Done               echoroot@Ubuntu:~# echo $a  # 正确打印a代表的字符串Hello World!root@Ubuntu:~#

3.vim文本编辑器

(1).最基本用法

vim filename
  1. 首先会进入“一般模式”,此模式只接受各种快捷键和命令,不能直接编辑文本内容
  2. i键,就会从一般模式进入编辑模式,在此模式下,敲入的都是文本内容
  3. 编辑完成之后,按Esc键退出编辑模式,重新回到一般模式
  4. 再按:,进入“底行命令模式”,输入wq命令,回车即可保存退出

(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粘贴

(3).查找/替换

:set nu  # 显示行号:set nonu  # 隐藏行号:/you  # 查找文本中出现的you,并定位到第一个出现的地方,按n可以定位到下一个(按N定位到上一个):s/aaa/bbb  # 查找光标所在行的第一个aaa,替换为bbb:%s/aaa/bbb  # 查找文本中所有的aaa,替换为bbb

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

5.打包压缩

1.gzip压缩

gzip a.txt

2.gzip解压

gunzip a.txt.gzgzip -d a.txt.gz

3.bzip2压缩

bzip2 a

4.bzip2解压

bunzip2 a.bz2bzip2 -d a.bz2

5.打包:将指定文件或文件夹整理成包

tar -cvf bak.tar ./a  # 将本目录下的a打包成bak.tartar -rvf bak.tar /etc/password  # 将/etc/password追加到bak.tar中

6.解包

tar -xvf bak.tar

7.打包并压缩

tar -zcvf a.tar.gz a/

8.解包并解压缩

tar -zxvf a.tar.gztar -zxvf a.tar.gz -C /usr  # 解压到/usr/下

9.查看压缩包内容

tar -ztvf a.tar.gz

10.打包并压缩成bz2

tar -jcvf a.tar.bz2

11.解包并解压缩

tar -jxvf a.tar.bz2

6.常用查找命令的使用

1.查找可执行的命令所在路径

which ls

2.查找可执行的命令和帮助的位置

whereis ls

3.从某个文件夹开始查找文件

find / -name "file*"find / -name "file*" -ls

4.查找并删除

find / -name "file*" -ok rm {
} \;find / -name "file*" -exec rm {
} \;

5.查找用户为lzyuse的文件

find /usr -user lzyuse -ls

6.查找用户为lzyuse的文件夹

find /home -user lzyuse -type d -ls

7.查找权限为777的文件

find / -perm -777 -type d -ls

8.在指定目录不分大小写查找某个文件

find ./a/ -iname a.txt

9.显示历史命令

history  # 查看历史命令history -c  # 清理历史命令记录

7.grep命令

1.最常用的全字匹配

grep -wrn lzy ./a/

2.查找某个字符串,但是不在指定文件夹查找

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的文件

(1).基本使用

1.查询包含lzy的行

grep lzy /etc/passwordgrep lzy ./*.txt

2.cut截取以:分割保留第七段

root@Ubuntu:~# grep root /etc/passwdroot:x:0:0:root:/root:/bin/bashroot@Ubuntu:~# grep root /etc/passwd | cut -d: -f7/bin/bashroot@Ubuntu:~#

3.查询不包含lzy的行

grep -v lzy /etc/passwd

4.正则表达包含lzy

grep 'lzy' /etc/passwd

5.正则表达

grep 'l.*y' /etc/passwd

6.正则表达以lzy开头

grep '^lzy' /etc/passwd

7.正则表达以lzy结尾

grep 'lzy$' /etc/passwd

(2).正则表达

.   # 任意一个字符a*  # 任意多个a(零个或多个a)a?  # 零个或一个aa+  # 一个或多个a.*  # 任意多个任意字符\.  # 转义.o\{
2\} # o重复两次

1.查找不是以#开头的行

grep -v '^#' a.txt | grep -v '^$'

2.以h或r开头的

grep '^[hr]' /etc/passwd

3.不是以h或r开头的

grep '^[^hr]' /etc/passwd

4.不是以h到r开头的

grep '^[^h-r]' /etc/passwd

8.Linux 文件/文件夹

(1).Linux文件权限的描述格式解读

1.drwxr-xr-x(二进制表示 111 101 101 --> 755)

d: 标识节点类型(d:文件夹 -:文件 l:链接)
r: 可读 w: 可写 x: 可执行
第一组rwx: 表示这个文件夹的拥有者对它的权限: 可读可写可执行
第二组r-x: 表示这个文件夹的所属组用户对它的权限: 可读,不可写,可执行
第三组r-x: 表示这个文件夹的其他用户(相对于上面两类用户)对它的权限: 可读,不可写,可执行

(2).修改文件权限

chmod g-rw phd.dat  # 表示将phd.dat对所属组的rw权限取消chmod o-rw phd.dat  # 表示将phd.dat对其他人的rw权限取消chmod u+x phd.dat  # 表示将phd.dat对所属用户的权限增加xchmod a-x phd.dat  # 表示将phd.dat对所用户取消x权限# 也可以用数字的方式来修改权限chmod 664 phd.dat  # 将权限修改成 rw-rw-r--# 如果要将一个文件夹的所有内容权限统一修改,则可以添加-R参数chmod -R 770 a/

(3).修改文件所有权

只有root权限能执行

chown angela aaa  # 改变所属用户chown :angela aaa  # 改变所属组chown angela:angela aaa/  # 同时修改所属用户和所属组

(4).统计文件或文件夹的大小

du -sh a/  # 查看文件夹a的大小du -sh a.txt  # 查看文件a.txt的大小df -h  # 查看磁盘空间

END

这些Linux shell命令只是一些简单常见的命令,并没有多么的nb,但是是很实用的一些命令。学习命令并不是一定要去背,要熟悉了解一些命令,最好的办法就是一行一行的执行,不断尝试,自然而然熟悉每行命令,每个参数。

如果本文有什么写的不对的地方或有什么更好地建议和想法,欢迎在下方评论留言或私信我,大家一起进步学习!大佬勿喷~~

转载地址:https://lzyws739307453.blog.csdn.net/article/details/103666282 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:关于HTML基本标签,看这篇就够了!
下一篇:反向代理、负载均衡!优秀的Nginx

发表评论

最新留言

很好
[***.229.124.182]2024年04月23日 12时35分35秒