简介

本文为吴鸿毅(wuhongyi@qq.com)常用工具、程序包的介绍。

linux 创建用户、设置密码、修改用户、删除用户

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 修改文件所有者和文件所在组

chgrp  [user name]  [file name]  -R
chown  [user name]  [file name]  -R

#-R 表示递归目录下所有文件

Linux 批量设置文件夹、文件权限

先用chmod全部设置成664,然后再用find把目录部分设置成775

以下 /home/wuhongyi/ 表示文件目录,需要ROOT权限

权限 r4 w2 x1

chmod 664 -R /home/wuhongyi/
find /home/wuhongyi/ -type d -print|xargs chmod 775

批量替换

sed -i "s/Hongyi Wu,吴鸿毅/Hongyi Wu\(吴鸿毅\)/g" `grep "Hongyi Wu,吴鸿毅" -rl /home/wuhongyi/important/

其中,“Hongyi Wu,吴鸿毅” 为原始内容,“Hongyi Wu(吴鸿毅)” 为要替换的内容。最后为文件夹路径。

Linux删除软链接

#正确的删除方式(删除软链接,但不删除实际数据)
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 ,把文件中

#Port 22
改为
Port XXXX
其中 XXXX 为要设置的端口数字

机器禁止ROOT远程SSH登录

ROOT 权限下打开文件 /etc/ssh/sshd_config ,把文件中

#PermitRootLogin yes
改为
PermitRootLogin no

重启sshd服务

service sshd restart

ssh登录限制ip的方法

ROOT权限下打开文件 /etc/hosts.allow 按照以下规则添加允许访问IP

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 加入

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 文件内容格式:

<输出目录> [客户端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服务器也不检查其父目录的权限,这样可以提高效率;

# 示例 将NFS Server的/home/wuhongyi共享给所有主机,权限读写。
/home/wuhongyi (rw,no_root_squash)

为了使NFS服务器能正常工作,需要启动rpcbind和nfs两个服务,并且rpcbind一定要先于nfs启动。

service rpcbind start
service nfs start

查询NFS服务器状态

service rpcbind status
service nfs status

停止NFS服务器

要停止NFS运行时,需要先停止nfs服务再停止rpcbind服务,对于系统中有其他服务(如NIS)需要使用时,不需要停止rpcbind服务

service nfs stop
service rpcbind stop

客户端操作

# 挂载到本地/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盘启动盘

su
fdisk  -l

查看U盘对应的名,假如看到/dev/sdf4

umount  /dev/sdf4
dd  if=file.iso   of=/dev/sdf

U盘格式化

mkdosfs -F 32 -I /dev/sdb

rm删除文件恢复

如果手误用rm删除了程序,数据格式是ext3,ext4格式,可以用extundelete恢复。

删除之后,不要往该盘写入数据,能全部恢复,如果写入数据,恢复的数据比例就看命了。最好通过umount卸载该分区,避免数据的写入破坏文件节点。

首先用

df -hl

查看该区名称,例如

/dev/sda1
/dev/sdb1
/dev/sdb2
/dev/sdc1
#执行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 格式化

_images/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这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。