Debian11 系统命令的执行机制,由有序的五部分构成,分别是:设置变量值(可选);命令名(必选);参数(可选);重定向(可选:> , >> , < , << 等等);控制操作(可选:&& , || , 换行符 , ; , & , ( , ))。
环境变量由 PAM 系统初始化,有些会被应用程序重置,环境变量会改变 Debian 命令的行为。
$LANG //语言环境,例如 echo $LANG, 输出:zh_CN.UTF-8; $PATH //搜索路径; $HOME //用户目录。
任何基于 UNIX 克隆的系统通常都会提供等价的基本命令,Debian11 命令名示例:
pwd //显示当前工作目录的名称; whoami //显示当前的用户名; id //显示当前用户的身份(名称、uid、gid和相关组)。
Debian11 命令附带参数,以 "-" 或 "--" 开头,也称选项,用来控制命令的执行方式。
date //2023年 02月 16日 星期四 10:35:11 CST; date -R //加上参数 -R 为RFC2822标准日期格式。
command > try8.log //将 command 的输出重定向覆盖到文件 try8.log,如:echo '123' > try8.log; command < try8.log //将 command 的输入重定向到文件 try8.log; command >> try8.log //将 command 的输出重定向附加到文件 try8.log; command << delimiter //将 command 的输入重定向到下面的命令行,直到遇到 delimiter。
command & //在后台执行 command; command1 && command2 //执行 command1,如果成功按顺序执行 command2; command1 || command2 //执行 command1,如果不成功按顺序执行 command2; command1 ; command2 //依次执行 command1 和 command2; command1 | command2 //将 command1 的输出作为 command2 的输入; command1 2>&1 | command2 //将 command1 的输出和错误作为 command2 的输入。
预定义文件描述符:Debian11 系统预定义的文件描述符0-2。
stdin //标准输入0; stdout //标准输出1; stderr //标准错误2。
命令的返回值:每个命令都会返回它的退出状态(变量:$?)作为返回值,success 逻辑 true ,0 则是它的值。
[ 1 = 1 ] ; echo $? //输出0; [ 1 = 2 ] ; echo $? //输出1。
命令的别名:您可以为经常使用的命令设置一个别名。
alias la='ls -la' //设置 la 成为 ls -al 的简写形式; type la //显示别名命令的准确路径或类型; alias //列出所有的别名; unalias //删除别名。
学习 Linux,需要从基本命令开始,您完全不用担心 Linux 的命令太多,因为一般只需要记住几十个常用的即可。本 Debian11教程 汇总常用的基本命令,掌握这些就够用了。以下为常用的基本命令列表:
pwd //显示当前工作目录的名称; whoami //显示当前的用户名; id //显示当前用户的身份; file foo //显示 foo 文件的文件类型; type -p commandname //显示命令的文件所处位置 commandname; which commandname //显示命令的文件所处位置 commandname; type commandname //显示 commandname 命令的相关信息; apropos key-word //查找与 key-word 有关的命令; man -k key-word //查找与 key-word 有关的命令; whatis commandname //用一行解释 commandname 命令; man -a commandname //显示 commandname 命令的解释; info commandname //显示 commandname 命令相当长的解释; ls //显示目录内容,不包含以 . 点号开头的文件和目录; ls -a //显示目录内容,包含所有文件和目录; ls -A //显示目录内容,包含几乎所有文件和目录,除了 .. 和 . ; ls -la //显示所有的目录内容,并包含详细的信息; ls -lai //显示所有的目录内容,并包含inode和详细的信息; ls -d //显示当前目录下的所有目录; tree //使用树状图显示目录内容; lsof foo //列出处于打开状态的文件 foo lsof -p pid //列出被某进程打开的文件: pid; mkdir foo //在当前目录中建立新目录 foo; rmdir foo //删除当前目录中的 foo 目录; cd foo //切换到当前目录下或变量 $CDPATH 中的 foo 目录; cd / //切换到根目录; cd //切换到当前用户的家目录; cd /foo //切换到绝对路径为 /foo 的目录; cd .. //切换到上一级目录; cd ~foo //切换到用户 foo 的家目录; cd - //切换到之前的目录; </etc/motd pager //使用默认的分页程序来显示 /etc/motd 的内容; touch junkfile //建立一个空文件 junkfile; cp foo bar //将一个现有文件 foo 复制到一个新文件 bar; rm junkfile //删除文件 junkfile; mv foo bar //将一个现有文件 foo 重命名成 bar,bar 必须不存在; mv foo bar //将一个现有文件 foo 移动到新的位置 bar/foo,必须存在bar目录; mv foo bar/baz //移动文件 foo 到新位置并重命名为 bar/baz,必须存在 bar,且不存在 bar/baz文件; chmod 600 foo //使其他人无法读写现有文件 foo,并且所有人都无法执行该文件; chmod 644 foo //使其他人对现有文件 foo 可读但不可写,并且所有人都无法执行该文件; chmod 755 foo //使其他人对 foo 可读而不可写,并且所有人都能执行该文件; find . -name pattern //使用 shell pattern 查找匹配的文件名,速度较慢; locate -d . pattern //使用 shell pattern 查找匹配的文件名,速度较快,使用定期生成的数据库; grep -e "pattern" *.html //在当前目录下以 .html 结尾的所有文件中,查找匹配 pattern 的文件并显示; top //全屏显示进程信息,输入 q 退出; ps aux | pager //显示所有正在运行的进程的信息; ps -ef | pager //显示所有正在运行的进程的信息; ps aux | grep -e "[e]xim4*" //显示所有正在运行 exim 和 exim4 的进程; ps axf | pager //显示所有正在运行的进程的信息; kill 1234 //杀死ID为 1234 的进程; gzip foo //使用 Lempel-Ziv 编码(LZ77)将 foo 压缩为 foo.gz; gunzip foo.gz //将 foo.gz 解压为 foo; bzip2 foo //使用 Burrows-Wheeter 块排序压缩算法和 Huffman 编码将 foo 压缩为 foo.bz2; bunzip2 foo.bz2 //将 foo.bz2 解压为 foo; xz foo //使用 Lempel-Ziv-Markov 链算法将 foo 压缩为 foo.xz; unxz foo.xz //将 foo.xz 解压为 foo; tar -xvf foo.tar //从 foo.tar 档案中提取文件; tar -xvzf foo.tar.gz //从被gzip压缩过的 foo.tar.gz 档案中提取文件; tar -xvjf foo.tar.bz2 //从 foo.tar.bz2 档案中提取文件; tar -xvJf foo.tar.xz //从 foo.tar.xz 档案中提取文件; tar -cvf foo.tar bar/ //将目录 bar/ 中的内容打包到 foo.tar 档案中; tar -cvzf foo.tar.gz bar/ //将目录 “bar/” 中的内容打包并压缩成 “foo.tar.gz” 文件; tar -cvjf foo.tar.bz2 bar/ //将目录 bar/ 中的内容打包到 foo.tar.bz2 档案中; tar -cvJf foo.tar.xz bar/ //将目录 bar/ 中的内容打包到 foo.tar.xz 档案中; zcat README.gz | pager //使用默认的分页程序来显示 README.gz 压缩包中的内容; zcat README.gz > foo //将 README.gz 解压后的内容输出到文件 foo 中; zcat README.gz >> foo //将 README.gz 解压后的内容添加到文件 foo 的末尾; dpkg -l //列出当前已安装的软件列表; dpkg -i package.deb //安装指定的软件包; dpkg -r package.deb //卸载指定的软件包; dpkg -c package.deb //显示指定软件包内的文件信息。
systemctl 命令用于提供通用的系统管理操作,通过 systemctl 命令改变系统状态,一般是需要通过添加命令 sudo 来处理,用以获得需要的系统管理权限,以下为常用的系统命令列表:
systemctl list-units --type=target //列出所有 target 单元配置; systemctl list-units --type=service //列出所有 service 单元配置; systemctl list-units --type=help //列出所有单元配置类型; systemctl list-sockets //列出内存中所有 socket 单元; systemctl list-timers //列出内存中所有 timer 单元; systemctl start $unit //启动 "$unit"; systemctl stop $unit //停止 "$unit"; systemctl reload $unit //重新加载服务相关的配置; systemctl restart $unit //停止和启动所有 "$unit"; systemctl isolate $unit //启动 "$unit" 并停止所有其它的; systemctl isolate graphical //转换到 "图形" (图形界面系统); systemctl isolate multi-user //转换到 "多用户" (命令行系统); systemctl isolate rescue //转换到 "应急模式" (单用户命令行系统); systemctl kill $unit //向"$unit"发送杀死信号; systemctl is-active $unit //检查"$unit"服务是否是活动的; systemctl is-failed $unit //检查"$unit"服务是否是失败的; systemctl status $unit|$PID|$device //检查"$unit|$PID|device"的状态; systemctl show $unit|$job //显示"$unit|$job"的属性; systemctl reset-failed $unit //重设失败的"$unit"; systemctl list-dependencies --all //列出所有单元服务的依赖性; systemctl list-unit-files //列出安装在系统上的单元文件; systemctl enable $unit //启用 "$unit" (增加符号链接); systemctl disable $unit //禁用 "$unit" (删除符号链接); systemctl unmask $unit //取消遮掩 "$unit" (删除到 "/dev/null" 的符号链接); systemctl mask $unit //遮掩 "$unit" (增加到 "/dev/null" 的符号链接); systemctl get-default //获取默认的 target 设置; systemctl set-default graphical //设置默认 target 为"graphical" (图形系统); systemctl set-default multi-user //设置默认的 target 为"multi-user" (命令行系统); systemctl show-environment //显示工作环境变量; systemctl set-environment variable=value //设置环境变量 "variable" 的值为 "value"; systemctl unset-environment variable //取消环境变量 "variable" 的设置; systemctl daemon-reload //重新加载所有单元文件和后台守护进程(daemon); systemctl poweroff //关闭系统; systemctl reboot //关闭和重启系统; systemctl suspend //挂起系统; systemctl hibernate //休眠系统。
Debian11教程 - Debian11 基本命令,主要引导用户快速理解 Debian11 环境下的常用命令,从基本命令开始,逐步到常用的系统命令等,通篇实用易懂,让入门变得更加快速和简单。
《Debian11教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。