简介¶
本文为吴鸿毅(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 格式化
未分类¶
> 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这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。