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): 列出目录及文件名

选项与参数:

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

将目录下的所有文件列出来(含属性与隐藏档)

[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] 目录名称

选项与参数:

  • -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
  • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

rmdir (删除空的目录)

rmdir [-p] 目录名称

选项与参数:

  • -p :从该目录起,一次删除多级空目录
cp:将给出的⽂件或⽬录复制到另⼀个⽂件或⽬录中(同一台服务器),相当于 DOS下的copy命令-a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
-f 覆盖已经存在的目标文件而不提示
-i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
-r 若给出的源文件是目录文件,则cp将递归复制该目录下的所有目录和文件,目标文件必须为一个目录名。
-v 显示copy进度
$ cp –r test/ newtest:将当前目录 test/ 下的所有文件复制到新目录 newtest 下
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: 由第一行开始显示文件内容  

选项与参数:

  • -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
  • -E :将结尾的断行字节 $ 显示出来;
  • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  • -T :将 [tab] 按键以 ^I 显示出来;
  • -v :列出一些看不出来的特殊字符
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -c<数目> 显示的字节数

查看或者合并⽂件内容。

查看当前文件下的内容: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版本:
cat /proc/version

查看CentOS版本:
cat /etc/redhat-release;

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   显示的时候,顺道输出行号

  • -b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);
  • -n :列出行号表示的方法,主要有三种:
    -n ln :行号在荧幕的最左方显示;
    -n rn :行号在自己栏位的最右方显示,且不加 0 ;
    -n rz :行号在自己栏位的最右方显示,且加 0 ;
  • -w :行号栏位的占用的位数。
more 一页一页的显示文件内容
  • 空白键 (space):代表向下翻一页;
  • Enter         :代表向下翻『一行』;
  • /字串         :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f            :立刻显示出档名以及目前显示的行数;
  • q             :代表立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
more -s test.log       逐页显示日志,如有连续两行以上空白行则以一行空白行显示
more +20 test.log    从第 20 行开始显示日志内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页
  • 空白键    :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup]  :向上翻动一页;
  • /字串     :向下搜寻『字串』的功能;
  • ?字串     :向上搜寻『字串』的功能;
  • n         :重复前一个搜寻 (与 / 或 ? 有关!)
  • N         :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • q         :离开 less 这个程序;

less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。

查看文件内容:less log2013.log

浏览多个文件:less log2013.log log2014.log

ps查看进程信息并通过less分页显示:ps -ef |less

查看命令历史使用记录并通过less分页显示:history | less

head 只看头几行

语法:

head [-n number] 文件 

选项与参数:

  • -n :后面接数字,代表显示几行的意思

tail 只看尾巴几行

取出文件后面几行

语法:

tail [-n number] 文件 

查看日志

参数:

1)-f:follow 模式,保持打开文件并持续跟踪新增的内容(常用于实时查看日志)
2)-q 不显示处理信息
3)-v 显示详细的处理信息
4)-c<数目> 显示的字节数
5)-n<行数> 显示行数

tail -f test.log     查看实时日志
tail -100f test.log    实时查看最后100行日志记录,如果你需要停止,按Ctrl+C退出
tail -n 10 test.log    查询日志尾部最后10行的日志
tail -n +10 test.log     查询10行之后的所有日志
tail -fn 100 test.log    循环实时查看最后100行记录

通过命令打开日志,分析需求场景打开需要的日志,比如: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)筛选时间戳在 2026-02-28 09:39:00到 2026-02-28 09:41:00之间的行并打印

grep -E "2026-02-28 09:(39|40|41):[0-5][0-9]" run.log

忽略大小写(同时匹配 "adjust", "Adjust", "ADJUST" 等):
grep -i "adjust" run.log
显示行号(方便定位):
grep -n "adjust" run.log
高亮显示匹配的单词(更直观):
grep --color=auto "adjust" run.log

7)tail -20f run.log | grep '外部任务'

先显示 run.log 的最后 20 行,然后持续监听新追加的行;所有输出的行中,只有包含“外部任务”的才会被打印到屏幕。常用于实时追踪某个业务模块的运行状态。

history 查看历史命令

history 个数

$ history

$ history 20

管道:| 

⼀个命令的输出可以通过管道做为另⼀个命令的输⼊。

管道我们可以理解现实⽣活中的管⼦,管⼦的⼀头塞东⻄进去,另⼀头取出
来,这⾥ “ | ” 的左右分为两端,左端塞东⻄ ( 写 ) ,右端取东⻄ ( 读 )

cat、more、less比较:

cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;
more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。而且more和less都支持:用空格显示下一页,按键b显示上一页。

用户管理 

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。
命令简介例子

useradd 选项 用户名

添加账号

  • -c comment 指定一段注释性描述。
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  • -g 用户组 指定用户所属的用户组。
  • -G 用户组,用户组 指定用户所属的附加组。
  • -s Shell文件 指定用户的登录Shell。
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号

userdel 选项 用户名

删除账号

常用的选项是 -r,它的作用是把用户的主目录一起删除。

usermod 选项 用户名

修改账号

chmod:控制用户对文件的权限

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

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限

r    读    设置为可读权限
w    写    设置为可写权限
x    执行权限    设置为可执行权限

磁盘管理

Linux 磁盘管理好坏直接关系到整个系统的性能问题。

Linux 磁盘管理常用三个命令为 df、du 和 fdisk。

  • df(英文全称:disk free):列出文件系统的整体磁盘使用量
  • du(英文全称:disk used):检查磁盘空间使用量
  • fdisk:用于磁盘分区
命令简介例子

df:检查文件系统的磁盘空间占用情况。

可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:

df [-ahikHTm] [目录或文件名]

选项与参数:

  • -h:以人类可读的方式显示输出结果(例如,使用 KB、MB、GB 等单位)。

  • -T:显示文件系统的类型。

  • -t <文件系统类型>:只显示指定类型的文件系统。

  • -i:显示 inode 使用情况。

  • -H:该参数是 -h 的变体,但是使用 1000 字节作为基本单位而不是 1024 字节。这意味着它会以 SI(国际单位制)单位(例如 MB、GB)而不是二进制单位(例如 MiB、GiB)来显示磁盘使用情况。

  • -k:这个选项会以 KB 作为单位显示磁盘空间使用情况。

  • -a:该参数将显示所有的文件系统,包括虚拟文件系统,例如 proc、sysfs 等。如果没有使用该选项,默认情况下,df 命令不会显示虚拟文件系统。

查看磁盘使用:
df -h

du 命令也是查看使用空间的

语法:

du [-ahskm] 文件或目录名称

选项与参数:

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :仅显示指定目录或文件的总大小,而不显示其子目录的大小。
  • -S :包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;

参看当前目录下所有目录的大小:

du -sh *

fdisk 是 Linux 的磁盘分区表操作工具

语法:

fdisk [-l] 装置名称

选项与参数:

  • -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs(make filesystem) 命令

语法:

mkfs [-t 文件系统格式] 装置文件名

选项与参数:

  • -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
fsck(file system check)用来检查和维护不一致的文件系统。

语法:

fsck [-t 文件系统] [-ACay] 装置名称

选项与参数:

  • -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
  • -s : 依序一个一个地执行 fsck 的指令来检查
  • -A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
  • -C : 显示完整的检查进度
  • -d : 打印出 e2fsck 的 debug 结果
  • -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
  • -R : 同时有 -A 条件时,省略 / 不检查
  • -V : 详细显示模式
  • -a : 如果检查有错则自动修复
  • -r : 如果检查有错则由使用者回答是否修复
  • -y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。

进程管理

命令简介例子
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)的选项。
从本地复制到远程:
scp local_file remote_username@remote_ip:remote_folder (举例:scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music )
或者 scp local_file remote_username@remote_ip:remote_file 
或者 scp local_file remote_ip:remote_folder 
或者 scp local_file remote_ip:remote_file 
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
从远程复制到本地:
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 
scp -r www.runoob.com:/home/root/others/ /home/space/music/

uname:用于显示系统信息

-a或--all  显示全部的信息。

-m或--machine  显示电脑类型。

-n或--nodename  显示在网络上的主机名称。

-r或--release  显示操作系统的发行编号。

-s或--sysname  显示操作系统名称。

-v  显示操作系统的版本。

--help  显示帮助。

--version  显示版本信息

ubuntu@VM-0-12-ubuntu:~$ uname -a 

显示Linux系统的信息
Linux VM-0-12-ubuntu 4.15.0-118-generic #119-Ubuntu SMP Tue Sep 8 12:30:01 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

ubuntu@VM-0-12-ubuntu:~$ uname -m
x86_64

uptime:显示机器运行了多少天,有几个用户登过,以及CPU繁忙程度。

~ uptime

10:19:04 up 257 days, 18:56, 12 users, load average: 2.10, 2.10, 2.09

这条信息可以分解为几个部分:

10:19:04:表示命令执行时的当前时间。
up 257 days, 18:56:说明系统已经连续运行了257天18小时56分钟,这通常被认为是衡量系统稳定性的一个指标。
12 users:指当前有12个活动用户连接到系统。需要注意的是,这里的“用户”指的是活跃会话的数量,而不是唯一用户的数量。
load average: 2.10, 2.10, 2.09:分别代表过去1分钟、5分钟和15分钟内的系统平均负载。负载值反映了系统中处于可运行状态(即正在使用CPU或等待CPU)或不可中断状态(如等待磁盘I/O操作完成)的进程平均数量。这些数值对于评估系统的繁忙程度至关重要。比如CPU是4核,load average是4,表示满载,如果是6,表示有两个任务block。


 

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 /etc -name httpd.conf  #在/etc目录下文件httpd.conf
find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件

find ./ -name test.sh 查找当前目录下所有名为test.sh的文件
find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件
find ./ -name "[A-Z]*" 查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
find ./ -perm 777 查找当前目录下权限为 777 的文件或目录

将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:find . -name "*.c"
将目前目录其其下子目录中所有一般文件列出:find . -type f
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:find . -ctime -20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:find /var/log -type f -mtime +7 -ok rm {} \;
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:find . -type f -perm 644 -exec ls -l {} \;
查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:find / -type f -size 0 -exec ls -l {} \;

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会停止记录。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐