【Linux 之一 】Linux常用命令汇总

Linux常用命令

我从2021年4月份开始才开始真正意义上接触Linux,最初学习时是一脸蒙圈,啥也不会,啥也不懂,做了很多乱七八糟,没有条理的笔记。不知不觉现在已经过去两年的时间了,回头翻看自己曾经的笔记,个人觉得有必要对过去所学进行一次梳理,这也是写本篇博客的初衷,也算是对自己的一种激励吧。好了,废话不多说,直接步入正文吧。

备注:很多命令可能有很多参数,但是我在介绍各种命令的时候,仅列出了我平时经常用的一些参数,若想了解某个命令全部信息,可在"终端"中使用 man 命令进行查看。

./

也许 ./ 符号本身不是命令,但在这个列表中值得一提。它允许shell直接从终端运行可执行文件,并在系统中安装任何解释器。不再双击图形文件管理器中的文件!

运行可执行文件时,请确保它具有可执行(x)权限,您可以使用chmod命令修改该权限。

cat

说明 :用于连接文件并打印到标准输出设备上。英文全拼:concatenate
格式cat [para] fileName
参数

  • -n :由 1 开始对所有输出的行数编号
  • -b :和 -n 相似,只不过对于空白行不编号

举例

  • 将文件textfile1 的内容添加上行号,然后输出到文件textfile2中
bash 复制代码
jack@fw02:~$ cat -n textfile1 > textfile2
  • 把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里
bash 复制代码
jack@fw02:~$ cat -b textfile1 textfile2 >> textfile3

cd 命令

说明 :用于切换当前工作目录。cd的英文全拼为 change directory。 其中,dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。
格式cd [dirname]
举例

bash 复制代码
jack@fw02:~$ cd /usr/bin	/* 跳到 /usr/bin/目录 */
jack@fw02:~$ cd ~		 	/* 切换到自己的home目录 */
jack@fw02:~$ cd				/* 切换到自己的home目录 */
jack@fw02:~$ cd ../../		/* 切换到上两级目录 */

(1)~ :表示为 home 目录 的意思

(2). 则是表示目前所在的目录

(3)... 则表示目前目录位置的上一层目录。

chmod

说明 :用于修改文件权限,Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

如下图所示,每一个组占个bit, 分别表示"读、写、执行"

格式chmod [para] mode file...
参数

  • mode : 权限设定字串,格式为:[ugoa...] [+ - =] [rwx]
    • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
    • +表示增加权限、- 表示取消权限、= 表示唯一设定权限
    • r 表示可读取,w 表示可写入,x 表示可执行
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

举例

bash 复制代码
jack@fw02:~$ chmod 777 test1.c		/* 赋予test1.c最大的权限,所有用户均可读、可写、可执行 */
jack@fw02:~$ chmod ugo+r test2.c	/* 设置所有用户都可读 */
jack@fw02:~$ chmod a+x test3.c		/* 设置所有用户可执行该文件 */
jack@fw02:~$ chmod -R a+r *			/* 将目前目录下的所有文件与子目录皆设为任何人可读取 */

clear

格式
说明 :清除终端(terminal)上的内容
参数 :无
举例

bash 复制代码
jack@fw02:~$ clear			/* 清除当前终端屏幕上的内容 */

cp

说明 :用于复制文件或者文件夹,可以实现单个文件的复制,也可以实现多文件或者文件夹的复制
格式cp [option] source dest
参数

  • -f:覆盖已经存在的目标文件而不给出提示
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
  • -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件

举例

history

如果你正在努力记住一个命令,history就会派上用场。此命令显示一个枚举列表,其中包含您过去使用过的命令:

htop

htop是一种交互式流程查看器,可让您直接从终端管理计算机的资源。在大多数情况下,默认情况下它并没有安装。关于htop更详细的使用说明,详见文章:https://blog.csdn.net/KXue0703/article/details/130398926

ln

ln是Linux系统中非常常用且重要的一个命令,用于创建硬链接或者软链接(符号链接)。当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

关于ln命令的详细说明详见文章:https://blog.csdn.net/KXue0703/article/details/145009468

mkdir

说明 :该命令用于创建一个目录,英文全拼为:make directory
格式mkdir [-p] dirName
参数

  • -p 确保目录名称存在,不存在的就建一个

举例

bash 复制代码
jack@fw02:~$ mkdir jack_test		/* 创建一个名为 jack_test 的文件夹 */
jack@fw02:~$ mkdir jack/test		/* 创建一个名为 test 的文件夹,若jack目录不存在则首先会创建jack文件夹 */

mv

说明 :mv(move file)命令可以用来修改文件或者文件夹的名字(即重命名)、也可以用于将文件或者文件夹移动到其它的位置、也可以在移动文件或文件夹位置的时候同时对其重命名
格式mv [options] src dst
参数

  • -b:当文件或者文件夹存在时,在执行覆盖前会为其创建一个备份
  • -i:如果待移动的文件(或文件夹)与目标目录中的文件(或者文件夹)重名时,则会首先询问是否覆盖旧的文件,输入y表示直接覆盖,输入n表示取消该操作
  • -f:如果待移动的文件(或文件夹)与目标目录中的文件(或者文件夹)重名时,不会询问,直接覆盖旧的文件
  • -n:不要覆盖任何已经存在的文件(或文件夹)

举例

bash 复制代码
/* 将文件 bibake.sh 重命名为 bitbake.exe */
jack@fw02:~$ mv bitbake.sh bitbake.exe	

/* 将 bitbake.exe 移动到 test文件中 */
jack@fw02:~$ mv bitbake.exe test/
jack@fw02:~$ cd test/
jack@fw02:~/test$ ls
bitbake.exe

/* 将 bitbake.exe 移动到 ../ 目录中,并同时重命名为 bitbake.sh */
jack@fw02:~/test$ mv bitbake.exe ../bitbake.sh

pwd

说名 :Linux pwd(英文全拼:print working directory)命令用于打印当前工作目录,pwd始终是以绝对路径的方式打印工作目录,即从根目录(/)开始到当前目录的完整路径。
格式pwd [option],一般情况下,该命令不需要加任何参数,直接写pwd即可。
参数

  • L:打印逻辑上的工作目录(默认选项)
  • P:打印物理上的工作目录

举例

bash 复制代码
/* 查询engine文件夹的目录 */
jack@fw02:~/engine$ pwd
/home/jack/engine

rm

说明 :删除一个文件或者目录,英文全拼:remove
格式rm [para] name...
参数

  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
  • -r 将目录及以下之档案亦逐一删除

举例

bash 复制代码
jack@fw02:~$ rm test1.c			/* 删除test1.c */
jack@fw02:~$ rm -rf test2		/* 删除test2文件夹及文件夹中的所有内容 */

tail

说明 :tail命令用于查看文件的内容,特别是参数-f特别常用,用于查看正在变化的日志文件信息。tail -f filename会把filename文件里最尾部的内容显示在屏幕上,并且不断刷新,只要filename文件产生更新,就可以实时看到最新地文件内容。
格式tail [参数] [文件]
参数

  • -f:循环读取,只要文件有更新,就会显示出来
  • -c <数目> 显示的字节数
  • -n <行数> 显示文件尾部地n行内容

举例

bash 复制代码
tail printf.log			// 这种情况,仅默认显示printf.log的最后10行

tail -f printf.log  	// 实时显示printf.log文件的变化

tail -n 100 printf.log 	// 显示printf.log文件的最后100行数据

tail -c 100 printf.log	// 显示printf.log文件的最后100字节

uname

说明 :用于打印系统的某些信息。当不带参数时,与带参数 -s 效果是一样的(简而言之,就是uname默认查询的是内核的名字)
格式uname [OPTION]...
参数

  • -a:打印所有的信息
  • -s:显示内核名称
  • -n:显示网络节点主机名
  • -r:显示内核的版本信息
  • -v:显示内核版本
  • -m:显示硬件架构名称
  • -p:打印处理器的类型
  • -i:打印硬件平台类型
  • o:打印操作系统类型

举例

bash 复制代码
jack@jack-G480:~$ uname
Linux

jack@jack-G480:~$ uname -s
Linux

jack@jack-G480:~$ uname -r
5.15.0-91-generic

jack@jack-G480:~$ uname -m
x86_64

jack@jack-G480:~$ uname -p
x86_64

jack@jack-G480:~$ uname -o
GNU/Linux

jack@jack-G480:~$ uname -a
Linux jack-G480 5.15.0-91-generic #101~20.04.1-Ubuntu SMP Thu Nov 16 14:22:28 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

wc

说明 :用于计算字数,利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
格式wc [参数][文件...]
参数
举例

bash 复制代码
jack@fw02:~$ wc u-boot.bin bitbake.sh  /* 读取这两个文件的行数,字数 ,字节数,名完成了汇总 */
  2193  12392 424008 u-boot.bin
     7     21    103 bitbake.sh
  2200  12413 424111 total

whoami

格式 :whoami
说明 :该命令(who am I的缩写)显示当前操作的用户名
举例

bash 复制代码
jack@fw02:~$ whoami
jack  /* 指明了当前用户名为 jack,但是我觉得此命令用处不大呢 */

边学习,边更新。。。
边学习,边更新。。。
边学习,边更新。。。

相关推荐
MonkeyKing_sunyuhua1 小时前
在 Ubuntu 22.04 上从 Wayland 切换到 X11的详细步骤
linux·运维·ubuntu
xchenhao2 小时前
Linux 环境(Ubuntu)部署 Hadoop 环境
大数据·linux·hadoop·ubuntu·hdfs·环境·dfs
running thunderbolt2 小时前
Linux : Linux环境开发工具vim / gcc / makefile / gdb / git的使用
linux·git·vim
田振靓3 小时前
Ubuntu 上安装 Docker
ubuntu·docker
PyAIGCMaster3 小时前
命令行模式下ubuntu升到最新版
ubuntu
运维&陈同学4 小时前
【Logstash02】企业级日志分析系统ELK之Logstash 输入 Input 插件
linux·运维·elk·elasticsearch·云原生·自动化·logstash
dessler4 小时前
Docker-网络&跨主机通信
linux·运维·docker
余生爱静5 小时前
ubuntu编译ijkplayer,支持rmvb以及mkv
linux·运维·ubuntu
阿川!6 小时前
嵌入式技术之Linux(Ubuntu) 一
linux
运维自动化&云计算6 小时前
Ubuntu中使用miniconda安装R和R包devtools
linux·运维·服务器