1. 磁盘管理
1.1 查看磁盘分区信息(修改分区)
方法1: 查看 /proc/partitions 文件
[root@localhost TestLabs]# cat /proc/partitions
major minor #blocks name
8 0 67108864 sda
8 1 512000 sda1
8 2 66595840 sda2
253 0 31985664 dm-0
253 1 2064384 dm-1
253 2 32542720 dm-2
方法2: 执行命令 fdisk -l
[root@localhost TestLabs]# fdisk -l
Disk /dev/sda: 68.7 GB, 68719476736 bytes
255 heads, 63 sectors/track, 8354 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00043e44
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 8355 66595840 8e Linux LVM
修改分区可以使用 fdisk [分区名称] 进入交互界面进行磁盘分区管理。如下图所示:
[root@localhost TestLabs]# fdisk /dev/sda
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
1.2 创建文件系统
使用命令 mke2fs -t [要创建的文件系统类型] [磁盘]
[root@localhost TestLabs]# mke2fs -t ext4 /dev/sda3
常用参数
-b blocksize 指定文件系统块大小
-c 创建的时候检查坏块
-L 指定卷标
-j 建立文件系统日志
1.3 磁盘挂载
挂载磁盘,使用mount [要挂载的分区] [挂在点]命令。
直接使用mount命令将会列出已经挂载的分区。
常用参数:
-t 指定文件系统的类型
-o 指定挂载选项(ro[只读],rw[读写],sync[无缓存,直写],async[缓存,默认],noatime[每次访问不更新文件访问时间],atime[每次访问更新文件访问时间],remount[重新挂载])
#mount -o remount,sync,noatime /dev/sdb1 /mnt/
使用命令 umount [文件系统/挂载点] 卸载已经挂载的文件系统。
使用命令 lsof 查看打开了那些文件,一般可以在无法卸载磁盘的时候用于查看已经打开的文件,后面跟上磁盘,可以列出该磁盘上哪些文件打开了。
或者 如果无法卸载,提示文件正在被使用,可以使用fuser -m /mnt 查看文件系统的进程。
如果要实现自动挂载,可以修改 /etc/fstab文件实现。该文件中新增一条记录就可以了,文件行结构如下所示:
/dev/sda3 /mnt ext4 defaults 0 0
需要挂载的设备 挂载点 文件系统 挂载选项 dump,fsck相关选项
使用mount -a 会挂载fstab文件中的所有自动挂载项
2. 用户及权限基础
2.1 用户基础
用户分为三类:
root用户,id为0的用户
系统用户,没有shell(/sbin/nologin or /bin/false),id范围为1-499
普通用户,id为500+
使用id可以查看当前用户的信息
用户配置文件为/etc/passwd,该文件保存了所有用户的基本信息,该文件所有用户均可以访问,因此,密码并不在该文件中存放,用户的密码存放在/etc/shadow文件中,该文件只有root用户可以访问。
另一个配置文件 /etc/group 为用户组的配置文件,包含了组的信息。
查看当前用户whoami, who, w , 命令越长,显示的内容越少。
localhost:bash mylxsw$ whoami
mylxsw
localhost:bash mylxsw$ who
mylxsw console May 27 20:50
mylxsw ttys000 May 28 21:39
localhost:bash mylxsw$ w
22:20 up 1 day, 1:31, 2 users, load averages: 2.22 1.82 1.68
USER TTY FROM LOGIN@ IDLE WHAT
mylxsw console - 二20 25:29 -
mylxsw s000 - 21:39 - w
2.1.1 添加新用户
添加新用户使用命令useradd,如下
[root@localhost mylxsw]# useradd aicode
[root@localhost mylxsw]# cat /etc/passwd
root:x:0:0:管宜尧:/root:/bin/bash
...
mylxsw:x:500:500::/home/mylxsw:/bin/bash
aicode:x:501:501::/home/aicode:/bin/bash
以上命令执行后会添加一个新用户,用户名为aicode,可以看到,该命令在/etc/passwd中添加了一条用户信息记录。
该命令会为用户创建一个home目录,在/home/用户名,还会为用户建立一个用户组,改组名与用户名称相同,同时,会把/etc/skel目录下的文件复制到用户目录中。(/etc/skel目录为用户初始化目录,如果需在新建用户时初始化一些用户信息,可以在该目录中修改,类似于模板)
常用参数:
-d指定用户home目录
-s用户登陆shell
-u指定用户id
-g指定用户的主组
-G指定用户的附属组(最多31个,用“,”分隔)
2.1.2 修改用户信息
通过命令usermod [参数] [用户名] 修改用户信息。
常用参数:
-l新的用户id
-d指定用户home目录
-s用户登陆shell
-u指定用户id
-g指定用户的主组
-G指定用户的附属组(最多31个,用“,”分隔)
-L锁定用户,使其不能登陆
-U解除对用户的锁定
2.1.3 删除用户
使用命令userdel [用户名]删除用户。
删除用户操作不会删除用户的home目录,如果要删除home目录,需要增加-r参数。
2.1.4 组的创建、修改、删除
创建组 groupadd [组名]
修改组名 groupmod -n [新组名] [旧组名]
修改组id groupmod -g [新组id] [旧组id]
删除组 groupdel [组名]
Linux操作技巧收集
使用pushd和popd命令快速切换目录
经常会有这么一种情况,我们会在不同目录中进行频繁的切换,如果目录很深,那么使用cd命令的工作量是不小的,这时可以使用pushd和popd命令快速切换目录。
$ pwd
/Users/mylxsw/codes/php/lecloud/api
$ pushd .
~/codes/php/lecloud/api ~/codes/php/lecloud/api
$ cd ../album/
$ pwd
/Users/mylxsw/codes/php/lecloud/album
$ popd
~/codes/php/lecloud/api
$ pwd
/Users/mylxsw/codes/php/lecloud/api
创建软连接的时候出现Too many levels of symbolic links的错误信息
创建软连接的时候使用绝对路径就可以解决,不要使用相对路径。
localhost:~ mylxsw$ ln -s /Users/mylxsw/其它/app /Users/mylxsw/app
使用SCP命令在服务器和本地计算机之间传递文件
usage: scp [-12346BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
从服务器下载文件
scp username@服务器地址:/path/文件名 本地保存路径
上传文件到服务器
scp 本地文件路径 username@服务器地址:/保存到服务器的路径
Tip: 如果要操作的对象是整个目录的话,需要添加-t参数。
使用范例:
localhost:Downloads mylxsw$ scp guanyy@10.10.10.10:/home/guanyy/download.db ./
guanyy@10.10.10.10's password:
download.db 100% 25MB 24.7MB/s 00:01
Mac OS 清理DNS缓存
dscacheutil -flushcache
Cent OS服务器安装PHP的pecl
想要安装某个PHP扩展,但发现服务器上没有pecl,因此需要安装pecl。
$ sudo yum install php-pear
安装pear之后,pecl就有了。
在当前目录下查找大小超过100MB的文件
find . -type f -size +100M
拷贝镜像到U盘
dd if=yourimage.img of=/dev/sdb1
使用基于文本的图形界面配置命令setup
安装setup命令
$ sudo yum install setuptool
安装之后,需要安装一些常见的系统配置组件,也是使用yum:
$ sudo yum install system-config-services system-config-firewall system-config-network-tui
更多的配置组件可以使用yum search system-config命令查看,进入配置界面直接使用setup命令。