Linux进阶
文章目录
1. Linux进阶
1.1 cat命令进阶
命令:cat [options] [file ...]
作用:主要用于处理文本文件。[options]
是可选的参数,[file...]
是要处理的文件名,如果没有指定文件名,则cat
会从标准输入读取数据
常用选项:
-n
:对输出的所有行编号
示例:
cat file.txt
:显示单个文件内容
cat -n file.txt
:显示带有行号的文件内容
echo "Hello, World!" | cat > newfile.txt
:创建新文件。创建一个名为newfile.txt
的新文件,并将Hello World!
写入该文件
1.2 标准的输入和输出
命令:ls ~/hdp > ./out.txt 2> ./err.txt
作用:执行命令ls ~/hdp
。如果执行成功,将输出保存到./out.txt
中,如果执行失败,则将信息保存到./err.txt
中
符号:
1.3 日期和时间的命令
命令:date [options] [MMDDhhmm[[CC]YY][.ss]]
作用:用于显示或设置系统日期和时间。其中 [options]
是可选的参数,[MMDDhhmm[[CC]YY][.ss]]
是用来设置日期和时间的字符串,可以省略
常用选项:
-u
:显示或设置协调世界时(UTC/GMT)
-R
:以RFC-2822格式输出日期和时间
-lseconds
:以ISO-8601格式输出日期和时间
+FORMAT
:使用指定的格式输出日期和时间
1.4 tr命令
命令:tr [options] SET1 [SET2]
作用:可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符。其中 [options]
是可选的参数,SET1
和 SET2
是字符集。SET1
中的字符会被替换为 SET2
中相应的字符
常用选项:
-c
:通过指定字符的补集去替换字符串(也就是反向匹配)
-d
:删除字符
-s
:对连续重复的字符进行去重
示例:
cat a.txt | tr 'a-z' 'A-Z'
:将文件a.txt
中的所有小写字母转换大写字母,并将转换后的结果输出到标准输出(通常是终端)
cat a.txt | tr -d 'a'
:删除a
cat a.txt | tr -d 'a-c'
:删除区间a-c
cat a.txt | tr -s 'bc'
:对指定内容进行去重,只保留一个b
和一个c
-c
:反向匹配;echo "hello 123 satellite" | tr -d -c '0-9'
:删除0-9
的反向匹配,也就是要做什么事情,取相反的结果
1.5 管道符
命令:command1 | command2
作用:表示将左边的输出作为右边的输入。这里 command1
的输出会被作为 command2
的输入。通过这种方式,多个命令可以组成流水线,每个命令负责处理一部分工作
1.6 w和who
命令:w
作用:显示当前登录系统的用户列表,并提供更多的细节,如用户正在使用的终端、登录时间、空闲时间、JCPU(该用户的进程占用CPU时间)和PCPU(当前进程占用的CPU百分比)
解释:
表头 | 含义 |
---|---|
时间 | 当前时间 |
up | 系统运行了多久 |
users | 当前登录的用户数量 |
load average | 过去1分钟、5分钟和15分钟的系统负载平均值 |
USER | 登录的用户名 |
TTY | 用户登录的终端 |
FROM | 用户登录的ip地址或主机名 |
LOGIN@ | 用户的登录时间 |
IDLE | 用户自上次操作以来的空闲时间 |
JCPU | 该用户的进程占用的总CPU时间 |
PCPU | 当前进程占用的CPU时间 |
WHAT | 用户当前正在运行的命令 |
命令:who
作用:显示当前登录系统的用户列表,但不提供像w
命令那样详细的附加信息。它主要显示用户名、终端、登陆时间和从何处登录
1.7 后台运行服务nohup
命令:nohup
作用:用于运行一个命令或程序,并使其在后台继续运行,即使用户退出(logout)或关闭终端窗口也不会受到影响
示例:
nohup jupyter notebook &
:在后台运行jupyter notebook
1.8 ps
命令:ps [options]
作用:显示当前系统中运行的进程的信息。其中 [options]
是可选的参数,用于定制输出的格式和显示的内容
常用选项:
-a
:显示所有终端的进程
-u
:显示指定用户的进程
-x
:希纳是没有控制终端的进程
-e
:等同于-A,显示所有进程
-p
:指定显示特定PID的进程
-o
:自定义输出格式
示例:
-
ps aux
:显示所有的进程 -
ps -x
:显示我的进程 -
ps -e --forest
:显示所有进程的树状结构,使得进程之间的父子关系清晰可见 -
ps -eo pid,user,cmd
:以列表的形式展示pid,user,command
1.9 kill
命令:kill [options] signal_number [pid ...]
作用:关闭进程。其中 [options]
是可选的参数,signal_number
是要发送的信号,pid ...
是进程的标识符(通常是进程ID,简称PID)
常用选项:
-l
:列出所有可用的信号
常用signal_number
:
-9
:强制终止信号,进程无法忽略此信号,会立即被终止
示例:
-
kill -l
:列出所有可用的信号 -
kill -9 1234
:发送SIGKILL
信号给指定的进程(PID),强制终止进程 -
kill 1234
:发送SIGTERM
信号各指定的进程(PID),请求进程正常退出
1.10 passwd
命令:passwd
作用:修改密码
1.11 链接ln
命令:ln
作用:
-
硬链接:
ln [源文件] [链接名]
,相当于复制 -
符号链接:
ln -s [源文件或目录] [链接名]
,相当于快捷方。不会占用过多的磁盘空间。如果源文件删除,链接失败(不意味删除,红色) -
cd -p xxx
:进入物理目录,不是链接目录
1.12 cut剪切
命令:cut
作用:用于显示每行从开头算 num1
到num2
的文字
常用选项:
-b
:以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了-n
表示
-c
:以字符为单位进行分割
-d
:自定义分隔符,默认为制表符
1.13 环境变量
- 导入临时的变量
export name=zhangsan
- 永久的变量
export JAVA_HOME JRE_HOME CLASS_PATH
-
通过
echo
输出 -
set
命令显示当前shell的所有环境变量
1.14 权限
命令:chmod [options] [权限] [文件或目录]
作用:用于修改文件或目录的权限。它允许用户设置谁可以读取、写入或执行文件或目录。d
表示目录,l
表示链接,-
表示文件
权限类型:
r
:读/read
w
:写/write
x
:执行/execute
1.15 用户管理
-
添加用户:
adduser newname
-
设置密码:
passwd wangwu
-
切换用户:
su username
-
可以执行超级管理员才有的权限:
sudo
-
删除用户:
userdel username
1.16 系统的环境变量
env
是一个外部命令,程序文件/bin/env
,列出所有环境变量及其赋值
printenv
不加参数和env
一样,printenv
可以打印指定名称的环境变量,printenv HOME
1.17 grep
命令:grep [options] [file...]
作用:用于在文件中搜索匹配指定模式的行,并将这些行输出。
常用选项:
-i
:忽略大小写
-r, -R
:递归搜索目录
1.18 clear
命令:clear
作用:清空终端屏幕,使其显示干净的界面。这对于提高终端的可读性和组织性非常有用。注意:clear
命令只是在视觉上清楚屏幕的内容,终端的历史记录仍然存在,可以通过终端的历史功能查看之前的命令和输出
1.19 wc
命令:wc [options] [file...]
作用:用于统计文件中的行数、字数和字符数。非常适合用于文本文件的分析和处理。
常用选项:
-w
:统计字数
-l
:统计行数
-L
:统计文件中最长的一行的长度