linux系统
文章平均质量分 79
Linux是一种免费使用和自由传播的类Unix操作系统,其内核由Linus Benedict Torvalds于1991年10月5日首次发布。是基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,它主要受到Minix和Unix思想的启发,并继承了Unix以网络为核心的设计思想。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
109702008
数字人-幺洞勾拐洞两洞洞八
展开
-
linux常用命令
目录1. 查找当前目录底下的文件夹的子目录中的某个文件2. 查看当前用户3. 查看所有用户组4. 添加用户到已存在的组5. 实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器6. 查看所有服务端口7. 查看文件二进制:8. 新建并写字符串123到文件1.txt,文件最后有换行符。9. 显示文件内容10. 显示目录总占用空间11. 查看磁盘使用情况12. CentOS关闭防火墙13. 在shell中使用find结合grep进行文件字符串的替换14. locate命令15. cd命令16.原创 2018-01-18 10:18:20 · 6366 阅读 · 3 评论 -
查看VSFTPD配置的服务器路径和linux系统有哪些用户
要查看VSFTPD (Very Secure FTP Daemon)配置中定义的服务器路径,需要检查VSFTPD的配置文件。这通常可以在配置文件中找到并有不同的选项来设置路径。原创 2024-09-19 11:29:49 · 236 阅读 · 2 评论 -
smbclient/curl应用和库的使用
在Linux上,可以使用`smbclient`工具来测试SMB共享是否可以访问。`smbclient`是一个类似于FTP客户端的命令行工具,用于访问SMB/CIFS共享。首先,确保安装了`smbclient`工具。可以通过包管理器进行安装。其中:- 是服务器的主机名或IP地址。- 是访问SMB共享所需的用户名称。系统会提示你输入密码。输入正确的密码后,可以列出服务器上的共享列表。其中:- //hostname/share 是要访问的共享资源。原创 2024-09-11 08:37:29 · 325 阅读 · 0 评论 -
pthread_cond_wait 和 pthread_cond_signal的实现细节
pthread_cond_wait 使线程等待条件变量,并释放关联的互斥锁。- pthread_cond_signal 唤醒一个等待在条件变量上的线程。- 如果条件变量上没有线程在等待,信号会被丢弃。等待线程依然需要新的信号来唤醒自己。原创 2024-09-07 04:22:09 · 164 阅读 · 1 评论 -
Linux系统性能调优技巧
在Linux系统中进行性能调优是一项复杂而重要的任务,它可以帮助你最大限度地利用系统资源,提高服务或应用程序的运行效率。以下是一些常用的Linux性能调优技巧:CPU性能调优1. 设置CPU调度策略:- 使用`chrt`或`taskset`命令更改进程的调度优先级。- 可以使用`nice`和`renice`命令来调整进程的优先级,从而影响CPU的分配。原创 2024-09-06 05:23:11 · 1000 阅读 · 2 评论 -
【C语言】SQLite 库
SQLite 是一个轻量级的嵌入式关系型数据库库。与客户端-服务器数据库管理系统不同,SQLite引擎不作为单独的进程运行。相反,它直接链接到应用程序并作为库与之集成。- libsqlite3.so: 这是一个共享库,动态链接的对象文件。- libsqlite3.a: 这是一个静态库,应用程序在编译期间将其与之链接。原创 2024-08-25 21:39:02 · 254 阅读 · 2 评论 -
libcurl 库CURLOPT_WRITEFUNCTION 选项
在使用 libcurl 库进行网络请求时,`curl_easy_setopt()` 函数允许我们设置各种选项,其中包括指定数据接收的回调函数。具体到 CURLOPT_WRITEFUNCTION 选项,它设置了一个回调函数,该函数将在 libcurl 接收到数据时被调用。在 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);语句中,我们定义了这个回调函数。让我们详细解释一下回调函数的每个参数及其含义。原创 2024-08-24 14:17:13 · 180 阅读 · 0 评论 -
snprintf和sprintf的区别
sprintf 不检查缓冲区大小,容易导致缓冲区溢出。- snprintf 检查缓冲区大小,可以防止缓冲区溢出,提供更安全的字符串处理。- 如果格式化后的字符串长度小于 size,实际复制的长度就是格式化后字符串的长度。snprintf和sprintf安全性方面sprintf不进行缓冲区长度检查,可能导致缓冲区溢出错误,存在安全风险。snprintf会对目标缓冲区的大小进行检查,防止缓冲区溢出,更加安全。返回值不同sprintf返回实际写入的字符数(不包括终止符'\0'原创 2024-08-23 12:15:39 · 155 阅读 · 1 评论 -
linux C语言strcat函数及相关函数
这些函数是 C 语言中非常基础且重要的字符串处理函数。在实际开发中,确保正确地使用它们以避免潜在的安全漏洞和程序错误。对于更高级或更安全的操作,可以考虑使用strncat()snprintf(), 或者使用 C99 标准中的安全替代品如strlcpy()和strlcat()。在Linux下使用C语言进行字符串操作时,尽管strcat函数简单直接,但应优先考虑使用更安全的函数,如strncat,以避免缓冲区溢出等安全问题。同时,对于任何涉及字符串操作的代码,都应仔细考虑字符串的长度和缓冲区的大小。原创 2024-08-18 12:08:47 · 152 阅读 · 0 评论 -
struct stat介绍和使用
struct stat 是在 C 和 C++ 语言中使用的一种结构体,通常用于存储文件的各种属性信息。它是 POSIX 标准的一部分,广泛应用于 Unix 和 Unix-like 操作系统(如 Linux 和 macOS)。原创 2024-08-12 11:09:18 · 157 阅读 · 0 评论 -
fd_set介绍和使用
fd_set是Linux系统编程中一个重要的数据结构,主要用于在I/O多路复用模型中管理一组文件描述符(File Descriptor)。在Linux中,一切皆文件,包括socket、管道等,文件描述符是用来标识这些文件和其他I/O对象的整数。fd_set通过位数组的形式来存储这些文件描述符,每个位代表一个文件描述符的状态。fd_set的具体实现可能因不同的系统和库而异,但基本上,它是一个足够大的位数组,以容纳系统中可能打开的最大文件描述符数量。原创 2024-08-11 09:18:13 · 261 阅读 · 2 评论 -
ubuntu系统AMD w7900下运行OpenDevin
中的配置,使得 Vite 开发服务器监听所有网络接口(0.0.0.0)。可以通过网络访问服务,而不仅仅局限于。修改后,当重新启动 Vite 开发服务器时,它会监听所有接口,使得其他设备可以通过 frontend\ 访问它。中的1. Requirements。修改 frontend/原创 2024-08-03 13:51:44 · 183 阅读 · 0 评论 -
vsftpd搭建FTP服务器 - 虚拟用户
这是vsftpd出于安全考虑的一项限制。chroot_local_user=YES 是一个在 vsftpd 配置文件中的选项,它的作用是将本地用户(即登录系统的用户)限制在其主目录(Home Directory)内。通过将文件目录的拥有者和组设置为`ftp`用户和`ftp`组,可以确保虚拟用户的文件操作权限在FTP服务器内部可控,并避免使用实际系统用户权限,从而提高安全性。chroot用户在FTP服务器中的主要目的是出于安全考虑,限制用户只能在特定目录中操作,以保护系统的其他部分和其他用户的文件安全。原创 2024-07-25 00:05:08 · 1616 阅读 · 2 评论 -
dd命令参数
在Linux操作系统中,dd命令是一个非常强大的工具,它允许用户在底层进行数据拷贝和转换操作。命令是一个在 Unix 和类 Unix 系统中广泛使用的命令行工具,用于转换和复制文件,同时也常用于磁盘镜像的创建与恢复、数据格式转换等工作。命令及其参数的作用之后再使用,尤其是在处理磁盘或分区的时候。命令参数的一个小部分,这个命令非常强大,但同时也需要谨慎使用,因为如果不正当使用,可能会导致数据丢失。命令在Linux系统中是一个非常强大的工具,它可以用指定大小的块来拷贝一个文件,并在拷贝的同时进行指定的转换。原创 2024-07-22 08:14:42 · 1052 阅读 · 2 评论 -
为什么vim是程序员最喜欢的文本编辑器之一?
Vim之所以成为程序员最喜欢的文本编辑器之一,主要是因为它的高效操作方式、模式化编辑、高度定制化能力、强大的插件生态、轻量级和高效、强大的搜索与替换功能、跨平台支持以及强大的社区支持。综上所述,Vim 凭借其高效的编辑能力、高度的可定制性、轻量级和跨平台的特点、强大的插件生态系统以及内置的文本处理能力,成为了程序员最喜欢的文本编辑器之一。综上所述,Vim因其强大的编辑功能、高效的导航和操作、高度可定制性、跨平台支持以及活跃的社区和资源,成为了许多程序员首选的文本编辑器。原创 2024-07-13 00:43:31 · 981 阅读 · 2 评论 -
Linux Vim最全面的教程
编辑~/.vimrc文件来配置Vim。使用Vim脚本语言(Vimscript)编写自定义功能。安装和管理插件以增强功能。原创 2024-07-12 07:31:02 · 1099 阅读 · 3 评论 -
FUSE(用户空间文件系统)命令参数
这些参数有些是通用的,可以在大多数 FUSE 文件系统中使用,而有些则是特定于某个 FUSE 文件系统实现的。FUSE(Filesystem in Userspace,用户空间文件系统)是一种在用户空间实现文件系统的框架,它允许你通过编写用户空间程序来创建自己的文件系统。需要注意的是,并不是所有FUSE文件系统都支持同样的选项,因为这些参数可以由文件系统的实现者决定如何处理和解释。要查看所有可用的挂载选项,最好是参考特定 FUSE 文件系统的文档,因为它们会提供更详细的信息和可能的选项列表。原创 2024-07-10 00:05:59 · 2156 阅读 · 5 评论 -
分割文本文件
分割一个`.txt`文件,可以选择在命令行中使用`split`指令,或者编写一段脚本进行操作。此脚本会以每100行为单位将原始文件分割到新的.txt文件中,新文件将以“file_part_{number}.txt“的方式命名,其中{number}是文件的分割部分索引。为了运行这个脚本,需要在Python环境下操作,并确保具有适当的文件读写权限。这行指令会将源文件`yourfile.txt`每1000行拆分成一部分。原创 2024-05-25 05:40:08 · 725 阅读 · 0 评论 -
Docker和Kubernetes之间的关系
需要注意的是,Docker的商业化收费只针对Docker桌面版本,而在Docker Engine、上游开源Docker和Moby项目上则没有变化,这些仍然是开源和免费的。因此,如果对Docker有更深入的需求,比如构建大规模的容器化应用程序或者需要更高级的功能和支持,可以考虑使用Docker的其他产品或者服务,并根据需要进行付费。但是,如果需要管理大规模的容器集群,或者需要更高级的功能和更好的支持,那么Kubernetes可能是更好的选择。当然,也可以根据实际需求将两者结合使用,以获得最佳的效果。原创 2024-05-13 07:50:57 · 1734 阅读 · 0 评论 -
linux C语言Makefile
在Linux环境下,编写C语言项目的Makefile是为了自动化编译和链接过程,确保项目中的源文件按照正确的顺序和依赖关系编译成可执行文件或库文件。在Linux环境下,使用C语言进行项目开发时,Makefile是一个常用的工具,它定义了一套规则来指定如何编译和链接程序。这个Makefile定义了一些变量,例如CC为C编译器,CFLAGS为编译器选项,以及执行文件、源文件和对象文件的名称。all 目标是一个默认目标,它依赖于 $(TARGET),所以当你运行 make 命令时,会构建可执行文件。原创 2024-04-28 07:53:02 · 862 阅读 · 0 评论 -
curlftpfs和fusermount
curlftpfs 是一种 Linux 系统下用来将 FTP 服务器挂载为文件系统的工具,这意味着可以通过本地目录来访问和操作 FTP 服务器上的文件。原创 2024-04-20 22:02:46 · 1452 阅读 · 3 评论 -
lftp客户端
请替换`username`, password, ftp.server.com, /path/to/local/file.txt, 和 /path/to/remote/file.txt 为自己的FTP用户名,密码,服务器地址,本地文件路径,和目标文件路径。如果通过设置`LANG`和`LC_ALL`环境变量为`en_US.UTF-8`后仍然出现乱码,可能是因为FTP客户端或服务器端并不完全支持UTF-8编码,或者环境变量没有正确生效。如果目录不存在,需要先创建它,通常可以使用`mkdir`命令实现。原创 2024-04-20 14:28:19 · 979 阅读 · 1 评论 -
Kubernetes
Docker是一个开源的应用容器引擎,它的主要作用是帮助开发者打包他们的应用及其依赖项到一个可移植的容器中,并发布到任何流行的Linux或Windows机器上。这使得从研发到测试、生产能提供一致环境。Docker提供了容器化的基础,而Kubernetes则在此基础上提供了容器编排和管理的强大功能,两者共同构成了现代云原生应用的核心技术栈。总的来说,Kubernetes为容器化应用提供了高效、自动化的部署、扩展和管理能力,使得应用能够在不同的云环境和操作系统间无缝迁移,大大提高了应用的可靠性和可维护性。原创 2024-04-19 08:19:32 · 780 阅读 · 2 评论 -
Docker in Docker原理与实战
Docker in Docker是一种强大的容器管理技术,它通过在容器内部嵌套运行Docker引擎,提供了更深层次的容器化应用部署和管理的灵活性。尽管存在一些资源和稳定性方面的挑战,但它在简化部署、提高安全性和可移植性方面具有明显优势。随着容器技术的不断发展,预计未来将出现更多高效、安全且易于管理的容器管理工具2。原创 2024-04-18 08:07:23 · 1200 阅读 · 3 评论 -
Docker
每次使用 docker run 命令运行新的容器时,默认情况下 Docker 都会为该容器自动生成一个随机的名称,该名称是由两个单词组合而成,通常一个形容词和一个名词,例如 nostalgic_morse。如果曾经给一个镜像添加了标签,然后构建了一个新版本的镜像并再次使用了同样的标签,那个原先的镜像会丢失其标签并被显示为``。通常情况下,`docker system prune` 命令应该能够清理不再使用的悬空镜像,但如果镜像是被某个容器所使用,或者被标记为需要保留,那它们将不会被删除。原创 2024-04-18 07:45:34 · 1033 阅读 · 0 评论 -
AMD ROCm平台从源代码构建HIP
上面的命令会读取<hip>/include/hip/hip_runtime_api.h文件,并在<hipamd>/src目录中查找源文件,然后使用这些信息来生成新的性能分析头文件。旧的头文件是<hipamd>/include/hip/amd_detail/hip_prof_str.h,而新的头文件会被保存到<hipamd>/include/hip/amd_detail/hip_prof_str.h.new。在做出更改后,使用位于hipamd/src目录下的hip_prof_gen.py工具来生成头文件。原创 2024-04-16 08:18:57 · 1426 阅读 · 1 评论 -
Ubuntu 22.04进行远程桌面连接
打开Remmina,选择RDP(远程桌面协议)作为连接类型,输入Windows 10机器的IP地址,然后点击“连接”(Connect)。打开VNC客户端,输入目标Ubuntu 22.04机器的IP地址以及后面的VNC会话端口(如:`192.168.1.100:5901`),然后连接。Ubuntu 22.04进行远程桌面连接,无论是连接到Windows 10还是另一个Ubuntu 22.04,都可以通过不同的方式实现。注意,基于VNC的远程桌面不是加密的,建议通过SSH隧道进行连接以提高安全性。原创 2024-04-09 00:27:48 · 5580 阅读 · 1 评论 -
Ubuntu22.04修改默认窗口系统为X11
Ubuntu22.04安装默认窗口系统为Wayland(通过设置->关于可以看到)。原创 2024-04-08 08:50:47 · 7430 阅读 · 1 评论 -
Ubuntu系统同时使用AMD和NVIDIA GPU出现的问题及解决
然而,这种配置也带来了一系列的技术挑战。最后,请注意,由于硬件和驱动可能存在的不兼容问题,特别是在混合不同厂家的GPU时,您可能需要尝试不同的方法和配置来找到最稳定的设置。如果你需要在Ubuntu 22系统中使用两个GPU,并且不依赖于同时运行两个GPU的功能,一个可能的解决方案是禁用其中一个GPU,以避免潜在的兼容性和性能问题。4. **潜在冲突**:有可能在安装和配置过程中遇到库文件冲突,特别是在图形应用程序或游戏中,系统可能无法预知应当使用哪一个GPU,有时可能需要在应用程序级别设定使用哪个GPU。原创 2024-04-07 08:50:07 · 1624 阅读 · 0 评论 -
Ubuntu 22.04安装新硬盘并启动时自动挂载
确保在编辑分区和 /etc/fstab 时小心操作,因为错误的配置可能会导致系统无法启动。- 要在硬盘上创建一个新的分区,可以使用 fdisk 或 parted 命令。这些工具通常可以在Ubuntu的“应用程序”菜单中找到,或者在终端中使用它们的命令来启动。命令查看挂载的分区是否已出现在列表中。同时,打开文件管理器,应该能够在之前创建的挂载点目录下看到挂载的分区。在文件的末尾添加一行,指定分区的UUID、挂载点、文件系统类型以及挂载选项。命令查看系统中的磁盘和分区情况,以确定需要挂载的分区。原创 2024-04-07 08:46:59 · 4892 阅读 · 0 评论 -
ubuntu卸载nvidia驱动
sudo apt-get --purge remove "*nvidia*"sudo apt-get autoremove参考:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#removing-cuda-tk-and-driver原创 2021-03-24 23:32:56 · 623 阅读 · 0 评论 -
【linux】AMD GPU和NVIDIA GPU驱动安装
综上,根据用户对性能和特性的需求以及所使用的Linux发行版,AMD GPU的驱动在安装上可以被认为相对简便,尤其是当满足于开源驱动提供的性能时。为了充分利用显卡的高性能计算(HPC)功能,可能需要安装AMDGPU-PRO驱动,这是AMD的官方专有驱动,它提供对OpenCL和其他专用计算框架的全面支持。对于Linux用户,AMD通常提供可执行的安装文件(比如`.run`或者`.sh`文件)或者用于各个发行版的包管理格式(例如Debian的`.deb`或者RedHat的`.rpm`)。原创 2024-03-31 16:51:52 · 3306 阅读 · 0 评论 -
打开TensorBoard面板(MNIST)
ubuntu 17.04下(1)解压缩tensorflow源码包,进入源码目录(tensorflow-1.3.1),运行例子程序sudo python tensorflow/examples/tutorials/mnist/mnist_with_summaries.py运行成功后,能够看到/tmp/tensorflow/mnist/logs/mnist_with_summaries目录...原创 2017-10-01 18:14:31 · 248 阅读 · 0 评论 -
【C语言】access和stat函数
在C语言中,`access` 函数是一个用于检查文件的存在性以及对文件的访问权限的函数。在代码中直接使用对应的宏(如 F_OK),而非硬编码的整数(如 0),可以提高代码的可读性和可移植性。stat 函数成功执行时,将返回0,并将文件的信息填入通过参数 buf 传递的结构体中。在C语言中,`stat` 函数是一个用来获取文件状态信息的函数,定义在 <sys/stat.h> 头文件中。- 如果任一测试失败,或者发生错误,函数返回-1,并且`errno`会被设置为一个特定的错误代码,表明检查失败的原因。原创 2024-03-20 08:08:23 · 1948 阅读 · 2 评论 -
【C语言】遍历目录树
ftw()和`nftw()`在内部可能会使用`readdir()`或类似的系统调用(如`open()`, read(), close() 以及可能的`stat()` 或 lstat())来获取目录内容及文件信息。文件的修改时间 (st_mtime), 访问时间 (st_atime), 和状态改变时间 (st_ctime) 不是直接保存在文件内容中的,而是在文件系统的元数据(metadata)中记录的。ftw()和`nftw()`对`readdir()`进行了高级封装,简化了递归遍历文件系统的复杂性。原创 2024-03-20 08:07:34 · 1675 阅读 · 1 评论 -
【linux】Debian访问Debian上的共享目录
要在Debian系统上访问共享目录,通常意味着要访问通过网络共享的文件夹,比如通过SMB/CIFS(Server Message Block/Common Internet File System)协议共享的Windows共享文件夹。原创 2024-03-19 04:54:28 · 1762 阅读 · 1 评论 -
【C语言】守护进程(daemon)的输出到一个文本文件
接下来,调用`dup(0)`复制文件描述符0(也就是之前打开的`/dev/null`),因为在文件描述符1和2被关闭之后,`dup`调用会使用最低的、未被使用的文件描述符号,也就是先是1然后是2,因此这一步相当于重新定向了进程的标准输出到`/dev/null`,然后又将标准错误也重定向到了`/dev/null`。如果想重定向守护进程的输出到 /var/log/daemon.log ,需要使用`open`系统调用首先打开这个文件,然后才能用`dup`或`dup2`复制相应的文件描述符。原创 2024-03-19 04:53:22 · 1309 阅读 · 1 评论 -
【C语言】vfprintf函数
vfprintf是 C 语言中的一个函数,它是fprintf函数的变体,用于格式化输出到文件中。vfprintf函数接受一个格式化字符串和一个指向可变参数列表的指针,这个列表通常是通过va_list类型来传递的。vfprintf函数的主要用途是在需要处理不定数量的参数时,提供一种灵活的输出格式化方式。原创 2023-12-07 18:29:53 · 1941 阅读 · 1 评论 -
【C语言】mmap函数
mmap是一种在Unix/Linux操作系统中将文件映射到进程的地址空间的方法,它允许程序像访问内存一样访问文件。这种方法可以提高文件访问的速度和效率,特别是对于大文件而言。以下是mmap。原创 2023-12-06 09:40:12 · 1901 阅读 · 0 评论 -
【C语言】Debian10使用zlib库crc32()函数
按照这些步骤,你应该能够在Debian 10上的C程序中使用`crc32()`函数。其中,`crc`是上一次计算得到的CRC值或者初始时的`0`值,`buf`是一个指向待计算数据的指针,`len`是数据的长度。3. 使用`crc32()`函数: 你现在可以调用`crc32()`函数计算数据的CRC32校验码。2. 包含zlib头文件: 在你的C源文件中,你需要包含zlib库的头文件。4. 编译程序并链接zlib库: 当编译你的程序时,确保包含了zlib库的链接参数。函数返回计算得到的CRC-32值。原创 2023-11-24 17:35:07 · 1496 阅读 · 3 评论