基础命令1~15

Linux基础命令

什么是命令?

Linux操作系统·进行交互的指令;

通过在终端(Terminal)中输入特定的命令字符串来执行相应的程序

命令的功能:文件管理,进程管理,系统配置等。

CLI:基于命令行界面

GUI:相比图像界面

什么是Shell

Shell 命令解释器程序,sh, bash, zsh, csh, tcsh

openBSD(Unix):默认:sh

Linux绝大多数发行版使用的都是bash

Shell脚本:一个写有Shell命令.sh,用于命令的批量执行。

大多数Linux命令的基本格式为:

命令 [选项] [参数]

  • 命令:核心指令,如ls(列出文件)、cd(切换目录)。
  • 选项:调整命令行为的参数,通常以-(短选项,如-l)或--(长选项,如--help)开头,用于扩展命令功能。
  • 参数:命令作用的对象,如文件名、目录路径等。

示例ls -l /home 中,ls是命令,-l是选项(表示以详细列表形式显示),/home是参数(指定操作的目录)。

例如:

ls        #查看当前目录的普通文件
ls -a      #查看所有文件,-a表示查看隐藏文件
ls -al     #多个选项可以缩写,-l表示查看详细信息
ls /       #查看根目录,在这里“/”是参数,表示根目录
ls -l /etc   #可以同时使用选项和参数 

Linux命令的特点

1.大小写敏感:命令、文件名、目录名均区分大小写,如Lsls是不同的命令(通常命令为小写)。

2.自动补全:在终端中输入命令或路径时,按Tab键可自动补全,减少输入错误。

3.历史记录:按/键可查看之前输入的命令,history命令可列出所有历史记录。

4.管道与重定向

  • 管道(|):将一个命令的输出作为另一个命令的输入,如ls -l | grep ".txt"(筛选出.txt文件)。
  • 重定向:>(覆盖输出到文件)、>>(追加输出到文件),如echo "hello" > test.txt(将“hello”写入test.txt)。

第一部分:系统管理命令

1. sh:早期的Shell,目前已经被bash代替了

sh 是 Unix 系统中历史悠久的基础 shell,语法简洁、兼容性强,适合编写跨平台的简单脚本。虽然功能不如 bash 丰富,但仍是理解 shell 原理和脚本开发的重要基础。在实际使用中,若需复杂功能,可优先选择 bash,但 sh 的兼容性仍使其在特定场景中不可替代。

2. bash (csh/tcsh/zsh) :默认的Shell

  • 执行Linux命令
  • 执行Shell脚本
#执行字符串中的命令
bash -c "ls -l;date;lscpu"
#执行Shell脚本
bash 

bash(Bourne Again SHell)是 Unix 和类 Unix 系统中最流行的命令行解释器(shell)之一,它是 Bourne Shell(sh) 的增强版本,兼容 sh 的语法并添加了大量扩展功能。bash 由 Brian Fox 于 1989 年为 GNU 项目开发,现在是大多数 Linux 发行版和 macOS 的默认 shell。

bash 的核心特点

  • 兼容 sh:完全支持 sh 的语法,可直接运行现有的 sh 脚本。
  • 交互式增强:提供命令补全、历史记录、别名等功能,提升用户体验。
  • 脚本编程扩展:支持数组、函数、正则表达式、循环控制结构等高级特性。
  • 环境定制:通过 .bashrc.bash_profile 等配置文件自定义 shell 环境。

bash 的高级特性

​ 1.命令补全: 按 Tab 键自动补全命令、文件名或路径,提高输入效率。

​ 2.历史命令

  • / 键浏览历史命令,或使用 history 命令查看所有历史记录。
  • 使用 !n 执行历史记录中第 n 条命令(如 !100)。

​ 3.管道与重定向

  • 管道 |:将一个命令的输出作为另一个命令的输入(如 ls | grep txt)。
  • 重定向 >/>>:将输出保存到文件(覆盖/追加)。

​ 4.shell常用快捷键

快捷方式 作用
Tab 自动补全命令或文件(目录)的名称
Ctrl+c 结束终端中正在运行的命令
Ctrl+d 从某些程序中退出 ( exit ) \quit\ q\ vim --> ESC :q!
Ctrl+a 移动光标到终端开头
Ctrl+e 移动光标到终端结尾
Ctrl+l 清屏
上方向键 找回历史命令,向上找 history
下方向键 找回历史命令,向下找
Ctrl+s/Ctrl+q 锁定与解锁Shell
Ctrl+z 将前台正在运行的服务放置到后台运行

3.type:查看命令的类型

在 shell 中,type 是一个用于确定命令如何被解释和执行的内置命令。它可以帮助你了解某个命令是 shell 内置命令、外部可执行文件,还是别名(alias)或函数。

基本语法

type [选项] 命令名
  • 选项:常用的有 -a(显示所有可能的位置)、-t(只显示类型)等。
  • 命令名:要查询的命令(如 lscdtype 本身)。

核心功能

type 命令主要用于解决以下问题:

1.判断命令类型: 确定一个命令是 内置命令(shell 自带的)、外部命令(系统中的可执行文件)、别名 还是 函数

2.查找命令位置: 对于外部命令,显示其在文件系统中的路径(类似 which 命令)。

常见输出类型

type 命令的输出可能有以下几种:

  • builtin:shell 内置命令(如 cdechotype 本身)。
  • file:外部可执行文件(如 /bin/ls/usr/bin/git)。
  • alias:用户定义的别名(如 ll='ls -l')。
  • function:shell 函数(通常在配置文件中定义)。
  • keyword:shell 关键字(如 iffor)。

示例

1.查询 ls 命令

$ type ls
ls is aliased to `ls --color=auto'  # 在 Linux 中,ls 通常是带颜色选项的别名

2.查询 cd 命令

$ type cd
cd is a shell builtin  # cd 是 shell 内置命令,无需外部文件

3.查询 python 命令

$ type python
python is /usr/bin/python  # 外部命令,位于 /usr/bin 目录下

4.使用 -a 选项显示所有可能的位置

$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls  # 原始命令位置

5.使用 -t 选项只显示类型

$ type -t cd
builtin

$ type -t python
file

4.man :查看命令的帮助文档

“忘了用法?查查手册。”

用法:man 命令名

  • 显示指定命令的完整手册,包括用法、参数和示例。

man 常用操作示例:

# 1. 查看 ls 的手册
man ls

# 2. 在手册中搜索关键词,比如 "file"
# 按 / 输入关键词,然后按回车查找
# /file

# 3. 退出手册
# 按 q 键退出

小总结:

  • man 命令名:查命令的说明书。
  • / 搜索:快速定位关键词。

man,不再为忘记命令用法发愁!

5. --help:快速帮你上手

“不想翻手册?用它快速查看命令用法!”

用法:命令 --help

  • 显示命令的简要说明,包括常用选项和用法。

比如查看 ls 的简要帮助:

ls --help

--help简洁易懂,适合快速上手命令操作!

命令 --help # 显示命令参数

6.pwd:打印工作目录

  • 全称 Print Working Directory,用来显示你当前所在的工作目录,也就是告诉你“我在哪儿”。

比如,你在终端输入:

pwd

输出可能是:/home/user/Documents

意味着你现在的工作目录是 /home/user/Documents。简单来说,这个命令相当于给你当前的位置标了个“导航点”。

7.ls:显示目录中的内容

用法:lsls [选项] [目录名]

  • “List”的缩写,用于列出目录中的文件和子目录。简单来说,这个命令就是告诉你“当前目录里都有什么东西”。
  • -l 参数,还能看到更详细的信息,比如文件大小,类型,修改时间,硬连接数,文件名,属主,属组和权限(属主,属组,其他)。
  • -a 显示所有文件,包括隐藏文件
  • -d 只显示隐藏文件
  • -h 显示文件大小单位(K,M,G)
  • -t 按时间顺序进行排列
  • -r 逆序显示,rt连用
  • -i 显示inode编号
  • --color=auto 按照文件的分类高亮显示文件 试试这个:
ls -l

还有ls -al,这会连隐藏文件(以.开头的文件)也一并显示。

8. cd:切换目录

“想去别的文件夹?用它轻松切换!”

用法:cd 目录名

  • cd全称 “Change Directory”,顾名思义,就是切换目录。

进入指定目录,如果不写目录,则回到用户的主目录(家目录)。

./    # 表示当前路径
../   # 上层路径
~     # 代表家目录
cd src   #进去子目录
cd ~      # 进入家目录(用户主目录)
cd ~/Desktop  # 跳到桌面目录

cd ..    # 返回上一级目录
cd -     # - 是上一次访问的目录,像“返回”按钮一样。
cd       # 直接敲cd回到当前用户的家目录

# 绝对路径:从"根"/ 开始的路径是绝对路径
# 相对路径:只要不从"根"/开始的路径都是相对路径,从当前路径开始的路径

9. tree:显示目录的树状结构

常用操作:

# 1. 显示当前目录的树形结构
tree

# 2. 显示指定目录的树形结构
tree /path/to/directory

# 3. 限制层级深度(如最多显示两层)
tree -L 2

# 4. 显示文件大小
tree -h

# 5. 只显示目录(不显示文件)
tree -d

# 6. 输出结果到文件
tree > tree_output.txt

小总结:

  • 显示树形结构:tree 快速展示目录结构。
  • 限制深度:-L 控制层级,避免输出过长。
  • 显示文件信息:-h 加上文件大小,-d 只看目录。

tree 是快速查看和分享目录结构的好工具,让层次清晰直观!

显示系统根目录

tree -Ld 1 /  # -L 表示显示的层数 -d 只显示目录

/  # “根”目录 所有文件目录都必须挂载在“根”目录上(root)
├── bin -> usr/bin         # binary 二进制的程序,所有用户都可使用的程序,是/usr/bin的一个软链接 
├── boot               # 启动目录,存放系统内核,启动脚本    
├── dev                # device 设备,硬件设备的映射文件,加载硬件资源  
*├── etc                # 配置文件,系统配置文件,yum安装的服务的配置文件 
├── home               # 普通用户的家目录
├── lib -> usr/lib         # library 程序依赖库,系统中程序共享的依赖库
├── lib64 -> usr/lib64      # 64位的library 程序共享文件库
├── media              # 媒体文件,用于挂载光盘.U盘.移动硬盘  
├── mnt                # 挂载临时设备,用于挂载光盘.U盘.移动硬盘                  
├── opt                # optional 可选的,安装的第三方程序。 
├── proc               # 虚拟文件系统,实时内核信息
├── root               # 超级管理员的家目录    
├── run                # 临时文件系统,系统启动信息,程序运行的进程号,也是虚拟文件 
├── sbin -> usr/sbin       # 管理员才能用的命令
├── srv                # 存放服务数据 
├── sys                # 虚拟的档案系统,存储硬件设备信息 
├── tmp                # 用于存放临时文件的目录,也可做临时共享文件
*├── usr                # Unix System Resource 用户程序安装目录 
*└── var                # 动态数据存储,/var/log日志文件,/var/mail邮件数据,

10. clear:“屏幕太乱了,清清场。”

用法:clear

  • 一键清空终端屏幕,重新开始。
  • 快捷键: Ctrl + l

根目录下文件的作用(指向usr的子目录)

  • /bin -> usr/bin
    含义:存放系统必备的可执行命令(如lscdcp),供所有用户使用。
    作用:早期 Linux 将bin独立存在,现代系统通过符号链接统一归到usr/bin,便于系统升级和管理。
  • /lib -> usr/lib
    含义:存放系统启动和bin/sbin中程序依赖的共享库文件(如libc.so)。
    作用:确保基础命令运行时能找到所需的库资源。
  • /sbin -> usr/sbin
    含义:存放系统管理类可执行命令(如fdiskifconfig),通常需 root 权限运行。
    作用:用于系统维护、网络配置等底层操作。

2. 系统核心目录

  • /boot
    含义:存放系统启动文件(内核vmlinuz、引导加载程序grub、初始化 ramdisk 等)。
    作用:系统启动时加载内核和相关配置,确保硬件初始化和系统引导。
  • /dev
    含义:存放设备文件(如硬盘/dev/sda、串口/dev/ttyS0、终端/dev/tty)。
    作用:Linux 通过文件形式抽象硬件设备,程序可通过操作文件访问硬件。
  • /etc
    含义:存放系统全局配置文件(如/etc/fstab/etc/ssh/sshd_config)。
    作用:存储系统服务、网络、用户权限等核心配置,修改后需重启或重载服务生效。
  • /root
    含义:root 用户的主目录(普通用户主目录在/home)。
    作用:root 用户的工作目录,存放其个人配置和文件。

3. 用户与数据目录

  • /home
    含义:普通用户的主目录(如/home/user1/home/user2)。
    作用:每个用户的个人文件、配置(如~/.bashrc)存储在此,权限隔离。
  • /media
    含义:自动挂载移动设备(U 盘、光驱)的临时目录。
    作用:系统识别外部存储后,默认将其挂载到/media下的子目录(如/media/usb)。
  • /mnt
    含义:手动挂载文件系统的临时目录(如网络共享、本地分区)。
    作用:管理员可通过mount /dev/sda1 /mnt将分区挂载到/mnt下。
  • /opt
    含义:存放第三方软件(如 Oracle、Apache)的安装目录。
    作用:避免与系统自带软件冲突,通常按软件名称创建子目录(如/opt/nginx)。

4. 虚拟与临时目录

  • /proc
    含义:虚拟文件系统,存放系统运行时的进程信息(如/proc/1/exe对应 init 进程)。
    作用:通过文件形式暴露内核数据(CPU、内存、进程状态),可用于监控和调试。
  • /sys
    含义:虚拟文件系统,存放硬件设备的驱动和系统配置信息。
    作用:替代旧版/proc中的硬件信息,提供更结构化的设备模型(如/sys/devices)。
  • /tmp
    含义:存放临时文件(如程序运行时生成的缓存、临时数据)。
    作用:系统重启时会清空,建议程序使用此目录存储非持久化数据。

5. 系统扩展目录

  • /usr
    含义:存放用户程序和共享资源(类似 Windows 的Program Files),是系统的主要软件仓库。
    子目录解析
    • usr/bin:普通用户可执行程序(非系统必备,如firefoxgit)。
    • usr/sbin:系统管理程序(如apache2nginx)。
    • usr/lib:用户程序的共享库。
    • usr/share:共享资源(文档、帮助手册、图标)。
    • usr/include:开发头文件(供 C/C++ 编译时引用)。
  • /var
    含义:存放动态变化的数据(日志、邮件、缓存、进程锁等)。
    子目录解析
    • var/log:系统日志(如/var/log/messages/var/log/nginx)。
    • var/mail:用户邮件存储。
    • var/spool:等待处理的队列(如打印任务、邮件队列)。
    • var/tmp:比/tmp更持久的临时文件(系统重启不清理)。

6. 其他目录

  • /srv
    含义:存放系统服务的数据(如 Web 服务器的网页文件、FTP 共享目录)。
    作用:为特定服务提供数据存储位置,如/srv/http存放网站内容。
  • /run
    含义:存放系统运行时的临时文件(进程 PID、套接字)。
    作用:替代旧版/var/run,便于系统启动时快速访问运行时数据。

基础命令:

/ 是根目录

mkdir 是创建文件夹

ls 是显示文件夹里的内容

cd 是切换目录

touch 是创建普通文件

vim +文件名 是打开文件进行编辑

a 是进去插入模式(编辑)

shift+: (w是保存,q是退出,q!是强制退出)

cp 是复制粘贴

【cp word /hehe/ 是将word复制粘贴到hehe中】

mv 是移动

【mv word /hehe/ 是将word复制粘贴到hehe中】

pwd 是查看当前路径

rm 是删除

-r(或 -R):递归删除

  • 作用:表示「递归删除」,用于删除目录及其包含的所有子文件、子目录。
  • 场景:如果要删除一个非空目录(里面有文件或子文件夹),必须使用 -r 选项,否则命令会报错(提示目录非空)。

![屏幕截图 2025-07-02 201658](E:\luo wu yi用户\Pictures\Camera Roll\CenOST7\屏幕截图 2025-07-02 201658.png)

-rf :无需确定 强制删除

![屏幕截图 2025-07-02 201910](E:\luo wu yi用户\Pictures\Camera Roll\CenOST7\屏幕截图 2025-07-02 201910.png)

ping + ip 可查看连接

clear 可清屏

nmtui 进入网络地址设置区

history 查看之前输入的命令

vim /etc/sysconfig/network-scripts/ifcfg-ens33 是进行编辑ens33文件的内容

![d4ed836df670f52e683b1ddf10d7b72](E:\luo wu yi用户\Pictures\Camera Roll\CenOST7\d4ed836df670f52e683b1ddf10d7b72.png)

![4610cedcf152c118b91c209b3ed82ad](E:\luo wu yi用户\Pictures\Camera Roll\CenOST7\4610cedcf152c118b91c209b3ed82ad.png)

其中: BOOTPROTO=dhcp(动态网址)

​ BOOTPROTO=static(静态网址)

​ ONBOOT=yes

静态网址模式需要:

IPADDR=192.168.10.2(后两个数可更改)

NETMASK=255.255.255.0(固定值)

重启网卡: systemctl restart network

查看IP: ip ad

ping + ip 可查看连接

clear 可清屏

11.alias: 取别名

敲太长? 给他改个名字

用法:

alias 别名='实际命令'

alias # 查看所有生效的别名

比如:

alias ll=“ls -alF”

# 想要别名永久生效
vim ~/.bashrc
alias ls="ls -a color=auto"
source ~/.bashrc #重新加载让别名生效

12.unalias:取消别名

#取消所有别名
unalias -a

13.which:查找命令的真实路径

"找出命令的安装路径"

用法:which 命令名+++

  • 显示指定命令的绝对路径,告诉你系统中实际执行那个命令。

比如:

which bash
# 输出: /user/bin/bash

说明 bash 命令安装在 /usr/bin/bash 目录下。

14.env: 获取系统环境变量

  • PATH:可执行程序的所在路径
  • PWD:当前目录的路径
  • SHELL:当前使用的Shell名词
  • LANG:当前系统使用的语音
  • HOME:当前用户的家目录
XDG_SESSION_ID=1
HOSTNAME=localhost.localdomain
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.81.11 63823 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/0
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.81.11 63823 192.168.81.10 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/env

15.export:修改系统环境变量

# 设置环境变量
export MY_VAR="Hello World"

# 验证变量是否设置成功
echo $MY_VAR

# 将目录添加到 PATH
export PATH=$PATH:/new/path

# 永久保存变量到 ~/.bashrc
echo "export MY_VAR='Hello World'" >> ~/.bashrc
posted @ 2025-07-10 16:26  粘糕好吃不粘牙  阅读(30)  评论(0)    收藏  举报