非常实用的Linux入门级学习笔记

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命令。

时间: 2024-09-22 19:24:02

非常实用的Linux入门级学习笔记的相关文章

linux Shell学习笔记第一天_其它

以下是Shell学习1-2天学习笔记 ---------我是分隔符--------- 硬件去执行, 内核与硬件之间进行操作. 命令解析器. shell脚本的组成元素 系统命令 文本处理工具(sort.grep.sed.awk-) 变量 条件判断 环循结构 函数 Shell Scripts Center(SSC) ---------------------------- 非负Grep / awk 几天. 统计Wc Sort 排序 sort|head / sed字段处理 awk 数据区域判断 awk

c/c++unix/linux基础学习笔记-常用命令和vi的使用

linux 基本命令的使用-命令在ubuntu下面执行,有些命令通用其他linux,有些不通用. 多条命令间用;号隔开,回车后可以一起执行. clear-前屏,pwd显示当前目录,cd跳转目录. sudo [命令]  -ubuntu 下以管理员身份运行命令. 一般情况下,运行当前目录下的程序,要用 ./文件名 执行. 查看当前shell名称:ps 进入另外一个shell,直接输入shell名称:ksh/tcsh/sh/bash,退出一个shell用:exit. 切换shell命令,如:exec

linux Shell学习笔记第五天_其它

第五天:函数与任务调度 函数的优势 分而治之f 协同合作 方便管理 维护简单 函数的结构     function 函数名()     {         命令1         命令2         命令3     } 函数的参数传递     向函数传递参数就像在一般脚本中使用特殊变量$1,$2,$3-$9一样,函数取得所传参数后将原始参数传回shell脚本,因此最好先在函数内重新设置变量保存所传的参数.这样如果函数有一点错误,就可以通过已经本地化的变量名迅速加以跟踪. 函数文件     当

linux Shell学习笔记第三天_其它

第三天:条件选择 大 纲     应用实例分析     条件测试     if-else-fi     case-in-esac 实现功能菜单: 执行脚本后 按1,显示当前时间 按2,显示CPU负载 按3,显示剩余内存 按0,退出脚本 按其他字符,提示超出选择范围后退出 分析步骤.     #date +%T     uptime awk截取     free –m 条件测试格式     #test –option obj     #[ -option obj ] 返回结果 表达式内容测试结果是

linux多线程学习笔记六--一次性初始化和线程私有数据【转】

转自:http://blog.csdn.net/kkxgx/article/details/7513278 版权声明:本文为博主原创文章,未经博主允许不得转载. 一,一次性初始化 以保证线程在调用资源时,确保资源已经被初始化,并且只初始化一次. 在传统的顺序编程中,一次性初始化经常通过使用布尔变量来管理.控制变量被静态初始化为0,而任何依赖于初始化的代码都能测试该变量.如果变量值仍然为0,则它能实行初始化,然后将变量置为1.以后检查的代码将跳过初始化. 但是在多线程程序设计中,事情就变的复杂的多

LINUX中断学习笔记【转】

转自:http://blog.chinaunix.net/uid-14825809-id-2381330.html 1.中断的注册与释放: 在 , 实现中断注册接口: int request_irq(unsigned int irq,irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *dev_name,void *dev_id); void free_irq(unsigne

linux NFS 学习笔记_Linux

NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS基于 RPC协议,NFS本身只是起到共享的作用而和客户端进行连接和数据传输则是RPC协议的功能 NFS主要通过两个daemon 来进行控制: 1.rpc.nfsd  ------- 它用来控制客户端是否可以连接到,NFS serve

linux命令学习笔记之dstat命令

dstat可以很方便监控系统运行状况并用于基准测试和排除故障,是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品. 一.安装方法 # yum install dstat 二.命令参数 -l :显示负载统计量 -m :显示内存使用率(包括used,buffer,cache,free值) -r :显示I/O统计 -s :显示交换分区使用情况 -t :将当前时间显示在第一行 -p, --proc 统计进程信息,(包括runnable.uninterruptibl

linux Shell学习笔记第二天_其它

变量 获取本机主机名 #hostname 获取本系统版本号 #uname -r 获取cpu类型 获取cpu的工作频率 cat /proc/cpuinfo 获取内存使用情况 #free -m 获取硬盘使用情况 #df 变量类型及变量操作 本地变量(一般所指) 本地变量只存在用户当前shell中,当用户退出当前shell或开器一个新的shell,所设置的变量将会不存在 设置变量 #变量名=变量值 显示变量 #echo ${变量名} 假设a=1 显示则 echo ${a} 环境变量(用的非常少) 环境