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
相关推荐
IT利刃出鞘15 分钟前
SecureCRT--使用sftp上传和下载文件
linux·运维·服务器
虫小宝20 分钟前
如何在Java中实现PDF生成
java·开发语言·pdf
菜鸡且互啄691 小时前
在线教育平台,easyexcel使用案例
java·开发语言
电饭叔2 小时前
《python程序语言设计》2018版第5章第52题利用turtle绘制sin函数
开发语言·python
weixin_452600692 小时前
如何为老化的汽车铅酸电池充电
开发语言·单片机·安全·汽车·电机·电源模块·充电桩
Java资深爱好者3 小时前
如何在std::map中查找元素
开发语言·c++
踩着阴暗的自己向上爬3 小时前
Day05-04-持续集成总结
linux·运维·ci/cd
YCCX_XFF213 小时前
ImportError: DLL load failed while importing _imaging: 操作系统无法运行 %1
开发语言·python
哥廷根数学学派4 小时前
基于Maximin的异常检测方法(MATLAB)
开发语言·人工智能·深度学习·机器学习
qyhua4 小时前
Linux内网端口转公网端口映射
linux·运维·服务器