.. README.rst --- .. .. Description: .. Author: Hongyi Wu(吴鸿毅) .. Email: wuhongyi@qq.com .. Created: 四 7月 4 16:42:15 2019 (+0800) .. Last-Updated: 五 8月 20 15:00:19 2021 (+0800) .. By: Hongyi Wu(吴鸿毅) .. Update #: 10 .. URL: http://wuhongyi.cn ################################################## 简介 ################################################## 本文为吴鸿毅(wuhongyi@qq.com)常用工具、程序包的介绍。 ============================================================ linux 创建用户、设置密码、修改用户、删除用户 ============================================================ .. code:: bash useradd testuser #创建用户testuser passwd testuser #给已创建的用户testuser设置密码 #说明:新创建的用户会在/home下创建一个用户目录testuser usermod --help 修改用户这个命令的相关参数 userdel testuser 删除用户testuser rm -rf /home/testuser 删除用户testuser所在目录 #用户组的添加和删除: groupadd testgroup #组的添加 groupdel testgroup #组的删除 #说明:组的增加和删除信息会在etc目录的group文件中体现出来。 ============================================================ linux 修改文件所有者和文件所在组 ============================================================ .. code:: bash chgrp [user name] [file name] -R chown [user name] [file name] -R #-R 表示递归目录下所有文件 ============================================================ Linux 批量设置文件夹、文件权限 ============================================================ 先用chmod全部设置成664,然后再用find把目录部分设置成775 以下 /home/wuhongyi/ 表示文件目录,需要ROOT权限 权限 r4 w2 x1 .. code-block:: bash chmod 664 -R /home/wuhongyi/ find /home/wuhongyi/ -type d -print|xargs chmod 775 ============================================================ 批量替换 ============================================================ .. code-block:: bash sed -i "s/Hongyi Wu,吴鸿毅/Hongyi Wu\(吴鸿毅\)/g" `grep "Hongyi Wu,吴鸿毅" -rl /home/wuhongyi/important/ 其中,“Hongyi Wu,吴鸿毅” 为原始内容,“Hongyi Wu(吴鸿毅)” 为要替换的内容。最后为文件夹路径。 ============================================================ Linux删除软链接 ============================================================ .. code-block:: bash #正确的删除方式(删除软链接,但不删除实际数据) rm -rf ./test_chk_ln #错误的删除方式 rm -rf ./test_chk_ln/ #(这样就会把原来test_chk下的内容删除) ============================================================ Linux修改SSH端口和禁止Root远程登陆 ============================================================ 不管是虚拟机还是实体机,一般我们远程连接的时候,都是用的ssh(SecureShell建立在应用层和传输层基础上的安全协议)。它默认的端口22,默认使用root也是可以登录的。这样在互联网上就是很危险的事情了,我们只能通过改变它的默认端口(虽然还是会被端口扫描探查),禁用root登录,来相对地提高安全性。 ============================================================ 键盘截取图片快捷方式 ============================================================ - PrintScreen 截取整个桌面的屏幕截图并保存到图片文件夹 - Alt+PrintScreen 截取目前获得焦点的窗口并保存到图片文件夹 - Shift+PrintScreen 选定区域截取并将其保存到图片文件夹 - Ctrl+PrintScreen 截取整个桌面的屏幕截图并将其复制到剪贴板 - Ctrl+Alt+PrintScreen 截取目前获得焦点的窗口截图并将其复制到剪贴板 - Ctrl+Shift+PrintScreen 选定区域截取并将其复制到剪贴板 ============================================================ 修改ssh默认端口 ============================================================ ROOT 权限下打开文件 /etc/ssh/sshd_config ,把文件中 .. code-block:: text #Port 22 改为 Port XXXX 其中 XXXX 为要设置的端口数字 ============================================================ 机器禁止ROOT远程SSH登录 ============================================================ ROOT 权限下打开文件 /etc/ssh/sshd_config ,把文件中 .. code-block:: text #PermitRootLogin yes 改为 PermitRootLogin no 重启sshd服务 .. code-block:: bash service sshd restart ============================================================ ssh登录限制ip的方法 ============================================================ ROOT权限下打开文件 /etc/hosts.allow 按照以下规则添加允许访问IP .. code-block:: text sshd:192.168.0.100:allow #允许IP 192.168.0.100 登录 sshd:192.168.0.:allow #允许IP 192.168.0. 网段登录 sshd:223.227.223.*:allow #允许IP 223.227.223.* 网段登录 sshd:192.168.0.*:allow #允许IP 192.168.0.* 网段登录 打开文件 /etc/hosts.deny 加入 .. code-block:: text sshd:all:deny #禁止其他的所有IP登录 修改后保存后生效 ============================================================ root权限下链接在.bashrc中配置的动态库 ============================================================ 可以在root权限下source个人用户下的.bashrc文件以加载配置。或者在/etc/ld.so.conf (or /etc/ld.so.conf.d/\*) 添加全局链接库。 ============================================================ 挂载NFS文件共享 ============================================================ NFS服务器的配置相对比较简单,只需要在相应的配置文件中进行设置,然后启动NFS服务器即可。 NFS的常用目录 - /etc/exports NFS服务的主要配置文件 - /usr/sbin/exportfs NFS服务的管理命令 - /usr/sbin/showmount 客户端的查看命令 - /var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值 - /var/lib/nfs/xtab 记录曾经登录过的客户端信息 NFS服务的配置文件为 /etc/exports,/etc/exports 文件内容格式: .. code-block:: bash <输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)] 输出目录:输出目录是指NFS系统中需要共享给客户机使用的目录; 客户端:客户端是指网络中可以访问这个NFS输出目录的计算机 客户端常用的指定方式 - 指定ip地址的主机:192.168.0.200 - 指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0 - 指定域名的主机:david.bsmart.cn - 指定域中的所有主机:\*.bsmart.cn - 所有主机:\* 选项:选项用来设置输出目录的访问权限、用户映射等。 NFS主要有3类选项: - 访问权限选项 - 设置输出目录只读:ro - 设置输出目录读写:rw - 用户映射选项 - all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody); - no_all_squash:与all_squash取反(默认设置); - root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置); - no_root_squash:与rootsquash取反; - anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx); - anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx); - 其它选项 - secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置); - insecure:允许客户端从大于1024的tcp/ip端口连接服务器; - sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性; - async:将数据先保存在内存缓冲区中,必要时才写入磁盘; - wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置); - no_wdelay:若有写操作则立即执行,应与sync配合使用; - subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置); - no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率; .. code-block:: bash # 示例 将NFS Server的/home/wuhongyi共享给所有主机,权限读写。 /home/wuhongyi (rw,no_root_squash) 为了使NFS服务器能正常工作,需要启动rpcbind和nfs两个服务,并且rpcbind一定要先于nfs启动。 .. code-block:: bash service rpcbind start service nfs start 查询NFS服务器状态 .. code-block:: bash service rpcbind status service nfs status 停止NFS服务器 要停止NFS运行时,需要先停止nfs服务再停止rpcbind服务,对于系统中有其他服务(如NIS)需要使用时,不需要停止rpcbind服务 .. code-block:: bash service nfs stop service rpcbind stop 客户端操作 .. code-block:: bash # 挂载到本地/mnt/data文件夹 mount -t nfs -o v3 162.105.147.50:/home/wuhongyi /mnt/data # 出现了“mount.nfs: access denied by server while mounting...”的错误,则加入参数 -o v3 / -o v2 / -o v4 中的一组试试 # 取消挂载 umount /mnt/data ============================================================ linux下制作U盘启动盘 ============================================================ .. code-block:: bash su fdisk -l 查看U盘对应的名,假如看到/dev/sdf4 .. code-block:: bash umount /dev/sdf4 dd if=file.iso of=/dev/sdf ============================================================ U盘格式化 ============================================================ .. code-block:: bash mkdosfs -F 32 -I /dev/sdb ============================================================ rm删除文件恢复 ============================================================ 如果手误用rm删除了程序,数据格式是ext3,ext4格式,可以用extundelete恢复。 删除之后,不要往该盘写入数据,能全部恢复,如果写入数据,恢复的数据比例就看命了。最好通过umount卸载该分区,避免数据的写入破坏文件节点。 首先用 .. code-block:: bash df -hl 查看该区名称,例如 .. code-block:: text /dev/sda1 /dev/sdb1 /dev/sdb2 /dev/sdc1 .. code-block:: bash #执行extundelete命令查询/dev/sdb1分区可恢复的数据信息: extundelete /dev/sdb1 --inode 2 #根据输出信息,标记为Deleted状态的是已经删除的文件或目录。同时还可以看到已删除文件的inode值,接下来就可以恢复文件了。 #通过文件名恢复恢复单个文件: extundelete /dev/sdb1 --restore-file 文件名 #恢复单个目录: extundelete /dev/sdb1 --restore-directory 目录名 #恢复所有误删文件: extundelete /dev/sdb1 --restore-all #通过inode结点恢复 extundelete /dev/sdb1 - -restore-inode inode号 恢复需要在ROOT权限下进行。 恢复的文件在当前终端路径下的RECOVERED_FILES目录中 ============================================================ 大于2T硬盘格式化 ============================================================ 现在的硬盘大多都大于2T,但是 LINUX 自带的 **fdisk** 工具无法格式化大于 2T 的硬盘,需要使用第三方工具 **parted**。 - 可以先使用 *fdisk -l* 查看系统当前的硬盘 - 开始格式化,执行命令 *parted /dev/sdc* 这里/dev/sdc是需要格式化的硬盘 - *mklabel gpt* 将MBR磁盘转换为GPT - *print* 查看下实际可使用磁盘空间数,这里显示全部空间为 4001GB,复制该数值 - *mkpart primary 0 4001GB* 创建主分区,空间为从 0 GB 到 4001 GB全部空间 - *print* 打印当前分区情况 - *quit* 退出parted工具 - *mkfs.ext4 /dev/sdc1* 格式化 .. image:: img/HardDiskFormat.png ============================================================ 未分类 ============================================================ > http://www.sqlite.org/index.html > http://www.runoob.com/sqlite/sqlite-c-cpp.html SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。 .. .. README.rst ends here