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
相关推荐
散着步的码农1 分钟前
RustDesk CentOS自建中继节点
linux·centos
瀚高PG实验室4 分钟前
hghac集群服务器时间同步(chrony同步)
linux·运维·服务器
huangyuchi.6 分钟前
【Linux】初见,基础指令
linux·运维·服务器·笔记·开发工具·指令·基础指令
huangyuchi.15 分钟前
【Linux】初见,基础指令(续)
linux·运维·服务器·开发语言·笔记·指令·linux指令
Eric.Lee202117 分钟前
ROS2 pkg 创建功能包
java·linux·开发语言
OneT1me17 分钟前
SN生成流水号并且打乱
java·linux·前端
nuclear201122 分钟前
Python操作PDF书签详解 - 添加、修改、提取和删除
linux·开发语言·python
大得36941 分钟前
liunx定时任务,centos定时任务
linux·运维·centos
橙子1991101642 分钟前
在 Kotlin 中,什么是内联函数?有什么作用?
android·开发语言·kotlin
大学生小郑43 分钟前
Go语言八股文之Mysql优化
开发语言·mysql