Linux 系统下工作中常用的shell命令

目录

ls:列出目录内容

cd:改变当前工作目录

pwd:显示当前工作目录的路径

cp:复制文件或目录

mv:移动文件或目录

rm:删除文件或目录

mkdir:创建新目录

touch:创建空文件

cat:连接文件并打印到标准输出设备上

grep:在文件中查找模式

find:在文件系统中查找文件

这些命令是非常常用的,每个命令都有使用方式介绍,非常适合新人同学,这些命令和选项能帮助你有效地管理Linux系统上的文件、目录、进程等。

1. [ls:](#1. ls:)

列出当前目录下的内容

常用选项:

  • -l:长格式列出信息
  • -a:显示所有文件,包括隐藏文件(以.开头的文件)
  • -h:以人类可读的格式显示文件大小
bash 复制代码
ls [options] [file|directory]

# 示例: 展示当前目录下的所有内容
ls -lah

root@cl-virtual-machine:/# ls -lah
total 4393040
lrwxrwxrwx   1 root root          7 11月 11  2023 bin -> usr/bin
drwxr-xr-x   4 root root       4096  6月 16 19:29 boot

2.cd:

改变当前工作目录,切换到你需要的目录下

bash 复制代码
cd [directory]

#示例 进入到test目录

cd test

3.pwd:

显示当前工作目录的路径

bash 复制代码
pwd

#示例 显示当前工作目录

root@cl-virtual-machine:/test# pwd
/test
root@cl-virtual-machine:/test#

4.cp:

复制文件或者目录

常用选项:

  • -r:递归复制目录及其内容
  • -f:强制复制
bash 复制代码
cp [options] source destination

#示例 把test目录下的file文件复制到test2目录下, 两个目录下都有此文件

root@cl-virtual-machine:/test2# cd ..
root@cl-virtual-machine:/# cd test
root@cl-virtual-machine:/test# cp file.txt /test2/
root@cl-virtual-machine:/test# cd /test2/
root@cl-virtual-machine:/test2# ls -al
total 8
drwxr-xr-x  2 root root 4096  6月 16 19:42 .
drwxr-xr-x 22 root root 4096  6月 16 19:40 ..
-rw-r--r--  1 root root    0  6月 16 19:42 file.txt
root@cl-virtual-machine:/test2#

5.mv:

移动文件或者目录

bash 复制代码
mv [options] source destination

#示例 把test2目录下的文件移到到test3下面,test2目录下不在有,和cp有差异
root@cl-virtual-machine:/test3# ls
root@cl-virtual-machine:/test3# ls -al
total 8
drwxr-xr-x  2 root root 4096  6月 16 19:48 .
drwxr-xr-x 23 root root 4096  6月 16 19:48 ..
root@cl-virtual-machine:/test3# mv /test2/file.txt ./
root@cl-virtual-machine:/test3# ls
file.txt
root@cl-virtual-machine:/test3# cd /test2
root@cl-virtual-machine:/test2# ls
root@cl-virtual-machine:/test2#

6.rm:

删除文件或目录

常用选项:

  • -r:递归删除目录及其内容
  • -f:强制删除文件或目录
bash 复制代码
rm [options] file

#示例 删除test3目录下的文件

root@cl-virtual-machine:/test3# ls
file.txt
root@cl-virtual-machine:/test3# rm file.txt
root@cl-virtual-machine:/test3# ls
root@cl-virtual-machine:/test3#

7.mkdir:

创建新目录。

常用选项:

  • -p:创建多级目录
bash 复制代码
mkdir [options] directory

#示例 创建多层目录 
root@cl-virtual-machine:/test3# ls
root@cl-virtual-machine:/test3# mkdir -p /test3/newdir/mkdir
root@cl-virtual-machine:/test3# ls
newdir
root@cl-virtual-machine:/test3# cd newdir/
root@cl-virtual-machine:/test3/newdir# ls
mkdir
root@cl-virtual-machine:/test3/newdir#

8.touch:

创建空文件

bash 复制代码
touch file

#示例 创建新文件file
root@cl-virtual-machine:/test3/newdir/mkdir# touch file.tet
root@cl-virtual-machine:/test3/newdir/mkdir# ls -alh
total 8.0K
drwxr-xr-x 2 root root 4.0K  6月 16 20:01 .
drwxr-xr-x 3 root root 4.0K  6月 16 19:58 ..
-rw-r--r-- 1 root root    0  6月 16 20:01 file.tet
root@cl-virtual-machine:/test3/newdir/mkdir#

9.cat:

连接文件并打印到标准输出设备上。

bash 复制代码
cat file.tet

#示例 把文件中的hello shell 输出到标准设备上

root@cl-virtual-machine:/test3/newdir/mkdir# cat file.tet
hello shell!

root@cl-virtual-machine:/test3/newdir/mkdir#

10.grep:

在文件中查找所需内容。

常用选项:

  • -i:忽略大小写
  • -r:递归搜索目录中的文件
bash 复制代码
grep [options] pattern [file...]

#示例 在文件中找shell ,输出shell是红色的,一般此命令常用于定位问题日志中搜关键词

root@cl-virtual-machine:/test3/newdir/mkdir# grep -i "shell" file.tet
hello shell!
root@cl-virtual-machine:/test3/newdir/mkdir#

11.find:

在文件系统中查找文件。

bash 复制代码
find [path] [expression]

# 示例 在/ 目录下找名为file.tet 文件
root@cl-virtual-machine:/# find ./ -name file.tet
./test3/newdir/mkdir/file.tet
root@cl-virtual-machine:/#

12. chmod

修改文件权限。

bash 复制代码
chmod [options] mode file

#示例 修改文件的权限 644 ,把文件权限改成 777
root@cl-virtual-machine:/test3/newdir/mkdir# ls -l
total 4
-rw-r--r-- 1 root root 14  6月 16 20:04 file.tet
root@cl-virtual-machine:/test3/newdir/mkdir# chmod 777 file.tet
root@cl-virtual-machine:/test3/newdir/mkdir# ls -l
total 4
-rwxrwxrwx 1 root root 14  6月 16 20:04 file.tet
root@cl-virtual-machine:/test3/newdir/mkdir#

13.chown

修改文件所有者。

bash 复制代码
chown [options] owner[:group] file


#示例  把文件的所有者chown 改成root
root@cl-virtual-machine:/test3/newdir/mkdir# ls -l
total 4
-rw-r--r-- 1 root chown 14  6月 16 20:04 file.tet
root@cl-virtual-machine:/test3/newdir/mkdir# chown root:root file.tet
root@cl-virtual-machine:/test3/newdir/mkdir# ls -l
total 4
-rwxrwxrwx 1 root root 14  6月 16 20:04 file.tet
root@cl-virtual-machine:/test3/newdir/mkdir#

14.ps

显示当前进程状态。

常用选项:

  • -e:显示所有进程
  • -f:全格式
bash 复制代码
ps [options]

#示例 查找ssh相关的进程号
root@cl-virtual-machine:/test3/newdir/mkdir# ps -ef | grep ssh
root         801       1  0 19:26 ?        00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root        6285     801  0 19:29 ?        00:00:17 sshd: root@pts/1
root        6978     801  0 19:30 ?        00:00:00 sshd: root@notty
root        7247    6978  0 19:30 ?        00:00:00 /usr/lib/openssh/sftp-server
root       31672    7244  0 20:25 pts/1    00:00:00 grep --color=auto ssh
root@cl-virtual-machine:/test3/newdir/mkdir#

15.kill

终止进程。

bash 复制代码
kill [options] pid

#示例 杀死进程号为 6285的进程
root@cl-virtual-machine:/test3/newdir/mkdir# ps -ef | grep ssh
root         801       1  0 19:26 ?        00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root        6285     801  0 19:29 ?        00:00:17 sshd: root@pts/1
root        6978     801  0 19:30 ?        00:00:00 sshd: root@notty
root        7247    6978  0 19:30 ?        00:00:00 /usr/lib/openssh/sftp-server
root       31672    7244  0 20:25 pts/1    00:00:00 grep --color=auto ssh
root@cl-virtual-machine:/test3/newdir/mkdir# kill -9 6285
root@cl-virtual-machine:/test3/newdir/mkdir#

16.top

显示系统中各个进程的资源占用情况

bash 复制代码
top

# 示例 内容太多,只展示了部分内容,大家可以实操下 停止命令: Ctrl + C

top - 20:31:22 up  1:04,  2 users,  load average: 0.04, 0.07, 0.08
Tasks: 286 total,   1 running, 285 sleeping,   0 stopped,   0 zombie
%Cpu(s): 16.7 us, 11.1 sy,  0.0 ni, 72.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1923.3 total,     75.2 free,    925.4 used,    922.7 buff/cache
MiB Swap:   4290.0 total,   3935.2 free,    354.8 used.    810.3 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  33837 root      20   0   16324   4608   3712 R  11.1   0.2   0:00.02 top
      1 root      20   0  166788   9020   6076 S   0.0   0.5   0:06.05 systemd

17.tar

归档文件,经常会用到此命令来归档文件。

常用选项:

  • -cvf:创建归档文件
  • -xvf:解压归档文件
  • -z:处理gzip压缩的文件
bash 复制代码
tar [options] archive file

#示例 把当前目录下按照如下格式压缩

tar -cvf archive.tar file1 file2
tar -xvf archive.tar
tar -czvf archive.tar.gz file1 file2
tar -xzvf archive.tar.gz

root@cl-virtual-machine:/test3/newdir/mkdir# tar -czvf dst.tar.gz file.tet log.log
file.tet
log.log
root@cl-virtual-machine:/test3/newdir/mkdir# ls -l
total 8
-rw-r--r-- 1 root root 156  6月 16 20:36 dst.tar.gz
-rw-r--r-- 1 root root  14  6月 16 20:04 file.tet
-rw-r--r-- 1 root root   0  6月 16 20:34 log.log
root@cl-virtual-machine:/test3/newdir/mkdir#

18.gzip

压缩文件。

bash 复制代码
gzip file

#示例 压缩文件
root@cl-virtual-machine:/test3/newdir/mkdir# gzip file.tet
root@cl-virtual-machine:/test3/newdir/mkdir# ls
dst.tar.gz  file.tet.gz  log.log
root@cl-virtual-machine:/test3/newdir/mkdir#

19.unzip

解压文件。

bash 复制代码
unzip file.zip

20.man命令:

要了解更多详细信息,可以使用man命令查看每个命令的手册页。

bash 复制代码
# 示例 可以用于查询标准库函数以及常用命令使用方式,停止命令: q

# ls 命令
man ls

# 标准库内存申请函数malloc的使用
man malloc
相关推荐
湫ccc23 分钟前
《Python基础》之字符串格式化输出
开发语言·python
海岛日记26 分钟前
centos一键卸载docker脚本
linux·docker·centos
mqiqe1 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin1 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
Ysjt | 深2 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
ephemerals__2 小时前
【c++丨STL】list模拟实现(附源码)
开发语言·c++·list
码农飞飞2 小时前
深入理解Rust的模式匹配
开发语言·后端·rust·模式匹配·解构·结构体和枚举
一个小坑货2 小时前
Rust 的简介
开发语言·后端·rust