linux第一部分系统基本管理命令
命令:Linux 操作系统进行交互的指令;
如何执行命令:通过在终端(Terminal)中输入特定的应用程序
命令的功能:文件管理、进程控制、系统配置等。
CLI:命令行界面;
GUI:图形化界面;
1.什么是shell
shell命令解释器程序,例如:sh、bash、zsh、csh、tcsh...
openBSD(Unix)默认:sh
Linux绝大多数发行版本使用的都是bash。
Shell脚本:一个写有shell命令的.sh文件
1 ls # 查看当前目录的普通文件
2 ls -a # 查看所有文件,-a表示查看隐藏文件
3 ls -al # 多个选项可以缩写,-l表示查看详细信息
4 ls / # 查看根目录,在这里"/"是参数,表示根目录
5 ls -l /etc #
1.sh: 早期的 Shell,目前已经被 bash 替代了
1 [root@localhost ~]# ls -l /bin/sh
2 lrwxrwxrwx. 1 root root 4 7月 4 15:46 /bin/sh -> bash
2.bash:默认的Shell ·执行Linux命令 ·启动Shell脚本
bash: 默认的 Shell
执行 Linux 命令
执行 Shell 脚本
1 #执行字符串中的命令
2 bash -c "ls -l;date;lscpu"
3 # 执行shell脚本
4 bash test.sh
5
6 ----------
7 echo "Hello Shell!!!"
8 echo "当前时间为:"
9 date
10 echo "内存使用率:"
11 free -h
12 echo "磁盘占用率:"
13 df -h
14 ----------
15
16 bash test.sh
| 快捷方式 | 作用 |
|---|---|
| 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)或函数。
Shell 内部命令(了解)
alias, bg, bind, break, builtin, caller, cd, command,
compgen, complete, compopt, continue, declare, dirs, disown, echo
enable, eval, exec, exit, export, false, fc, fg, getopts, hash, help
history, jobs, kill, let, local, logout, mapfile, popd, printf
pushd, pwd, read, readonly, return, set, shift, shopt, source, sus
pend, test, times, trap, true, type, typeset, ulimit, umask, unalias
unset, wait - bash built-in commands
4.man :查看命令的帮助文档
“忘了用法?查查手册。”
用法:man 命令名
- 显示指定命令的完整手册,包括用法、参数和示例。
man 常用操作示例:
# 1. 查看 ls 的手册
man ls
# 2. 在手册中搜索关键词,比如 "file"
# 按 / 输入关键词,然后按回车查找
# /file
# 3. 退出手册
# 按 q 键退出
小总结:
- man 命令名:查命令的说明书。
- 按
/搜索:快速定位关键词。
用 man,不再为忘记命令用法发愁!
5.--help:快速帮你上手
“不想翻手册?用它快速查看命令用法!”
用法:命令 --help
- 显示命令的简要说明,包括常用选项和用法。
比如查看 ls 的简要帮助:
ls --help
--help简洁易懂,适合快速上手命令操作!
命令 --help # 显示命令参数
6pwd:打印工作目录
- 全称 Print Working Directory,用来显示你当前所在的工作目录,也就是告诉你“我在哪儿”。
比如,你在终端输入:
pwd
7.ls:显示目录中内容
选项
- “List”的缩写,用于列出目录中的文件和子目录。简单来说,这个命令就是告诉你“当前目录里都有什么东西”。
-l显示文件详细信息,类型、权限(属主、属组、其他)、硬链接数、属主、属组、文件大小、修改时间、文件名。-a显示所有文件,包括隐藏文件(以,开头的文件)-d只显示隐藏文件-h显示文件大小单位,K,M,G- -t:按时间顺序排列
- -r:逆序显示,rt连用
- -i:显示inode编号
--color=auto按照文件的分类高亮显示文件 试试这个:
ls -l
还有ls -al,这会连隐藏文件(以.开头的文件)也一并显示。
8.cd:改变目录
1.#使用绝对路径,cd切换
2.cd /usr/local/src
3#使用相对路径
4 cd ../ # 进入父目录
5 cd src #进入子目录,src是子目录的名字
6 cd # 返回家目录 超级管理员: /root 普通用户: /home/用户名
7 cd ~ # 回到家目录
8 cd - # 返回之前的目录
9 ./ # 表示当前路径
9.tree:显示目录的树状结构
选项:
-L: 显示目录层数
-d: 只显示目录
-h: 显示文件大小
1 tree
2 tree -Ld 1
10.clear清屏
1 clear或ctrl+l
11.alias:别名
plaintext
1 # 让别名临时生效
2 alias 别名="完整命令"
3 # 让别名永久生效
4 vim ~/.bashrc
5 alias la="ls -a c"
6 alias la="ls -a color=auto"
7 ---------------------------
8 # 重新加载配置文件
9 source ~/.bashrc
12.unalias:取消别名
plaintext
1 # 取消所有别名
2 unalias -a
13.which:查找命令的真实路径
1 which ls
14.env:获取系统环境变量
-
PATH: 可执行程序的所在路径
-
PWD: 当前目录的路径
-
SHELL: 当前使用的 Shell 名词
-
LANG: 当前系统使用的语言
-
HOME: 当前用户的家目录
1 env 2 XDG_SESSION_ID=66 3 HOSTNAME=localhost.localdomain 4 TERM=xterm 5 XDG_SESSION_ID=1 6 HOSTNAME=localhost.localdomain 7 SELINUX_ROLE_REQUESTED= 8 TERM=xterm 9 SHELL=/bin/bash 10 HISTSIZE=1000 11 SSH_CLIENT=192.168.8.1 55922 22 12 SELINUX_USE_CURRENT_RANGE= 13 SSH_TTY=/dev/pts/0 14 USER=root 15: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: 16 MAIL=/var/spool/mail/root 17 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 18 PWD=/root 19 LANG=zh_CN.UTF-8 20 SELINUX_LEVEL_REQUESTED= 21 HISTCONTROL=ignoredups 22 SHLVL=1 23 HOME=/root 24 LOGNAME=root 25 SSH_CONNECTION=192.168.8.1 55922 192.168.8.128 22 26 LESSOPEN=||/usr/bin/lesspipe.sh %s 27 XDG_RUNTIME_DIR=/run/user/0 _=/usr/bin/env
15.export:修改系统环境变量
export PATH=/usr/local/mysql/bin:$PATH
在path前面添加路径
linux操作系统指令2.0
16.source加载配置到当前环境
source~/.bashrc
source /etc/p
17.file:查看文件类型
1.file 文件路径
2.file /bin/bash
3.#二进制程序(命令)
4./bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID [sha1]=94b20c7f7a0529512f63bae145b524890ceaea5, stripped
5
6 file init.sh
7 # Shell脚本
8 init.sh: POSIX shell script, UTF-8 Unicode text
9
10 file anaconda-ks.cfg
11 # 纯英文文件 (配置文件)
12 anaconda-ks.cfg: ASCII text
13
14 file a.txt
15 # 包含中文或其他非英文字符的文本
16 a.txt: UTF-8 Unicode text
17
18 file /dev/cdrom
19 # 软连接文件 (快捷方式文件)
20 /dev/cdrom: symbolic link to `sr0'
21
22 file /dev/sr0
23 # 块文件: 一般对应存储设备(硬盘、U盘、光盘)
24 /dev/sr0: block special
25
26 file /dev/tty
27 # 字符文件: 输入输出设备 (键盘、鼠标、摄像、话筒、显示
28 /dev/tty: character special
29
30 file /
31 # 目录类型的文件
32 /: directory
33
34 file /dev/log
35 # 网络套接字,用于进程间网络通信
36 /dev/log: socket
37
38 file /run/systemd/initctl/fifo
39 # pipe: 管道服务文件, 多个进程通过管道进行数据传输S
40 /run/systemd/initctl/fifo: fifo (named pipe)
18.reboot:立即重启系统
sudo reboot
| 命令 | 适用场景 | 特点 |
|---|---|---|
shutdown |
优雅关机/重启(推荐日常使用) | - 支持定时操作 - 通知用户 - 等待进程退出 - 跨系统兼容 |
reboot |
紧急重启 | - 立即重启 - 不通知用户 - 简单直接 |
poweroff |
关机 | - 等同于 shutdown -h now - 尝试切断物理电源 |
init 0/6 |
传统 SysVinit 系统 | - 兼容性强 - 基于运行级别概念 - 部分新系统仍兼容但不推荐优先使用 |
systemctl |
现代 Linux 系统 | - 统一管理系统状态和服务 - 推荐在 systemd 系统中使用 |
19.shutdown:优雅地关闭或重启系统(推荐方式)
sudo shutdown [选项] [时间] [警告信息]
sudo shutdown -h now # 立即关机
sudo shutdown -h 10:06 # 定时关机其中10:06是关机时间
sudo shutdown -r now 立即重启
sudo shutdown -r +10 "系统将在10分钟后重启,请保存工作!"
sudo shutdown -c # 取消上述计划,取消关机或者重启
20.init切换系统运行级别
| 级别 | 作用 |
|---|---|
| init 0 | 关机 |
| init 1 | 单用户单机模式,只能 root 登录,不联网,修复系统 |
| init 2 | 多用户模式,不能使用 NFS(网络文件系统) |
| init 3 | 多用户网络模式,命令行模式(没有图形化时默认模式) |
| init 4 | 保留模式,没有定义功能 |
| init 5 | 图形化模式,安装图形化界面 GUI,才能使用。 |
| init 6 | 重启模式 |
了解:linux系统启动流程
21.poweroff关机
sudo poweroff # 推荐方式(跨系统兼容)
22.halt 关机
sudo halt # 传统方式
等价命令:
sudo shutdown -h now # 等同于 poweroff
sudo systemctl poweroff # 基于 systemd 的系统
区别:
poweroff:尝试切断物理电源(如关闭服务器)。halt:停止系统运行,但可能保持电源开启(适用于虚拟机)。
23.systemctl
功能:基于 systemd 管理系统服务和状态(取代传统的 init 和部分 service 命令)。 语法:
sudo systemctl [操作] [目标]
常见操作:
reboot:重启系统。poweroff:关机。halt:停止系统。suspend:挂起(睡眠)。hibernate:休眠(保存会话到磁盘)。- systemclt start 服务名.service 启动服务
- systemclt stop 服务名.service 关闭服务
- systemclt restart 服务名.service 重启服务
- systemclt status 服务名.service 查看服务状态
- systemclt enable 服务名.service 开机自启动服务
- systemclt disable 服务名.service 开机不启动
- systemclt reload 服务名.service 重载服务(重新加载服务配置文件)
- systemctl list-unit-files --type=service 查看各个级别的启动与禁用情况 示例:
sudo systemctl reboot # 重启
sudo systemctl poweroff # 关机
sudo systemctl suspend # 挂起
特点:
- 现代 Linux 系统(如 Ubuntu 16.04+、CentOS 7+)的标准管理工具。
- 统一管理服务、挂载点、定时器等,替代了多种传统命令。
命令对比与选择建议
| 命令 | 适用场景 | 特点 |
|---|---|---|
shutdown |
优雅关机/重启(推荐日常使用) | - 支持定时操作 - 通知用户 - 等待进程退出 - 跨系统兼容 |
reboot |
紧急重启 | - 立即重启 - 不通知用户 - 简单直接 |
poweroff |
关机 | - 等同于 shutdown -h now - 尝试切断物理电源 |
init 0/6 |
传统 SysVinit 系统 | - 兼容性强 - 基于运行级别概念 - 部分新系统仍兼容但不推荐优先使用 |
systemctl |
现代 Linux 系统 | - 统一管理系统状态和服务 - 推荐在 systemd 系统中使用 |
注意事项
1.权限要求:所有命令都需要管理员权限(sudo)。
2.数据安全: - 非紧急情况建议使用 shutdown,避免数据丢失。 - 若系统无响应,可尝试 reboot -f(强制重启,可能导致数据损坏)。
3.特殊场景: - 远程服务器:优先使用 shutdown 并指定合理时间(如 +5),确保有足够时间保存工作。 - 嵌入式系统:部分设备可能需要特定命令(如 sync 确保数据写入磁盘后再关机)。
总结
- 日常使用:推荐
shutdown(优雅、可控)或systemctl(现代系统)。 - 紧急情况:使用
reboot或poweroff。 - 传统系统:使用
init切换运行级别。
第二部分:文件操作,动手搞事情
24.touch:新建一个文件。
“想新建一个空文件?就用 touch !”
用法:touch 文件名
- “touch” 的作用是新建一个空文件,比如:
touch newfile.txt
- “touch” 更新文件的时间戳(访问时间和修改时间)
# 假设 file.txt 已存在
touch file.txt # 更新 file.txt 的时间戳
浙公网安备 33010602011771号