Linux命令
Linux命令行
命令行的格式:command [-options] [parameter] ([ ] 代表可选)
command :命令名,相应功能的英⽂单词或单词的缩写;
[-options] :选项,可⽤来对命令进⾏控制,也可以省略;
parameter :传给命令的参数,可以是零个、⼀个或者多个;
每两个部分间有空格,每个命令行最多256个字符,区分大小写,不同命令提示符,使用分隔符为/。
| 联机帮助:man 和 --help | 联机查询获得命令的一些帮助,man 是 manual 的缩写,是 Linux 提供的⼀个⼿册,包含了绝⼤部分的命令、函数的详细使⽤说明。 使用man时的操作键: 空格键:翻屏或翻页; Enter:翻行; b 向前翻一屏或一页; f 向后翻一屏或一页; q 退出; /word:搜索 word 字符串 | man ls,查阅ls命令的使用手册 command --help,显示 command 命令的帮助信息 |
| curl | curl cheat.sh/(要查询帮助的命令,比如:ls, curl cheat.sh/ ls | less,输出所有ls的用法); 即curl cht.sh/(要查询帮助的命令,比如:ls)。 |
文件与目录管理
Linux 的目录结构为树状结构,最顶级的目录为根目录 /。
其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
在开始本教程前我们需要先知道什么是绝对路径与相对路径。
-
绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。 -
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。
| 命令 | 简介 | 例子 |
| ls(list files): 列出目录及文件名 | 选项与参数:
将目录下的所有文件列出来(含属性与隐藏档) [root@www ~]# ls -al ~ | |
| ll 或 ls-l | 列出当前目录下的所有文件,包括每个文件的文件的属性与权限等等数据 | |
| cd(Change Directory):切换目录 | cd / 进入根目录, cd - 返回进入此目录之前所在的目录, cd .. 返回上级目录, cd ../.. 返回上两级目录, cd !$ 把上个命令的参数作为cd参数使用 | |
| pwd(print work directory):显示目前的目录 | -P :显示出确实的路径,而非使用链接 (link) 路径。 | |
| touch [⽂件名] |
如果⽂件不存在,新建⽂件
| |
| mkdir [-mp] 目录名称 | 选项与参数:
| |
| rmdir (删除空的目录) | rmdir [-p] 目录名称 选项与参数:
| |
| cp:将给出的⽂件或⽬录复制到另⼀个⽂件或⽬录中(同一台服务器),相当于 DOS下的copy命令 | -a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。 -f 覆盖已经存在的目标文件而不提示 -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认 -r 若给出的源文件是目录文件,则cp将递归复制该目录下的所有目录和文件,目标文件必须为一个目录名。 -v 显示copy进度 | |
| rm(移除文件或目录) | rm -rf * 删除当前目录下的所有文件,这个命令很危险,应避免使用; rm 命令删除一个目录中的一个或者多个文件或者目录, -f, --force 忽略不存在的文件,从不给出提示; -i, --interactive 进行交互式删除; -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除; -v, --verbose 详细显示进行的步骤; --help 显示此帮助信息并退出; --version 输出版本信息并退出 | |
| mv:移动文件与目录,或修改名称 | -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。 -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。 -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。 -n: 不要覆盖任何已存在的文件或目录。 -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。 | mv source_file(文件) dest_file(文件) 将源文件名 source_file 改为目标文件名 dest_file mv source_file(文件) dest_directory(目录) 将文件 source_file 移动到目标目录 dest_directory 中 mv source_directory(目录) dest_directory(目录) 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory mv source_directory(目录) dest_file(文件) 出错 |
| cat: 由第一行开始显示文件内容 | 选项与参数:
查看或者合并⽂件内容。 查看当前文件下的内容:cat 1.txt 查看绝对路径下的文件内容:cat /etc/samba/2.txt 创建一个文件:cat > filename 将几个文件合并为一个文件: cat file1 file2 > file 把两个文件的内容映射到3.txt: cat 1.txt 2.txt > 3.txt (>表示先清空,再添加) cat 1.txt 2.txt > > 3.txt (>>表示直接添加) | 查看Linux版本: 查看CentOS版本: cat test.log | tail -n 1000 #输出test.log 文件最后1000行 cat -n test.log |grep “debug” #过滤出关键字附近的日志 cat filename | tail -n +3000 | head -n 1000 #从第3000行开始,显示1000行。即显示3000~3999行 cat filename| head -n 3000 | tail -n +1000 #显示1000行到3000行 cat -n textfile1 > textfile2 #把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里; cat -b textfile1 textfile2 >> textfile3 #把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里 |
| tac: 从最后一行开始显示,可以看出 tac 是 cat 的倒着写 | ||
| nl 显示的时候,顺道输出行号 |
| |
| more 一页一页的显示文件内容 |
| more -s test.log 逐页显示日志,如有连续两行以上空白行则以一行空白行显示 more +20 test.log 从第 20 行开始显示日志内容 |
| less 与 more 类似,但是比 more 更好的是,他可以往前翻页 |
less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。 查看文件内容:less log2013.log 浏览多个文件:less log2013.log log2014.log ps查看进程信息并通过less分页显示:ps -ef |less 查看命令历史使用记录并通过less分页显示:history | less | |
| head 只看头几行 | 语法: head [-n number] 文件 选项与参数:
| |
| tail 只看尾巴几行 | 取出文件后面几行 语法: tail [-n number] 文件 查看日志 参数: 1)-f:follow 模式,保持打开文件并持续跟踪新增的内容(常用于实时查看日志) | tail -f test.log 查看实时日志 通过命令打开日志,分析需求场景打开需要的日志,比如:tail -f catalina.out tail -10000f run.log | grep -C 1000 'FieldAndColumnConvertUtil' |
| grep(global search regular expression(RE) and print out the line)全面搜索正则表达式并把行打印出来 | 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 grep [-选项] ‘搜索内容串’ ⽂件名 -v 显示不包含匹配⽂本的所有⾏(相当于求反) -n 显示匹配⾏及⾏号 -i 忽略⼤⼩写 搜索内容串可以是正则表达式。 | 1) more joint.log | grep ‘60007746’ #根据某退货号查询日志 很多时候,我们都需要看到上下几行的日志,可以通过加相关参数实现: 2)more joint.log | grep -5 ‘60007746’ #打印匹配行的前后5行 3)more joint.log | grep -C 5 ‘60007746’ #打印匹配行的前后5行 4)more joint.log | grep -A 5 ‘60007746’ #打印匹配行的后5行 5)more joint.log | grep -B 5 ‘60007746’ #打印匹配行的前5行 6)筛选时间戳在 grep -E "2026-02-28 09:(39|40|41):[0-5][0-9]" run.log 忽略大小写(同时匹配 "adjust", "Adjust", "ADJUST" 等): 7)tail -20f run.log | grep '外部任务' 先显示 |
| history 查看历史命令 | history 个数 | $ history $ history 20 |
| 管道:| ⼀个命令的输出可以通过管道做为另⼀个命令的输⼊。 |
管道我们可以理解现实⽣活中的管⼦,管⼦的⼀头塞东⻄进去,另⼀头取出
来,这⾥
“ | ”
的左右分为两端,左端塞东⻄
(
写
)
,右端取东⻄
(
读
)
|
cat、more、less比较:
cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;
more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。而且more和less都支持:用空格显示下一页,按键b显示上一页。
用户管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户账号的添加、删除与修改。
- 用户口令的管理。
- 用户组的管理。
| 命令 | 简介 | 例子 |
| useradd 选项 用户名 添加账号 |
| |
| userdel 选项 用户名 删除账号 | 常用的选项是 -r,它的作用是把用户的主目录一起删除。 | |
| usermod 选项 用户名 修改账号 | ||
| chmod:控制用户对文件的权限 | Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限 r 读 设置为可读权限 | |
磁盘管理
Linux 磁盘管理好坏直接关系到整个系统的性能问题。
Linux 磁盘管理常用三个命令为 df、du 和 fdisk。
- df(英文全称:disk free):列出文件系统的整体磁盘使用量
- du(英文全称:disk used):检查磁盘空间使用量
- fdisk:用于磁盘分区
| 命令 | 简介 | 例子 |
| df:检查文件系统的磁盘空间占用情况。 | 可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 语法: df [-ahikHTm] [目录或文件名] 选项与参数:
| 查看磁盘使用: |
| du 命令也是查看使用空间的 | 语法: du [-ahskm] 文件或目录名称 选项与参数:
| 参看当前目录下所有目录的大小: du -sh * |
| fdisk 是 Linux 的磁盘分区表操作工具 | 语法: fdisk [-l] 装置名称 选项与参数:
| |
磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs(make filesystem) 命令 | 语法: mkfs [-t 文件系统格式] 装置文件名 选项与参数:
| |
| fsck(file system check)用来检查和维护不一致的文件系统。 | 语法: fsck [-t 文件系统] [-ACay] 装置名称 选项与参数:
|
进程管理
| 命令 | 简介 | 例子 |
| ps命令(Process Status) | 进程查看命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。 ps [options] -l 长格式输出; -u 按用户名和启动时间的顺序来显示进程; -j 用任务格式来显示进程; -f 用树形格式来显示进程; -a 显示所有用户的所有进程(包括其它用户); -x 显示无控制终端的进程; -r 显示运行中的进程; -ww 避免详细参数被截断; 我们常用的选项是组合是 aux( 显示所有包含其他使用者的行程) 或 lax,还有参数 f 的应用 | |
| ps aux: 显示所有包含其他使用者的行程 | 输出格式:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND USER: 行程拥有者 PID: pid %CPU: 占用的 CPU 使用率 %MEM: 占用的记忆体使用率 VSZ: 占用的虚拟记忆体大小 RSS: 占用的记忆体大小 TTY: 终端的次要装置号码 (minor device number of tty) STAT: 该行程的状态,linux的进程有5种状态: D 不可中断 uninterruptible sleep (usually IO) R 运行 runnable (on run queue) S 中断 sleeping T 停止 traced or stopped Z 僵死 a defunct (”zombie”) process 注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页). START: 行程开始时间 TIME: 执行的时间 COMMAND:所执行的指令 | |
| ps aux | grep 或 ps -ef | grep 进程关键字 ps aux功能同ps -ef | 显示特定的进程和其状态 | $ ps aux | grep zsypool* |
| jps | 是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单查看当前java进程的一些简单情况 | jps -v:输出jvm参数 |
| alias | 查看系统存在的别名:alias 定义一个别名:alias 别名='系统认可的命令' 取消一个别名:unalias 别名 | $ alias wjpwd= 'pwd' |
| rz | 运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive) | |
| sz | 将选定的文件发送(send)到本地机器 | |
| scp(secure copy ):两台服务器之间传输 | scp [可选参数] file_source file_target -1: 强制scp命令使用协议ssh1 -2: 强制scp命令使用协议ssh2 -4: 强制scp命令只使用IPv4寻址 -6: 强制scp命令只使用IPv6寻址 -B: 使用批处理模式(传输过程中不询问传输口令或短语) -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能) -p:保留原文件的修改时间,访问时间和访问权限。 -q: 不显示传输进度条。 -r: 递归复制整个目录。 -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。 -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。 -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。 -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。 -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。 -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式, -P port:注意是大写的P, port是指定数据传输用到的端口号 -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。 | |
| uname:用于显示系统信息 | -a或--all 显示全部的信息。 -m或--machine 显示电脑类型。 -n或--nodename 显示在网络上的主机名称。 -r或--release 显示操作系统的发行编号。 -s或--sysname 显示操作系统名称。 -v 显示操作系统的版本。 --help 显示帮助。 --version 显示版本信息 | ubuntu@VM-0-12-ubuntu:~$ uname -a 显示Linux系统的信息 ubuntu@VM-0-12-ubuntu:~$ uname -m |
| uptime:显示机器运行了多少天,有几个用户登过,以及CPU繁忙程度。 | ~ uptime 10:19:04 up 257 days, 18:56, 12 users, load average: 2.10, 2.10, 2.09 这条信息可以分解为几个部分: 10:19:04:表示命令执行时的当前时间。 |
|
| htop | 也可以显示系统信息 | |
| hostname 显示系统主机名字 | -I (大写的I)显示主机的IP地址 | ubuntu@VM-0-16-ubuntu:~$ hostname VM-0-16-ubuntu ubuntu@VM-0-16-ubuntu:~$ hostname -I 172.21.0.16 |
| last reboot date cal w whoami | last reboot 显示上一次重启的时间 date 显示当前的日期和时间 cal 显示这个月的日历 w 显示当前在线的用户 whoami 你当前登录的是谁的账号 | ubuntu@VM-0-16-ubuntu:~$ w 21:58:33 up 3 days, 22:29, 1 user, load average: 0.29, 0.34, 0.39 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ubuntu pts/0 171.113.232.91 21:48 0.00s 0.01s 0.00s w |
| dmesg | dmesg 用于显示开机信息,查看系统的崩溃日志 | |
| cat /proc/cpuinfo 显示CPU信息 cat /proc/meminfo 显示内存信息 | ||
| free-h 以人类可读方式显示内存信息 lspci -tv 显示pci设备 lsusb -tv 显示USB设备 | ||
| apt:提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令 | apt [options] [command] [package ...] options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等 command:要进行的操作 package:安装的包名 | 列出所有可更新的软件清单命令:sudo apt update 升级软件包:sudo apt upgrade 列出可更新的软件包及版本信息:apt list --upgradeable 升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade 安装指定的软件命令:sudo apt install <package_name> 安装多个软件包:sudo apt install <package_1> <package_2> <package_3> 更新指定的软件命令:sudo apt update <package_name> 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name> 删除软件包命令:sudo apt remove <package_name> 清理不再使用的依赖和库文件: sudo apt autoremove 移除软件包及配置文件: sudo apt purge <package_name> 查找软件包命令: sudo apt search <keyword> 列出所有已安装的包:apt list --installed 列出所有已安装的包的版本信息:apt list --all-versions |
| find:在特定的⽬录下搜索符合条件的⽂件 | find path -option [ -print ] [ -exec -ok command ] {} \ | find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找 find ./ -name test.sh 查找当前目录下所有名为test.sh的文件 将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:find . -name "*.c" |
vi/vim
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
curl
参考:Linux命令行工具:curl详解(与服务器之间传输数据)_linux curl-CSDN博客
Linux下的curl工具是一个功能强大的、用于与服务器之间传输数据的命令行工具。支持许多常见的协议,如 HTTP、HTTPS、FTP 等。curl 命令在开发、测试和日常使用中广泛使用,它可以帮助用户检查服务器的响应、上传或下载数据,以及进行各种网络相关的操作。
curl的基本功能和特点
文件传输工具
curl是一个利用URL规则在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等。
综合传输工具
curl不仅支持文件的下载,还支持文件的上传,以及通过HTTP POST等方式发送表单数据。
丰富的功能
curl提供了一系列非常有用的功能,包括代理访问、用户认证、cookie支持、断点续传等。
基本语法
curl [options] [URL] [data]
解释如下:
[options] 是 curl 提供的各种选项,用于控制传输的行为。
[URL] 是想要访问的 URL,可以是一个网页、一个文件、一个 API 端点等。
[data] 是发送给服务器的数据,通常在 POST 请求中使用。
参数和选项
curl提供了丰富的参数和选项,以满足不同的需求。以下是一些常用的参数和选项:
-A/ --user-agent <string>:设置用户代理发送给服务器。
-b/ --cookie <name=string/file>:cookie字符串或文件读取位置。
-c/ --cookie-jar <file>:操作结束后把cookie写入到这个文件中。
-d/ --data:发送POST请求时,用于指定请求体的数据。
-D/ --dump-header:将响应的 HTTP 头保存到文件中。
-F/ --form:用于上传文件。
-H/ --header:直接指定请求头。
-I/ --head:仅请求页面的头部信息,不返回页面内容。
-k/ --insecure:允许连接HTTPS时跳过证书验证(不安全,慎用)。
-o/ --output:把输出写到该文件中。
-O/ --remote-name:把输出写到该文件中,保留远程文件的文件名。
-s/ --silent:静音模式,不输出任何东西。
-u/ --user <user[:password]>:设置服务器的用户和密码。
-x/ --proxy <host[:port]>:在给定的端口上使用HTTP代理。
帮助
使用如下命令:curl -h
curl的主要功能
1. 发送HTTP请求
- curl可以发送不同类型的HTTP请求,如GET、POST、PUT、DELETE等。
- 通过设置不同的参数和选项,curl可以模拟各种HTTP请求场景。
2. 下载文件
- curl可以通过HTTP、HTTPS、FTP等协议下载文件,并将文件保存到本地。
- 支持断点续传功能,确保在传输过程中遇到中断时可以从断点处继续传输。
3. 上传文件
- curl可以通过HTTP、FTP等协议上传文件到指定的服务器。
- 支持多种上传方式,如通过表单提交上传文件等。
4. 设置请求头和参数
- curl可以设置请求头信息,如User-Agent、Referer等。
- 可以通过命令行参数或文件参数设置请求参数,如URL参数、POST数据等。
5. 代理和认证
- curl支持设置代理服务器,可以方便地通过代理访问网络资源。
- 支持用户认证功能,可以保护敏感资源的安全访问。
6. 验证服务器证书
- curl可以验证服务器的证书,确保数据传输的安全性。
- 支持证书链的验证,进一步提高安全性。
7. 异常处理和调试
- curl可以处理服务器返回的不同状态码,如301、302、401等。
- 支持详细的请求和响应输出,方便进行调试和排查问题。
Xshell将日志保存到本地
1.xshell - 文件 - 当前会话属性/默认会话属性

以上是默认配置,修改如下:
【连接时开始日志记录 (C)】
1.这个复选框就是自动开启日志记录的总开关,要勾选。
-
勾选后:每次打开这个会话连接服务器,Xshell 会自动生成日志文件;
-
下方「开始记录时,选择一个文件路径」按需勾选:勾上每次连接弹窗选保存位置,不勾就自动用上面文件路径模板。
2、修复文件路径(当前只有文件名,无本地文件夹,会找不到日志)
点路径右侧的 ... 按钮,先在电脑 D 盘 / 桌面新建文件夹,比如 D:\Xshell会话日志,完整路径修改为:
plaintext
D:\Xshell会话日志\%n_%Y-%m-%d_%t.log
%n= 会话名、%Y-%m-%d= 日期,每天生成独立日志文件。
3、取消勾选【文件已存在时覆盖 (O)】
你现在勾选了覆盖,同一天多次重连服务器,旧日志会直接被清空丢失;取消勾选后,新内容追加到原有日志末尾,完整保留全部历史操作。
4.选优化:勾选【写入日志文件 (W)】(时间戳)
勾选后每条终端输出前面自带操作时间,回看历史日志时能精准定位操作时间,排查问题更方便。
以上配置完后,文件-日志-开始记录,会把日志记录到log文件。
再按ctrl+C会停止记录。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)