学习记录--linux常用指令

Huang Zhiwei

系统操作常用指令

ls

list 的缩写,可以查看 linux 文件夹包含的文件、文件权限、目录、文件夹等信息。

  • ls -a:列出目录所有文件,包含以。开始的隐藏文件。
  • ls -A:列出除。及。. 的其它文件。
  • ls -l:除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。

pwd

  • pwd:查看当前路径。
  • pwd -P:查看软链接的实际路径。

mkdir

用于创建文件夹。

  • mkdir newfolder:在当前目录创建名字为 newfolder 的文件夹。
  • mkdir -p /tmp/test/t1/t:在 tmp 目录下创建路径为 test/t1/t 的目录,系统会自动建立那些不存在的目录。

rm

删除一个目录中的一个或多个文件或目录。

  • rm -i *.log:删除任何。log 文件,删除前逐一询问确认。
  • rm -rf test:递归删除 test 子目录及其子目录中所有档案,并且不用一一确认。

mv

用来移动或修改文件名,参数为目录时移动文件,否则重命名文件。

  • mv test.log test1.txt:将文件 test.log 重命名为 test1.txt。
  • mv llog1.txt log2.txt log3.txt /test3:将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中。
  • mv -i log1.txt log2.txt:将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆。
  • mv * ../:移动当前文件夹下的所有文件到上一级目录。

cp

将源文件复制至目标文件,或将多个源文件复制至目标目录。

  • cp -i:提示出现文件的覆盖。
  • cp -r:复制目录及目录内所有项目。
  • cp -a:复制的文件与原文件时间一样。
  • cp -ai a.txt test:复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。
  • cp -s a.txt link_a.txt:为 a.txt 建议一个链接(快捷方式)。

cat

主要用来显示文件内容、创建新文件和合并文件。

  • cat -b:对非空输出行号。
  • cat -n:输出所有行号。
  • cat test.log:创建 test.log 文件。
  • cat -n log2012.log log2013.log:把 log2012.log 的文件内容加上行号后添加到 log2013.log。
  • cat -b log2012.log log2013.log log.log:把 log2012.log 和 log2013.log 的文件内容加上行号后添加到 log.log。

显示文件的开头几行,默认显示文件的前 10 行。

  • head -n:行数,最后 n 行使用负数。
  • head -c:字节数。
  • head -n 10 1.log:显示 1.log 文件中前 20 行。
  • head -c 20 log2014.log:显示 1.log 文件前 20 个字节。
  • head -n -10 t.log:显示 t.log 最后 10 行。

tail

用于显示指定文件末尾内容,不指定文件时,使用输入信息进行处理,常用查看日志文件。

  • tail -f:循环读取,常用于查看递增的日志文件。
  • tail -n:行数。

which

在 PATH 中搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

  • which ls:查看 ls 命令是否存在,执行哪个。
  • which cd:显示 cd 是内建命令。

whereis

whereis 命令只能用于程序名的搜索,whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而 find 则是遍历硬盘查找文件。

  • whereis python:返回所有相关的文件。
  • whereis -b python:搜索二进制可执行文件。
  • whereis -m python:搜索说明帮助文件。
  • whereis -s python:搜索源代码文件。
  • whereis -u python:搜索默认路径下以上文件之外的其它文件。

find

用于查找文件,可以配合使用正则表达式。

  • find ./ -name '*.log':在当前目录查找 以。log 结尾的文件。
  • find / -name filename.txt:查找/目录下的 filename.txt 文件。

tar

用来压缩和解压文件。文件系统中,打包和压缩是不同的。打包是将一大堆文件或目录变成一个总的文件,压缩是将一个大的文件通过一些压缩算法变成一个小文件。

tar 本身只具有打包功能,而压缩及解压是调用其它的程序完成的。

  • tar -c:建立新的压缩文件。
  • tar -f:指定压缩文件。
  • tar -x:从压缩包中抽取文件。
  • tar -z:支持 gzip 压缩。
  • tar -v:显示操作过程。
  • tar -xvzf test.tar.gz:解压 test.tar.gz 文件。
  • tar -zcvf test.tar.gz ./:压缩当前文件夹为 test.tar.gz。

chmod

用于修改 linux 系统文件或目录的访问权限。有两种用法:一种是包含字母和操作符表达式的文字设定法,另一种是包含数字的数字设定法。

  • chmod 777 file:设置所有人可以读写及执行。
  • chmod 600 file:设置拥有者可读写,其他人不可读写执行。
  • chmod ugo+r a.conf && chmod a+r a.conf:设置所有用户可读取文件 a.conf。
  • chmod u+rwx c.sh:设置 c.sh 只有拥有者可以读写及执行。
  • chmod a+r,ug+w,o-w a.conf b.xml:设置文件 a.conf 与 b.xml 权限为拥有者与所属的群组可读写,其它组可读不可写。
  • chmod -R a+rw *:设置当前目录下的所有档案与子目录皆设为任何人可读写。

主要数字和权限对应关系表

  • -rw------- (600):只有拥有者有读写权限。
  • -rw-r--r-- (644):只有拥有者有读写权限;而属组用户和其他用户只有读权限。
  • -rwx------ (700):只有拥有者有读、写、执行权限。
  • -rwxr-xr-x (755):拥有者有读、写、执行权限,属组用户和其他用户只有读、执行权限。
  • -rwx--x--x (711):拥有者有读、写、执行权限,属组用户和其他用户只有执行权限。
  • -rw-rw-rw- (666):所有用户都有文件读、写权限。
  • -rwxrwxrwx (777):所有用户都有读、写、执行权限。

df

通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据 OS 的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小。

dfdu不同的地方是计算大小时会加上还没有释放的已删除文件,更加精确。

  • df -a:全部文件系统列表。
  • df -h:易读模式显示信息。
  • df -l:显示本地磁盘使用情况。

du

通过搜索文件然后计算每个文件的大小累加得到空间的大小信息。du能看到的文件只是一些当前存在的,没有被删除的,计算的大小就是当前存在的所有文件大小的累加和。

  • du -s:只显示总和的大小。
  • du logxxx.log:显示指定文件的所占空间,如果文件为多个则分别显示。
  • du -a scf/:显示文件夹内文件夹和文件的大小。
  • du -h scf/:以易读方式显示文件夹内及子文件夹大小。
  • du -c test/ scf/:显示几个文件或目录各自占用磁盘空间的大小,并统计它们的总和。

grep

grep 在一个或多个文件中搜索字符串或者正则表达式模版,模板后的所有字符串被看作文件名,搜索的结果被送到标准输出,不影响原文件内容。

  • ps -ef | grep java:查看 java 有关进程。

ps

用来查看进程的状态。

  • ps -ef:显示当前所有进程及进程间关系。
  • ps -ef | grep java:查看 java 有关进程。
  • `ps -ef | head -5’:列出前五的进程。

image-20230426113013838

  • UID:用户 ID。
  • PID:进程 ID。
  • PPID:父进程号。
  • C:CPU 的占用率。
  • STIME:进程的启动时间。
  • TTY:登入者的终端机位置。
  • TIME:进程执行起到现在总的 CPU 占用时间。
  • CMD:启动这个进程的命令。

top

显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等

  • top -p pid:显示指定 pid 的信息。
  • top -n:前 n 行信息。

kill

  • kill -9 19979:终止线程号位 19979 的线程。

free

显示系统内存使用情况,包括物理内存、交互区内存 (swap) 和内核缓冲区内存。

  • free -t:显示内存总和的使用信息。
  • free -s:周期显示内存使用信息。
  • free -b/-k/-m/-g:使用不同的单位显示内存使用情况。

docker常用指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#info|version
docker info #显示docker的系统信息,包括镜像和容器的数量
docker version #显示docker的版本信息。
#帮助命令
docker 命令 --help #帮助命令
#镜像命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search #搜索镜像
docker pull #下载镜像 docker image pull
docker rmi #删除镜像 docker image rm
#容器命令
docker run 镜像id #新建容器并启动
docker ps 列出所有运行的容器 docker container list
docker rm 容器id #删除指定容器
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器
#启动和停止容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
#退出容器
exit #容器直接退出
ctrl +P +Q #容器不停止退出 ---注意:这个很有用的操作
#其他常用命令
docker run -d 镜像名 #后台启动命令
docker logs #查看日志
docker top 容器id #查看容器中进程信息ps
docker inspect 容器id #查看镜像的元数据
docker exec #进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker attach # 进入容器正在执行的终端
docker cp 容器id:容器内路径 主机目的路径 #从容器内拷贝到主机上
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
docker attach	#连接到正在运行中的容器
docker build #使用 Dockerfile 创建镜像
docker builder #管理builds
docker builder prune #清除build缓存
docker checkpoint #管理checkpoints
docker checkpoint create #从正在运行的容器创建检查点
docker checkpoint ls #列出容器的检查点
docker checkpoint rm #删除指定的检查点
docker commit #从容器创建一个新的镜像
docker config #管理Docker配置
docker config create #创建配置文件
docker config inspect #查看配置文件信息
docker config ls #显示docker里已经保存得配置文件
docker config rm #删除配置文件
docker container #管理容器
docker container prune #删除所有已停止的容器
docker context #管理contexts
docker context create #创建一个上下文
docker context export #将上下文导出到tar或kubecconfig文件中
docker context import #从tar或zip文件导入上下文
docker context inspect #在一个或多个上下文上显示详细信息
docker context ls #列出上下文
docker context rm #删除一个或多个上下文
docker context update #更新
docker context use #设置当前docker的上下文
docker cp #用于容器与主机之间的数据拷贝
docker create #创建一个新的容器但不启动它
docker diff #检查容器里文件结构的更改
docker events #从服务器获取实时事件
docker exec #在运行的容器中执行命令
docker export #将文件系统作为一个tar归档文件导出到STDOUT
docker history #查看指定镜像的创建历史
docker image #管理镜像
docker image inspect #显示一个或多个镜像的元数据
docker image ls #列出本地镜像
docker image prune #删除没有使用的镜像
docker image rm #删除一个或多个镜像
docker images #列出本地镜像
docker import #从归档文件中创建镜像
docker info #显示 Docker 系统信息,包括镜像和容器数
docker inspect #获取容器/镜像的元数据
docker kill #杀掉一个运行中的容器
docker load #导入使用 docker save 命令导出的镜像
docker login #登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout #登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logs #获取容器的日志
docker manifest #管理manifest(实验,不应用于生产环境)
docker manifest annotate #向本地镜像清单添加附加信息
docker manifest create #创建用于注释和推入注册表的本地清单列表
docker manifest inspect #显示镜像清单或清单列表
docker manifest push #将清单列表推入仓库
docker manifest rm #从本地存储中删除一个或多个清单列表
docker network #管理网络
docker network connect #将容器连接到网络
docker network create #创建一个网络
docker network disconnect #断开容器的网络
docker network inspect #显示一个或多个网络的元数据
docker network ls #列出网络
docker network prune #删除所有没有使用的网络
docker network rm #删除一个或多个网络
docker node #管理集群(swarm)节点
docker node demote #从群集(swarm)管理器中降级一个或多个节点
docker node inspect #显示一个或多个节点的元数据
docker node ls #列出群集(swarm)中的节点
docker node promote #将一个或多个节点推入到群集管理器中
docker node ps #列出在一个或多个节点上运行的任务,默认为当前节点
docker node rm #从群集(swarm)删除一个或多个节点
docker node update #更新一个节点
docker pause #暂停容器中所有的进程
docker plugin #管理插件
docker plugin create #从rootfs和配置创建一个插件。插件数据目录必须包含config.json和rootfs目录。
docker plugin disable #禁用插件
docker plugin enable #启用插件
docker plugin inspect #显示一个或多个插件的元数据
docker plugin install #安装一个插件
docker plugin ls #列出所有插件
docker plugin push #将插件推送到注册表
docker plugin rm #删除一个或多个插件
docker plugin set #更改插件的设置
docker plugin upgrade #升级现有插件
docker port #列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口
docker ps #列出容器
docker pull #从镜像仓库中拉取或者更新指定镜像
docker push #将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker rename #重命名容器
docker restart #重启容器
docker rm #删除一个或多个容器
docker rmi #删除一个或多个镜像
docker run #创建一个新的容器并运行一个命令
docker save #将指定镜像保存成 tar 归档文件
docker search #从Docker Hub查找镜像
docker secret #管理Docker secrets
docker secret create #从文件或STDIN创建一个秘密作为内容
docker secret inspect #显示有关一个或多个秘密的详细信息
docker secret ls #列出秘密
docker secret rm #删除一个或多个秘密
docker service #管理服务
docker service create #创建一个服务
docker service inspect #查看服务的元数据
docker service logs #获取服务的日志
docker service ls #列出服务
docker service ps #列出一个或多个服务的任务
docker service rm #删除一个或多个服务
docker service rollback #将更改恢复到服务的配置
docker service scale #缩放一个或多个复制服务
docker service update #更新服务
docker stack #管理堆栈
docker stack deploy #部署新的堆栈或更新现有堆栈
docker stack ls #列出现有堆栈
docker stack ps #列出堆栈中的任务
docker stack rm #删除堆栈
docker stack services #列出堆栈中的服务
docker start #启动一个或多个已经被停止的容器
docker stats #显示容器的实时流资源使用统计信息
docker stop #停止一个运行中的容器
docker swarm #管理集群(Swarm)
docker swarm ca #查看或旋转当前群集CA证书。此命令必须针对管理器节点
docker swarm init #初始化一个群集(Swarm)
docker swarm join #加入群集作为节点和/或管理器
docker swarm join-token #管理加入令牌
docker swarm leave #离开群集(Swarm)
docker swarm unlock #解锁群集(Swarm)
docker swarm unlock-key #管理解锁钥匙
docker swarm update #更新群集(Swarm)
docker system #管理Docker
docker system df #显示docker磁盘使用情况
docker system events #从服务器获取实时事件
docker system info #显示系统范围的信息
docker system prune #删除未使用的数据
docker tag #标记本地镜像,将其归入某一仓库
docker top #查看容器中运行的进程信息,支持 ps 命令参数
docker trust #管理Docker镜像的信任
docker trust inspect #返回有关key和签名的低级信息
docker trust key #管理登入Docker镜像的keys
docker trust key generate #生成并加载签名密钥对
docker trust key load #加载私钥文件以进行签名
docker trust revoke #删除对镜像的认证
docker trust sign #镜像签名
docker trust signer #管理可以登录Docker镜像的实体
docker trust signer add #新增一个签名者
docker trust signer remove #删除一个签名者
docker unpause #恢复容器中所有的进程
docker update #更新一个或多个容器的配置
docker version #显示 Docker 版本信息
docker volume #管理volumes
docker volume create #创建一个卷
docker volume inspect #显示一个或多个卷的元数据
docker volume ls #列出卷
docker volume prune #删除所有未使用的卷
docker volume rm #删除一个或多个卷
docker wait #阻塞运行直到容器停止,然后打印出它的退出代码
  • 标题: 学习记录--linux常用指令
  • 作者: Huang Zhiwei
  • 创建于: 2023-04-25 21:38:13
  • 更新于: 2023-09-02 23:04:47
  • 链接: https://huangzhw0221.github.io/2023/04/25/Learning-linux常用指令/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
学习记录--linux常用指令