Linux基础
Linux基础
声明!!!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
openssl passwd -1 123
openssl开源加密工具包,提供加解密、签名、验证等功能。
passwd表示这个命令用于处理密码相关操作。
-1参数指定使用MD5加密算法对密码“123”进行加密,MD5将数据转为固定长度输出(通常128位)

openssl passwd -5 123
-5表示SHA-256。SHA-256生成哈希值长度256位,每次对相同密码进行SHA-256加密时,由于加密会引入随机因素,如盐值,每次密文不同。

文件管理
touch file

删除文件
rm file

新建目录
mkdir newdir

删除空目录
rmdir dir

重命名文件
mv file.txt newfile.txt

移动文件
mv file.txt newdir

把test目录里的2移动到当前目录。
拷贝文件
cp file newfile

软连接
ln -s original.txt symlink.txt
类似windows的快捷方式。连接自己有个inode,指向的文件存储的是源文件/目录的路径
建立软连接:新建立的软连接类型是l

修改源文件内容,连接指向的文件跟随改变

源文件改名导致快捷方式失效:

硬链接
硬盘上时同一个文件,连接和源文件公用一套inode,只想同一个文件,二者相当于两个引用。
二者有一个存在,文件就不会删除。新建立的硬连接类型是跟源文件/目录同步的。
ln 1.txt hard
共用同一个inode,因此权限修改会同步:

软连接、硬链接区别:
-
硬链接(Hard Link)
-
建立
ln original.txt hard_link.txt原理和特点
- 硬链接实际上是在文件系统中创建了一个指向源文件的额外目录项。它和源文件共享相同的 inode(索引节点)编号,inode 是文件系统中用于存储文件元数据的结构,包括文件的所有者、权限、大小、时间戳等信息。
- 硬链接的文件内容和源文件完全相同,对硬链接文件的修改会直接反映在源文件上,反之亦然。因为它们在文件系统的底层实际上是同一个文件,只是有多个名字来引用它。
- 只要源文件或者硬链接文件中的任何一个存在,文件的数据就会保留。只有当所有指向该文件(包括源文件和硬链接文件)的链接都被删除时,文件的数据才会真正从文件系统中被删除。
- 不能对目录创建硬链接(在大多数文件系统中),这是为了防止文件系统出现循环引用等复杂的结构问题。
-
示例
- 假设
file1.txt是源文件,通过ln file1.txt file2.txt创建硬链接file2.txt。如果使用文本编辑器修改file2.txt的内容,打开file1.txt时会发现内容也同步修改了。同样,修改file1.txt也会改变file2.txt的内容。
- 假设
-
-
软链接(Symbolic Link 或 Symlink)
-
建立
-
ln -s source_dir symlink_dir
-
-
原理和特点
- 软链接是一种特殊的文件类型,它包含了指向另一个文件或目录的路径信息,类似于 Windows 系统中的快捷方式。
- 软链接文件有自己独立的 inode 编号,与源文件不同。它只是存储了源文件或目录的路径,当访问软链接时,系统会根据这个路径去查找并访问源文件或目录。
- 如果源文件或目录被删除或移动,软链接会 “失效”,即访问软链接时会出现错误,提示找不到源文件或目录。不过,可以通过重新建立源文件与软链接之间的链接关系来恢复。
- 软链接可以指向文件或目录,并且可以跨文件系统创建。例如,可以在一个本地硬盘分区的文件系统中创建一个指向另一个挂载的外部存储设备上文件的软链接。
-
示例
- 有一个脚本文件
script.sh,创建一个软链接symlink_script.sh指向它,使用ln -s script.sh symlink_script.sh。当运行symlink_script.sh时,系统会按照软链接中的路径信息找到并运行script.sh。如果script.sh被移动到其他位置,软链接就会失效,除非更新软链接指向的路径。
- 有一个脚本文件
-
-
硬链接和软链接的区别
- 存储方式
- 硬链接共享源文件的 inode,文件内容在存储上是完全相同的,只是文件名不同。软链接有自己独立的 inode,存储的是指向源文件或目录的路径信息。
- 文件关联性
- 硬链接和源文件之间的关联更为紧密,对其中一个的修改就是对另一个的修改,因为它们本质上是同一个文件的不同引用。软链接只是提供了一个访问源文件或目录的路径指引,源文件和软链接是相对独立的,修改软链接本身(如修改其权限)不会影响源文件,只有通过软链接访问源文件时才会对源文件产生影响。
- 对源文件的依赖性
- 硬链接只要有一个链接存在,文件就不会被删除。而软链接依赖于源文件的存在,如果源文件不存在,软链接就会失效。
- 应用场景
- 硬链接通常用于在不增加文件副本的情况下,通过不同的文件名来引用同一个文件,方便文件的管理和备份(在一定程度上)。例如,在同一个文件系统中,对一些重要的配置文件创建硬链接,可以方便地在不同的目录下使用这些文件,同时又不用担心文件内容不一致的问题。
- 软链接更多地用于创建快捷方式,方便在不同的目录结构中快速访问某个文件或目录。例如,在 Linux 系统中,为了方便访问某个深层目录中的可执行文件,可以在
/usr/bin(系统默认的可执行文件目录)中创建一个软链接指向该文件,这样就可以在命令行中直接使用该文件名来运行程序,而不需要输入长长的路径。
- 存储方式
搜索文件
which
which命令就是帮助确定系统到底是从哪个具体路径找到了这个命令
which cat

echo $PATH
-
当你在终端输入一个命令(如
ls、pwd等)时,系统会按照$PATH中列出的目录顺序逐个查找对应的可执行文件。如果在第一个目录中没有找到该命令的可执行文件,就会继续在第二个目录中查找,以此类推,直到找到为止或者查找完所有目录。 -
例如,
ls命令的可执行文件通常位于/bin/ls(在许多 Linux 发行版中),而/bin这个目录就在$PATH变量所包含的目录路径之中。所以当你输入ls命令时,系统能够顺利地在/bin目录中找到并执行它。

locate
在 Linux 系统中用于快速查找文件和目录的工具。它通过搜索一个预先建立的数据库(通常由updatedb命令维护)来定位文件,而不是像find命令那样实时遍历文件系统。这使得locate命令在大多数情况下能够更快地找到文件,尤其是在查找大型文件系统中的文件时效率优势明显。
locate file
-i:在搜索时忽略文件名的大小写。例如,locate -i myfile.txt会同时查找MyFile.txt、myfile.txt等文件,不管文件名的字母大小写。
-n:限制返回结果的数量。例如,locate -n 5 myfile.txt只会返回与myfile.txt相关的前 5 个搜索结果。
-r:使用正则表达式进行搜索。例如,locate -r '^test'会查找所有以test开头的文件和目录。
sudo updatedb
更新数据库
与find的区别
-
由于
locate命令是基于之前建立的数据库进行搜索,如果数据库没有及时更新,可能会出现找不到新文件或者找到已经不存在的文件(在数据库更新之前被删除的文件)的情况。而find命令是实时搜索,它会准确地反映文件系统的当前状态,只要文件存在并且在搜索范围内,就能够找到。 -
locate命令的搜索范围通常是整个文件系统(由updatedb命令定义的范围),而find命令可以通过指定起始目录来限制搜索范围,这使得用户可以更灵活地在特定的目录层次结构中进行搜索。
locate whoami.exe

find ⭐⭐⭐
- 基本语法:
find [起始目录] [选项] [表达式]。起始目录指定了find命令开始搜索的位置,如果不指定,默认从当前目录开始搜索。 - 按文件名查找
-name:按照文件名进行查找,文件名可以使用通配符。例如,find /home -name "*.txt"会在/home目录及其子目录中查找所有扩展名为.txt的文件。
- 按文件类型查找
-type:用于查找特定类型的文件。常见的文件类型包括f(普通文件)、d(目录)、l(符号链接)等。例如,find / -type d会查找根目录(/)下的所有目录。
- 按文件大小查找
-size:根据文件大小进行查找。文件大小可以用+(大于)、-(小于)和n(等于)来表示,单位有b(字节)、k(千字节)、M(兆字节)等。例如,find /tmp -size +10M会在/tmp目录及其子目录中查找所有大于 10 兆字节的文件。
- 按文件权限查找
-perm:用于查找具有特定权限的文件。权限可以用数字或符号表示。例如,find / -perm 644会查找根目录(/)下权限为644的文件。
- 按修改时间查找
-mtime:根据文件的修改时间来查找。例如,-mtime -3表示查找修改时间在 3 天以内的文件。- -ls:以长列形式显示找到的文件信息。
样例
- 查找并删除文件:如果你想删除所有扩展名为
.log且修改时间超过 7 天的文件,可以使用find命令和-delete选项。例如,find /var/log -name "*.log" -mtime +7 -delete。这个命令会在/var/log目录及其子目录中查找符合条件的文件并删除它们。 - 查找并执行命令:
find命令还可以与其他命令结合使用,通过-exec选项。例如,find /home -name "*.jpg" -exec chmod 644 {} \;会在/home目录及其子目录中找到所有扩展名为.jpg的文件,并将它们的权限设置为644。这里{}代表找到的文件路径,\;是-exec选项的结束标志。
find ~ -mtime 2 -ls | sort -k9 -k10 | more
-mtime 2 是查找条件,它表示查找修改时间在两天前(刚好距离当前时间为 2 天)的文件和目录。-mtime 选项是按照文件的修改时间来筛选的,参数为整数,正数表示过去的天数,负数表示未来(相对于当前时间而言,实际很少用到表示未来的情况)的天数,0 表示刚好是当前这一天修改的文件。TODO??? 未来???
-ls:以长列形式显示找到的文件信息。
-k9 -k10 表示按照第 9 个字段和第 10 个字段来排序。在 find -ls 输出的格式中,第 9 个字段一般是文件大小,第 10 个字段通常是修改时间,所以这条命令是先按照文件大小排序,如果文件大小相同,再按照修改时间排序输出的结果。

find . -type f -iname '*.sh' -mmin -30 -ls
-iname 类似于 -name,都是按照文件名来查找,但 -iname 忽略文件名的大小写。
-mmin 是按照文件的修改时间来查找,不过它的时间单位是分钟。-30 表示查找修改时间在 30 分钟以内的文件,也就是最近 30 分钟内有被修改过的文件。

find . -name '*.svn' -exec rm -rf {} \;
-exec 是 find 命令的一个非常有用的选项,它允许在找到符合条件的文件或目录后执行指定的命令。在这里,执行的命令是 rm -rf {},其中 {} 代表 find 命令找到的每一个符合条件的文件或目录路径,rm -rf 是一个比较强力的删除命令,r 表示递归删除(用于删除目录及其内部所有内容),f 表示强制删除(不提示确认信息)。\; 是 -exec 选项的结束标志,表示这个命令执行块结束。

find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null
-user root 该选项用于筛选出所有者是 root 用户的文件。也就是只查找属于 root 用户的文件,排除其他用户所拥有的文件。
-perm 选项用于按照文件权限来查找文件,-o=w 这里表示查找其他用户(others)有写权限的文件。也就是说,找到的文件要满足除了文件所有者和所属组之外的其他用户有对其进行写操作的权限。
2>/dev/null:
这是一个重定向错误输出的操作。在 find 命令查找的过程中,如果遇到一些权限不足等无法访问的目录或文件时,会产生错误信息,通过 2>/dev/null 可以将这些错误信息重定向到 /dev/null(/dev/null 在 Linux 系统中相当于一个 “黑洞”,写入其中的任何数据都会被丢弃),这样在终端执行命令时就不会显示那些错误提示了,使输出结果更简洁,只显示符合条件的文件相关信息。
该命令的目的是在整个文件系统中查找所有属于 root 用户的、文件名以 .sh 结尾的普通文件,并且这些文件要满足其他用户有写权限,同时将查找过程中产生的错误信息丢弃,最终得到符合这些条件的文件列表,

用户账号数据库
/etc/password
/etc/shadow
cat /etc/group 组账号
禁用账号
锁定账户使该账户不可登录
sudo passwd -l username 锁定账号
sudo passwd -u username 解禁账号
chage -E 1990-01-01 kali 设定账号过期日期
passwd -S username 查看用户密码状态信息,是否锁定、密码是否设置、最后一次修改密码时间等
锁定账户:

解锁账户:

文件系统权限
linux系统一切都是文件
查看权限
ls -la /etc/passwd

更改文件所有者
chown root file
root新用户

修改文件权限
sudo chmod u=rwx,g+rw,o-r file

sudo chmod u+x,g+w,o-r file
chmod 400 file
4代表文件所有者的权限,读
00表示文件所属组和其他用户没有权限

系统日志
ls -l /var/log
/var/log系统日志文件所在目录

认证信息日志相关命令⭐⭐⭐
sudo tail -3 /var/log/auth.log
查看文件最后三行
/var/log/auth.log存储系统认证信息的日志文件,包括用户登录、认证失败等信息。
执行这个命令可以查看最近的三条认证相关的日志记录
样例输出
Dec 11 11:00:10 server sshd[1234]: Accepted password for user1 from 192.168.1.100 port 2345 ssh2
Dec 11 11:15:05 server sudo: user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/tail -3 /var/log/auth.log
Dec 11 11:30:20 server sshd[5678]: Disconnected from 192.168.1.100 port 2345 [preauth]
- 第一行表明在 12 月 11 日 11 时 00 分 10 秒,服务器(这里假设名为
server)的sshd(SSH 守护进程)接受了用户user1从 IP 地址为192.168.1.100的设备通过端口2345使用ssh2协议的登录密码验证,也就是用户user1成功登录到了服务器。 - 第二行显示在 12 月 11 日 11 时 15 分 05 秒,用户
user1在终端pts/0上执行了sudo命令,想要以root用户身份执行/bin/tail -3 /var/log/auth.log这个命令,同时还记录了当时用户所在的目录(PWD=/home/user1)等相关信息。这一行对于审计sudo命令的使用情况很有帮助。 - 第三行表示在 12 月 11 日 11 时 30 分 20 秒,服务器的
sshd进程检测到有一个来自 IP 地址为192.168.1.100、端口为2345的连接在预认证阶段([preauth])就断开了,可能是连接出现了问题,比如网络波动、客户端主动取消连接等情况导致的。
二进制日志相关命令
who /var/log/wtmp | tail -5
who显示当前登录用户
/var/log/wtmp 二进制日志文件,记录了系统的登录和注销信息
查看最近五次登录或注销记录

dmesg
查看内核环形缓冲区消息的工具。内核环形缓冲区是内核用来存储各种消息的一块内存区域,这些消息包括系统启动过程中的硬件检测信息、设备初始化信息、内核模块加载情况,以及系统运行过程中的错误和警告消息等。
-c:这个选项用于清除内核环形缓冲区。在使用dmesg - c后,缓冲区中的内容会被清空,之后再使用dmesg命令查看时,就只会看到新产生的消息。-n:用于设置控制台日志级别。例如,dmesg - n 1会将控制台日志级别设置为1,这样只有级别为1及以上的消息(如KERN_CRIT等紧急消息)才会显示在控制台上。-s:用于限制输出的大小。比如dmesg - s 16384会限制输出为 16384 字节,避免输出过多的内容。
使用场景
- 故障排查
- 当系统出现硬件故障(如硬盘无法识别、网卡不能正常工作等)或者软件问题(如文件系统错误、驱动程序冲突等)时,
dmesg是首先要使用的工具之一。例如,如果网卡无法正常连接网络,通过查看dmesg输出,可能会发现eth0: failed to initialize device之类的消息,从而确定网卡初始化失败,进一步排查是硬件问题还是驱动问题。
- 当系统出现硬件故障(如硬盘无法识别、网卡不能正常工作等)或者软件问题(如文件系统错误、驱动程序冲突等)时,
- 系统启动问题解决
- 如果系统在启动过程中出现挂起、重启或者无法启动等情况,
dmesg可以提供关键线索。比如,查看是否是因为某个关键设备(如内存、硬盘等)的初始化失败导致的问题,或者是否有内核模块加载冲突等。
- 如果系统在启动过程中出现挂起、重启或者无法启动等情况,
- 新硬件或软件安装调试
- 在安装新的硬件设备(如添加新的显卡、硬盘等)或者软件(如新的内核模块)后,
dmesg可以用来查看设备是否被正确识别和初始化,软件是否正常加载和运行。例如,安装新的打印机驱动后,可以通过dmesg查看驱动是否正确加载以及打印机是否被系统成功识别。
- 在安装新的硬件设备(如添加新的显卡、硬盘等)或者软件(如新的内核模块)后,

systemd⭐⭐⭐
journalctl
用于 systemd 日志管理.。

-n:用于查看最新的日志条目。例如,journalctl -n 10会显示最新的 10 条日志记录,这在快速查看最近的系统事件时很有用。-f:类似于tail -f命令的功能,它会实时跟踪日志的更新,不断显示新产生的日志条目,方便查看系统正在发生的事件,比如在监测一个正在运行的服务是否产生错误时可以使用这个选项。--since和--until:用于指定日志的时间范围。例如,journalctl --since "2024-01-01 00:00:00" --until "2024-01-02 00:00:00"会显示从 2024 年 1 月 1 日 0 点到 2024 年 1 月 2 日 0 点之间的日志记录,这对于查找特定时间段内的系统事件非常有帮助。-u:用于查看特定服务单元(unit)的日志。例如,journalctl -u sshd.service会显示sshd(SSH 守护进程)服务的日志,方便对特定服务进行故障排查。-p:用于按日志优先级过滤。日志优先级从 0(最高,紧急)到 7(最低,调试信息)。例如,journalctl -p 3会显示优先级为 3(错误)及以上的日志记录,这有助于快速定位系统中的错误事件。
存储管理
内存使用量
free -m
-m显示MB为单位。


磁盘使用量
df -hT
查看磁盘空间使用情况
-h选项表示以人类可读(human - readable)的格式显示磁盘空间信息。这意味着磁盘空间大小会以更直观的单位(如 KB、MB、GB、TB)显示,而不是以字节为单位的原始数字,方便用户理解。
-T选项用于显示文件系统类型(Type)。这可以让用户清楚地知道每个磁盘分区所使用的文件系统是 ext4、NTFS、FAT32 等类型。

文件或目录大小
sudo du ./* -hsc
du:是 “disk usage” 的缩写,用于统计目录(或文件)所占磁盘空间的大小。
./:表示当前目录。在 Linux 中,“.” 代表当前目录,“..” 代表上级目录。这里的./是为了明确告诉du命令从当前目录开始统计磁盘使用情况。
*:是一个通配符,表示当前目录下的所有文件和目录。所以./ *整体的意思是当前目录下的所有文件和目录。
-h:这是du命令的一个选项。它的作用是让输出结果以人类可读(human - readable)的格式显示。例如,磁盘空间大小会以 KB、MB、GB、TB 等合适的单位显示,而不是以字节为单位的原始数字,这样更便于用户理解。
-s:也是du命令的一个选项,它表示只显示每个参数(在这里就是每个文件和目录)的汇总大小。如果不使用-s选项,du命令会显示指定目录下每个子目录和文件的大小,可能会输出非常详细的信息。使用-s选项后,输出会更加简洁,只关注整体大小。
-c:同样是du命令的一个选项,它的作用是在最后添加一个总计(cumulative)行,显示所有统计文件和目录磁盘使用空间的总和。

查看硬盘分区
sudo fdisk -l
查看磁盘分区信息的命令。sudo用于获取超级用户(root)权限,因为查看磁盘分区信息通常需要较高的权限。fdisk是一个用于磁盘分区操作的工具,-l选项表示列出(list)所有磁盘分区的相关信息。

挂载分区
sudo mount /dev/sdb1 /mnt/usb
/dev/sdb1:这是要挂载的设备。在 Linux 系统中,磁盘设备通常以/dev目录下的文件形式表示。sdb1表示第二个磁盘(sdb)上的第一个分区。
/mnt/usb:这是挂载点(mount point)。挂载点是一个目录,用于将设备(这里是/dev/sdb1)中的文件系统挂载到系统的文件系统层次结构中,使得用户可以通过访问这个目录来访问设备中的文件。在这里,/mnt/usb被指定为挂载/dev/sdb1的目录,意味着当挂载成功后,用户可以通过访问/mnt/usb目录来访问/dev/sdb1设备中的文件。
基本网络工具
ifconfig
ip addr
sudo ifdown eth0
sudo ifup eth0


网络配置
/etc/network/interfaces
系统文件,配置网络接口的静态IP地址、子网掩码、网关等信息。
通过编辑这个文件实现网络接口的手动配置
Networkmanager
动态网络控制和配置守护进程。自动管理网络连接,包括有限网络、无线网络和VPN连接等。
NetworkManager提供了图形界面和命令行工具来配置和管理网络,使得网络配置更加方便和灵活。可以自动检测网络变化,并根据配置自动连接到可用网络。
网络连接
netstat -natup
显示网络连接、路由表、接口统计等信息的命令
-n 数字形式显示地址和端口,避免进行域名解析
-a 显示所有的连接和监听端口
-t 显示TCP连接
-u 显示UDP连接
-p 显示与连接相关的进程ID和程序名称。
执行这个命令可以查看系统当前的网络连接状态,包括连接的协议、本地地址和端口、远程地址和端口等信息。
ss -natup
比netstat更高效快速。
选项与上面类似。


二层地址查看工具
arp -en
arp地址解析协议的工具
-e 以详细格式显示ARP缓存表
-n 以数字形式显示IP地址,避免进行域名解析。
执行这个命令可以查看系统的ARP缓存表,其中包含了IP地址和对应的MAC地址映射关系,用于在局域网进行二层地址解析。

路由跟踪工具
traceroute offensive-security.com
追踪数据包从本地主机到目标主机所经过的路由路径的工具。
offensive-security.com是目标主机的域名或IP地址。
执行这个命令会逐跳显示数据包经过的路由器的IP地址和响应时间,帮助用户了解网络连接的路径和可能存在的网络问题。

路由信息相关工具
route
用于显示和管理系统的路由表
可以查看系统当前的路由信息,包括目标网络、网关、子网掩码等。
可以添加、删除或修改路由条目。
ip route
管理路由表
提供了路由管理功能,可以进行更复杂的路由配置操作
sudo ip route add 10.10.13.0/24 dev eth1
添加一条路由,目标网络地址和子网掩码:10.10.13.0/24
dev eth1 通过名为eth1的网络接口到达目标网络。
添加一条路由,指定如何到达该网络。
ssh服务
启动服务
sudo systemctl start ssh
ssh root@localhost
配置文件
/etc/ssh/ssh_config ssh服务器的主要配置文件。包含了各种参数,可以用来配置SSH服务器的行为,比如端口号、允许的登录用户、认证方式、访问控制等。通过编辑这个文件可以根据需求对SSH服务器进行定制化配置。
客户端配置
HashknownHosts yes
~/.ssh
存储ssh客户端的配置和相关文件。
通常包含私钥文件、公钥文件、已知主机文件等。这些文件用于SSH客户端的身份认证和连接管理。
/etc/ssh/ssh_config内容:


远程拷贝
scp root@1.1.1.1:/home/kali/.bashrc Copiedbashrc
从指定主机复制文件.bashrc到本地并存储为Copiedbashrc
scp passwd -p kali ssh root@127.0.0.1 ???
history
显示之前在当前终端会话中执行过的命令列表。可以通过查看历史记录
linux目录
/bin 二进制可执行命令
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点
/lib 标准程序设计库,动态链接共享库
/sbin 超级管理命令,存放的系统管理员用的管理程序
/tmp 公共的临时文件存储点
/root 系统管理员的主目录
/mnt 系统提供这个目录是让用户临时挂载文件系统
/lost+found 平时空,系统非正常关机留下的文件在这
/proc 虚拟目录,系统内存的映射。可以直接访问这个目录获取系统信息
/var 某些大文件的溢出区,比如各种服务器的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
/usr/bin 目录下包含众多的应用程序。/usr/bin 是一个存放用户可执行程序的目录,许多常用的命令和应用程序都存放在这里。例如,常见的 ls(列出目录内容)、cp(复制文件)、mv(移动文件)等命令都在这个目录下。
/usr/sbin 目录下包含超级用户的一些管理程序。/usr/sbin 则主要存放系统管理员使用的管理程序。这些程序通常需要 root 权限才能执行,比如 ifconfig(配置网络接口)、iptables(设置防火墙规则)等。这些程序用于系统的配置、管理和维护。

基本命令
ls(显示当前目录的文件)
解释:ls命令用于列出当前目录中的文件和子目录。它有很多选项可以用来定制输出,例如ls -l可以列出详细信息(包括权限、所有者、大小、修改时间等),ls -a可以列出包括隐藏文件在内的所有文件。
示例:在终端中输入ls,会显示当前目录下的文件和目录列表。
clear(清屏)
解释:clear命令用于清除终端屏幕上的内容,使屏幕变得干净,方便用户继续操作。
示例:在终端中输入clear,屏幕上的所有文本将被清除。
cd(切换目录)
解释:cd命令用于改变当前工作目录。cd /会切换到根目录,cd /home会切换到/home目录。
示例:
cd /:将当前目录切换到根目录(/)。
cd /home:将当前目录切换到/home目录。
pwd(显示你当前所在的目录)
解释:pwd命令用于打印当前工作目录的完整路径。
示例:在终端中输入pwd,会显示当前所在目录的路径,例如/home/user。
vim(文本编辑器)
解释:vim是一个功能强大的文本编辑器,在 Linux 系统中广泛使用。vim 1.txt用于打开或创建一个名为1.txt的文件。在vim中,按i进入插入模式,可以输入字符;按esc键退出插入模式,然后输入:wq!可以保存并退出文件。
示例:
vim 1.txt:打开或创建1.txt文件。
在vim中:
按i,输入一些字符。
按esc,再输入:wq!保存并退出。
touch(创建文件)
解释:touch命令用于创建新的空文件,或者更新现有文件的时间戳。touch 2.txt会创建一个名为2.txt的文件。
示例:在终端中输入touch 2.txt,会创建一个空的2.txt文件。

mkdir 123(创建一个名为 123 的目录)
解释:mkdir是make directory的缩写,用于在 Linux 系统中创建新的目录。mkdir 123这个命令的作用是在当前工作目录下创建一个名为123的目录。
mkdir -p(-p 参数 遍历)
解释:-p是mkdir命令的一个参数。当使用-p参数时,mkdir命令会自动创建所需的父目录。例如,如果要创建/a/b/c目录,而/a/b目录不存在,使用mkdir -p /a/b/c可以一次性创建/a/b/c以及中间的父目录/a/b。
mkdir -p 123/1/2/3
解释:这个命令使用了-p参数。它会在当前工作目录下创建一个名为123的目录,并且在123目录下依次创建1、2、3这几个子目录。如果123目录已经存在,它会直接在123目录下创建子目录结构。
cd 123
解释:cd是change directory的缩写,用于切换当前工作目录。cd 123这个命令会将当前工作目录切换到名为123的目录。
ls
解释:ls命令用于列出当前目录中的文件和子目录。在执行cd 123后执行ls,会列出123目录中的内容。
cd 1
解释:将当前工作目录切换到123目录下的1子目录(假设1子目录存在)。
ls
解释:列出1子目录中的内容。
cd 2
解释:将当前工作目录切换到123目录下的2子目录(假设2子目录存在)。
ls
解释:列出2子目录中的内容。

8. rm -r 123(删除 123 目录)
命令解释:
rm是remove的缩写,用于删除文件或目录。
-r参数表示递归删除。当要删除的对象是一个目录时,使用-r参数可以删除该目录及其内部的所有文件和子目录。123是要删除的目录名。
相关参数:
-i:实际上是在删除每个文件或目录前提示用户确认是否删除,例如rm -i file.txt会在删除file.txt前询问用户是否真的要删除。
-r:删除文件夹和它的所有内容
-f:使用-f参数可以强制删除文件或目录,不会提示用户确认。例如rm -rf directory会强制递归删除directory目录及其内容。
9. cp(copy 的简写)
命令解释:
cp是copy的缩写,用于复制文件或目录。
cp 1.txt ../1.txt:
这个命令的意图可能是将当前目录下的1.txt文件复制到上一级目录(..)并重命名为1.txt。
10. mv(move 的简写,移动文件的意思)
操作解释:
mv 1.txt home/1.txt:将当前目录下的1.txt文件移动到home目录下,并命名为1.txt。
cd home/:切换到home目录。
ls:列出home目录中的文件和目录。
mv 1.txt 3.txt:在home目录下,将1.txt文件重命名为3.txt。
11. cat(查看文件内容)
操作解释:
cat 3.txt:查看3.txt文件的内容。
12. head(查看前半段文件内容)
操作解释:
head 3.txt:查看3.txt文件的开头部分内容。
head -5 3.txt:查看3.txt文件的前五行内容。
13. tail(查看后半段内容)
操作解释:
tail 3.txt:查看3.txt文件的结尾部分内容。
tail -5 3.txt:查看3.txt文件的后五行内容。
more 查看文件内容并翻页
chmod rwx
chown


useradd adduser
adduser自动为创建的用户指定目录,系统shell版本,会在创建时输入用户密码
useradd 需要使用参数选项指定基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定的shell版本


userdel -f yyy 或deluser yyy删除用户


sudo 以管理员权限运行 root权限下可用

passwd 修改用户密码

Linux资源耗尽
使用alert或notify-send等工具发送通知
#!/bin/bash
while true
do
notify-send "无线弹窗""这是一个无线循环弹窗"
sleep 2
done
保存为infinite_popup.sh
赋予执行权限:
chmod +x infinite_popup.sh
运行


浙公网安备 33010602011771号