Linux基础

× 文章目录
  1. 1. Linux各个目录的作用及内容
  2. 2. 终端快捷键
  3. 3. vim
  4. 4. firewall
  5. 5. mongodb
  6. 6. nginx
  7. 7. grep
  8. 8. 新建/复制/移动/删除
  9. 9. 磁盘管理
  10. 10. 查看端口进程占用
  11. 11. mysql 备份恢复
  12. 12. 其他

看到什么记什么,没有顺序

Linux各个目录的作用及内容

/

/处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录、文件、设备都在/之下。

/bin

该目录存放着系统最常用的最重要的命令,相当于DOS下的内部命令,只不过它们是以独立的文件形式存在。比如:ls、cp、mkdir等命令。这个目录中的文件都是可执行的并且是普通用户都可以使用的命令。作为系统最基础的命令都放在这里。

/usr

该目录是系统存放程序的地方,比如普通命令、帮助文件、安装的软件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。当有涉及服务器的配置文件时,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts、帮助目录/usr/share/man或/usr/share/doc等。

/var

该目录的内容是经常变动的,/var下有/var/log目录用来存放系统日志的目录。/var/www目录用来定义Apache服务器站点存放目录。/var/lib用来存放一些库文件。

/sbin

大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的。

/root

Linux超级权限用户(系统管理员)root的主目录。

/home

普通用户的主目录都默认存放在该目录中,比如:有个用户叫wang,那它的主目录就是/home/wang,也可以用~wang表示。

/etc

该目录是系统配置文件的所在地,一些服务器的配置文件也在这里,比如:用户帐号及密码配置文件等。

/boot

Linux的内核及引导系统的程序所需要的文件都存放在该目录中,比如vmlinuz、initrd.img等文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器在这个目录中。

/opt

该目录是可选的软件包安装目录,有些软件包我们可以将它安装在该目录中。

/tmp

该目录用于存放临时文件,有时用户运行程序的时候,会产生一些临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和该目录的作用是相似的。

/lost+found

在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生的一些文件碎片就存放在该目录中。当系统启动在过程中fsck工具会检查这里,并修复已经损坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能要用手工的方式来修复,或移到文件原来的位置上。

/lib

该目录用于存放库文件,这个目录里存放着系统最基本的共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。

/mnt

该目录是用于存放挂载储存设备的挂载目录的,系统提供这个目录是让用户临时挂载别的文件系统,比如有cdrom等目录。

/proc

操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。因此,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。

  • cpuinfo 主机CPU 信息
  • filesystems 文件系统信息
  • meninfo 主机内存信息
  • version Linux 内存版本信息
  • diskstatus 磁盘负载情况

/misc

该目录可以用来存放杂项文件或目录,即那些用途或含义不明确的文件或目录可以存放在该目录下。

/media

即插即用型存储设备的挂载点自动在该目录下创建。比如USB盘系统自动挂载后,会在这个目录下产生一个目录;CDROM/DVD自动挂载后,也会在这个目录中创建一个目录,类似于cdrom这个目录。该目录只有在最新的发行套件上才有。

终端快捷键

Ctrl + s 暂定当前程序,暂停后按下任意键恢复运行
Ctrl + z 将当前程序放到后台运行,恢复到前台为命令fg

vim

  • 搜索 /admin 通过n或N进行上一个或下一个匹配

  • G移动到末尾,gg移动到开头

  • 多行操作 ctrl+v进入vb模式
    通过移动光标选择要注释的行,按大写的I,进入insert模式进行操作
    最后按两次esc ,如果取消按d

  • 多行操作,删除空格,ctrl+v进入vb模式,通过光标选择,按x删除


firewall

  • 添加

    firewall-cmd –zone=public –add-port=27017/tcp –permanent (–permanent永久生效,没有此参数重启后失效)

  • 删除
    firewall-cmd –zone=public –remove-port=80/tcp –permanent

  • 重新载入

    firewall-cmd –reload

  • 查看所有打开的端口
    firewall-cmd –zone=public –list-ports

  • 添加防火墙规则(对指定IP开放指定端口)
    firewall-cmd –permanent –add-rich-rule=”rule family=”ipv4” source address=”192.168.142.166” port protocol=”tcp” port=”27017” accept/drop/reject”

  • 查看配置结果,验证配置
    firewall-cmd –list-all

  • 删除规则
    firewall-cmd –permanent –remove-rich-rule=”rule family=”ipv4” source address=”192.168.142.166” port protocol=”tcp” port=”27017” accept”

mongodb

  • db.createUser({ user: “w11scan”, pwd: “w11scan”, roles: [{ role: “dbOwner”, db: “w11scan_config” }] })
    mongo创建db密码

  • db.auth(“useradmin”, “adminpassword”)
    验证,1表示成功
    mongodb中的用户是基于身份role的

    • 管理员账户的 role是 userAdminAnyDatabase,‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。

    • dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等

    • readWrite 该用户用于该数据的读写,只拥有读写权限。

      1
      2
      3
      4
      vi /etc/mongod.conf

      security:
      authorization:enablesd

nginx

  • nginx -s reload
    nginx 平滑重启
  • nginx -t -c /etc/nginx/conf/nginx.conf
    判断nginx配置是否正确

grep

  • grep -r “关键字” /root/

    查找root下所有的关键字
  • n 显示行号

新建/复制/移动/删除

  • 新建空白文件

    • touch test
  • 新建目录

    • mkdir dir
    • mkdir -p test/test/dir -p参数,同时创建一个多级目录
  • 复制文件

    • cp test xxx/test
    • cp -r test xxx 加上-r或者-R参数,表示递归复制
  • 移动文件

    • mv test xxx 将test移动到xxx目录下
    • mv test test1 将test重命名test1
  • 删除

    • rm test 删除文件 -f参数强制删除
    • rm -rf dir 删除目录

磁盘管理

  • 查看磁盘的容量
    • df -h 查看主机磁盘使用情况

查看端口进程占用

  • netstat -anp 8080
  • netstat -antulp | grep 8080
  • lsof -i:8080
  • ps -aux | grep python

mysql 备份恢复

  • 备份
    1
    2
    3
    4
    5
    mysqldump -u username -p dbname > backup.sql

    mysqldump -u username -p --databases dbname1 dbname2 > backup.sql

    mysqldump -u username -p -all-databases > backup.sql
  • 恢复
    1
    mysql -u username -p dbname < backup.sql

其他

cat /proc/self/root/etc/passwd