1. 前言
这篇主要是记录自己常用到Linux命令。
2. cd
用于切换当前工作目录
语法:
cd dirName
如:
cd /usr
// 切换到home目录
cd ~
// 切换到目前目录位置的上一层目录
cd ..
// 进入上一次工作路径
cd -
3. ls
查看指定工作目录下的内容
语法:
ls [options] [name...]
如:
列出以a开头的目录详细内容
ls -l a*
4. pwd
查看当前工作目录路径。
5. mkdir
用于创建文件夹。
mkdir [options] dirName
options:
m: 对新建目录设置权限,也可以用 chmod 命令设置;
p: 多级目录不存在,则自动建立不存在的目录,即可一次建立多个目录。
如:
// 在当前目录下创建test目录
mkdir test
// 给/usr下创建目录img,并且添加权限700
mkdir -m 700 /usr/img
mkdir -p -m 750 /usr/img/test/img
6. rm
用于删除文件或者目录。文件一旦通过rm命令删除,则无法恢复。
rm [options] name...
options
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
如:
// 删除任何 .log 文件,m默认会询问
rm *.log
// 删除任何 .log 文件,不询问
rm -rf *.log
7. rmdir
删除空的目录。
rmdir [-p] dirName
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
注意:删除非空目录会报错
rmdir: failed to remove ‘test/’: Directory not empty
如:
rmdir test
8. cp
将源文件复制至目标文件
cp [options] source dest
如:
将img整个目录复制到目录images,有文件重复则提示是否覆盖
cp -ai img images
9. mv
移动文件或修改文件名
mv [options] source dest
mv [options] source... directory
如:
// 将t1.go重命名为t2.go
mv t1.go t2.go
// 将t1.go移动到test目录
mv t1.go test
// 将t1.go移动到test、test1目录
mv t1.go test test1
10. touch
用于修改文件,文件不存在会创建文件
touch [options] 文件
如:
修改了文件main.go的时间属性为当前系统时间,如文件不存则直接创建
touch main.go
11. cat
将文件内容输出到设备上
语法:
cat [options] fileName
如:
// 显示整个文件:
cat 1.log
// 从键盘创建一个文件,直接在界面输入内容,按ctrl+c键可退出
cat > 2.log
// 将几个文件合并为一个文件:
cat f1.log f2.log > file.log
12. more
类似于cat,more会按一页一页展示,按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。
more [options] fileName
13. less
less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页,并且 less 在查看之前不会加载整个文
more [options] fileName
命令格式:
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
14. tail
用于查看文件的内容
tail [options] fileName
// 默认显示最后10行内容
tail blog.log
// 跟踪 blog.log 文件改变的情况
tail -f blog.log
// 查找出现 雨中笑 的行并跟踪 blog.log 文件改变的情况
tail -f 202009151727.log | grep '雨中笑'
15. grep
用于查找文件里符合条件的字符串
grep -C 5 main.go file 显示file文件里匹配main.go字串那行以及上下5行
grep -B 5 main.go file 显示main.go及前5行
grep -A 5 main.go file 显示main.go及后5行
16. which
查找某个文件,会在环境变量$PATH设置的目录里查找符合条件的文件。
which bash
17. whichis
用于查找文件,只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
如:
whereis nginx.conf
18. locate
用于查找文件,会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
locate nginx.conf
19. find
用来在指定目录下查找文件,在文件树中查找文件,属于遍历硬盘查找文件,效率会比whereis 及 locate 低。
find pathname -[options] [-print -exec -ok ...]
-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group 按照文件所属的组来查找文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件
d - 目录
c - 字符设备文件
l - 符号链接文件
p - 管道文件
f - 普通文件
-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件 (用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
-maxdepth n 最大查找目录深度
-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项**
如:
// 在当前目录查找 以 .go 结尾的文件
find ./ -name '*.go'
// 查找 24 小时内修改过的文件
find -atime -1
exec
-exec 参数后面跟的是 command 命令,它的终止是以 ; 为结束标志的,所以这句命令后面的分号是不可缺少的, 考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名。
实例:
在当前目录中查找更改时间在5日以前的文件并删除它们(无提醒)
find . -type f -mtime +5 -exec rm -f {} \;
20. chmod
控制用户对文件的权限的命令
chmod [options] mode file...
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
八进制语法
Linux系统下文件属性:drwxr-xr-x意思
drwxr-xr-x 18 root root 4096 May 20 13:51 wx
上述文件详细信息中drwxr-xr-x所代表的意思今天整理一下
d :第一位表示文件类型,d是目录文件、l是链接文件、-是普通文件、p是管道
rwx :第2-4位表示这个文件的属主拥有的权限。r是读、w是写、x是执行
r-x :第5-7位表示和这个文件属主所在同一个组的用户所具有的权限
r-x :第8-10位表示其他用户所具有的权限
字母代表
r:read就是读权限 --数字4表示
w:write就是写权限 --数字2表示
x:excute就是执行权限 --数字1表示
rwxr-xr-x 就可表示成 755
如:
chmod -R 777 wx/
21. chown
指定文件的拥有者改为指定的用户或组
chown [options] user[:group] file...
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
如:
chown -R app.app bolg
22. df
显示磁盘空间使用情况,获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件
df [options]
23. du
查看文件和目录磁盘空间使用情况
du [options] file
如:
// 显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
du -hc wx/ logs/
24. free
显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
free [options][-s <间隔秒数>]
如:
free
// 周期性查询内存使用情况
free -s 6
25. date
显示或设定系统的日期与时间。
-d<字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u 显示GMT。
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%m 月份(以01-12来表示)。
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
实例:
// 输出当前系统时间:Tue Nov 16 17:51:42 CST 2021
date
// 显示下一天的日期: 2021-11-17
date +%Y-%m-%d --date="+1 day"
// 显示数字日期:11/16/2021
date '+%x'
// 2周后日期:Tue Nov 30 17:54:35 CST 2021
date -d '2 weeks'
26. ps
用来查看当前运行的进程状态
ps [options]
如:
ps -aux | grep nginx
27. kill
用于删除执行中的程序或工作。
// 杀死进程
kill 44172
// 彻底杀死进程
kill -9 44172
28. nohup
用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup Command [ Arg … ] [ & ]
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
如:
nohup ./blog.sh &
29. history
查看操作命令的历史记录
history
history | grep mysql
或者
cat ~/.bash_history