Skip to content

Linux

linux查找文件

在Ubuntu中,你可以使用find命令来查找文件。find命令可以根据文件名、文件类型、文件大小等条件来搜索文件。以下是一些常见的用法示例:

1. 按文件名查找:

find /path/to/search/directory -name "filename"

这个命令会在指定的目录(/path/to/search/directory)及其子目录中查找文件名为"filename"的文件。

2. 按文件类型查找:

find /path/to/search/directory -type f

这个命令会在指定的目录及其子目录中查找所有普通文件。

3. 按目录查找:

find /path/to/search/directory -type d

这个命令会在指定的目录及其子目录中查找所有目录。

4. 按文件大小查找:

find /path/to/search/directory -size +10M

这个命令会在指定的目录及其子目录中查找文件大小大于10MB的文件。你可以使用+表示大于,-表示小于,不加符号表示等于。

5. 按日期查找:

find /path/to/search/directory -newermt 2023-01-01

这个命令会在指定的目录及其子目录中查找修改时间在2023年1月1日之后的文件。你可以使用-newermt参数来指定日期。

6. 组合条件查找:

你也可以组合多个条件进行查找。比如,查找指定目录下大小在1MB到10MB之间的图片文件:

find /path/to/search/directory -type f -size +1M -size -10M -name "*.jpg"

这个命令会在指定的目录及其子目录中查找文件类型为jpg、大小在1MB到10MB之间的文件。

linux系统的目录结构

Ubuntu和其他Linux系统通常遵循Filesystem Hierarchy Standard(FHS)规范,定义了文件系统中各个目录的用途。以下是Ubuntu和大多数Linux发行版中常见的目录结构:

  1. /(根目录)
  2. /bin:存放基本系统命令(如ls、cp等)的可执行文件。
  3. /boot:包含启动Linux所需的文件,例如内核和启动引导程序(GRUB)。
  4. /dev:包含设备文件,用于表示系统硬件设备。
  5. /etc:存放系统配置文件。
  6. /home:用户的主目录通常位于此处。
  7. /lib:存放系统所需的共享库文件。
  8. /media:用于挂载可移动媒体设备,如USB驱动器和光盘。
  9. /mnt:用于手动挂载临时文件系统,通常是管理员挂载其他分区的地方。
  10. /opt:用于安装额外的可选软件。
  11. /proc:特殊目录,包含运行中的内核和进程信息。
  12. /root:超级用户(管理员)的主目录。
  13. /run:存放在系统引导后创建的临时运行时文件,存储当前系统的运行时信息。
  14. /sbin:包含系统管理员使用的系统命令(通常需要特殊权限)。
  15. /srv:存放服务相关的数据。
  16. /sys:提供对内核参数的访问和配置。
  17. /tmp:用于存放临时文件。
  18. /usr:存放用户应用程序和文件。
    • /usr/bin:用户可执行的二进制文件。
    • /usr/include:C/C++等编程语言的头文件。
    • /usr/lib:用户程序使用的共享库文件。
    • /usr/local:用户自行安装的软件通常会安装到这个目录。
    • /usr/sbin:系统管理员使用的系统命令(通常需要特殊权限)。
    • /usr/share:系统共享的数据文件,如文档、图标等。
    • /usr/src:Linux内核源代码通常位于此目录。
  19. /var:包含经常变化的文件,如日志文件、数据库文件等。
    • /var/log:存放系统日志文件。
    • /var/spool:存放邮件、打印等服务的数据。
    • /var/tmp:用于存放系统暂时的文件,与/tmp不同的是,它在重启时不会被清空。

请注意,不同的Linux发行版和Unix系统可能会有一些差异,但大多数常见的Linux系统都遵循类似的结构。

chmod的用法

chmod 是一个用于更改文件或目录权限的命令,它在Unix和类Unix操作系统中非常常用。chmod 命令的基本语法如下:

chmod [选项] 权限模式 文件或目录
  • 选项chmod 命令有许多选项,用于指定不同的操作。一些常见的选项包括:
  • -R--recursive:递归地应用权限更改,包括子目录和文件。
  • -v--verbose:显示详细的输出,以便查看更改的权限。

  • 权限模式:权限模式是一个用数字或符号表示的权限设置,指定了文件或目录的读、写和执行权限。可以使用以下两种方式之一来指定权限模式:

  • 符号模式:使用符号来表示权限,包括以下符号:

    • +:添加权限。
    • -:移除权限。
    • =:设置权限。
    • r:读权限。
    • w:写权限。
    • x:执行权限。
    • u:所有者的权限。
    • g:所属组的权限。
    • o:其他人的权限。
    • a:所有用户的权限。

    例如,chmod +r myfile.txt 将给 myfile.txt 添加读权限。

  • 数字模式:使用数字来表示权限。每种权限都有一个数字值,分别是:

    • 读权限:4
    • 写权限:2
    • 执行权限:1

    这些数字可以组合在一起,然后分配给文件所有者、所属组和其他人的权限。例如,chmod 644 myfile.txt 将给文件所有者读和写权限,给所属组和其他人只读权限。

  • 文件或目录:指定要更改权限的文件或目录的名称。

以下是一些示例 chmod 命令的用法:

  1. 将文件 myfile.txt 设置为只读权限:

    chmod 444 myfile.txt
    

  2. 将文件 myfile.txt 设置为可读写权限,其他人没有权限:

    chmod 600 myfile.txt
    

  3. 递归地将目录 mydirectory 及其所有子目录和文件设置为只读权限:

    chmod -R 444 mydirectory
    

  4. 将文件 myfile.txt 的所有者添加执行权限:

    chmod u+x myfile.txt
    

查找/退出进程

查看与进程名相关的所有进程ID

pgrep python3

通过执行的完整路径查看进程ID

pgrep -f "python3 /root/demo2.py"
pgrep -f "demo2.py"

杀掉与进程名相关的所有进程ID

pkill python3

通过执行的完整路径杀掉所有进程

pkill -f "python3 /root/demo2.py"

ssh免密钥登录

image-20230919225301314

解压tar.gz

tar -xvzf filename.tar.gz
  • -x: 表示提取文件。
  • -v: 表示在终端中显示详细输出,以便你能够看到正在提取的文件列表。
  • -z: 表示使用 gzip 解压缩。
  • -f: 后面跟着要提取的文件名。

将文件解压缩到不同的目录,使用命令-C指定目标目录:

tar -xvzf filename.tar.gz -C /path/to/destination

切换到当前目录

centos设置命令行颜色高亮

编辑.bashrc文件,修改PS1变量

PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "

ubuntu命令行设置颜色高亮

编辑.bashrc文件,修改PS1变量

PS1="\[\e[1;31m\]\u@\[\e[36m\]\h \w]\$\[\e[m\]"

启用apache2 cgi

[Tutorial - Python CGI on Apache Step by step ] (techexpert.tips)

apt-get install apache2
a2enmod cgid

linux安装mysql

apt-get install mysql-server
mysql -u root -p
update user set authentication_string=PASSWORD("root") where user="root";
use mysql;
select host, user, authentication_string, plugin from user;

ubuntu安装pure-ftp

apt-get install pure-ftpd
systemctl restart pure-ftpd
systemctl enable pure-ftpd

添加组

groupadd ftpgroup

组内添加用户

useradd ftpuser -g ftpgroup -d /home/ftp -s /sbin/nologin

-s /sbin/nologin表示禁止登陆

添加虚拟用户

pure-pw useradd testuser -u ftpuser -g ftpgroup -d /var/www/test

查看虚拟用户

pure-pw list

建立虚拟用户数据(每添加一个用户,都要执行一次此命令)

pure-pw mkdb

重启pure-ftpd服务

systemctl restart pure-ftpd

auth失败,建立软链接

ln -s /etc/pure-ftpd/conf/PureDB 60puredb

连接上了如果传文件报没权限的错误的话就给文件夹设置下用户与用户组

cd /var/www

可以设置为www-data或者当前ftp的用户与用户组,不建议给777权限,不安全

设置为www-data:sudo chown -R www-data:www-data test

设置为ftpuser:sudo chown -R ftpuser:ftpgroup test

更改文件夹所属用户

chown -R cookie:orange /test/ftp3

《搭建FTP服务器》-爱代码爱编程 (icode.best)

更改被动模式

PassivePortRange             39000 40000
ForcePassiveIP               81.71.13.241

创建文件夹

mkdir -p /root/docker/redis/conf

递归创建目录, 及时/root/docker/redis/不存在, 优先创建

wordpress

出现插件, 主题无法在线安装的情况, 可能是由于权限引起的, 将wordpress的数据库权限更改为www-data

chown -R www-data:www-data wordpress

一行代码通过端口杀掉进程

kill -9 `lsof -t -i:8000`
sudo kill -9 $(sudo lsof -t -i:9001)