Linux 初学笔记
笨鸟慢飞,只能更加刻不容缓了,主要通过视频和上网搜资料学习,总结一下学到的点吧,都是很基础的东西,而且也不全,纯粹当作总结笔记,方便日后温故知新。系统是ubuntu的12.04 LTS。
linux的文件系统采用的是级层式的树状目录结构,最上层的是根目录“/”,根目录下有几个常见的文件夹,分别代表以下含义:
root:存放root用户的相关文件
home:存放普通用户的相关文件
bin:存放常用的普通命令
sbin:存放带有权限的命令
mnt:默认挂载软驱/光驱的目录
boot:存放引导文件
etc:存放相关配置文件
var:存放经常变化的文件
usr:默认软件的安装文件夹
linux系统终端下的常用命令(其实不一定常用,只是目前学到了,做个记录)
-------------------------------------------------split line---------------------------------------------------------
系统运行相关命令:
1.马上关机:shutdown -h now
2.马上重启:shutdown -r now或者reboot
3.注销:logout
-------------------------------------------------split line---------------------------------------------------------
文件和目录操作相关命令:
1.列出当前文件夹下的文件和文件夹:ls(这货最常用了)
列出详细的当前文件夹下的文件和文件夹:ls -l
显示隐藏文件:ls -q
2.复制文件:cp 文件名路径
复制文件夹:cp -rf 文件夹名路径
3.删除文件:rm 文件名
删除空目录:rmdir
删除非空目录:rm -rf 非空目录名
4.建立空文件:touch 文件名
建立空文件夹:mkdir 文件夹名
5.查找文件:find / -name 文件名
查找十分钟内存取的文件或目录:find /home -amin -10
查找十小时内存取的文件或目录:find /home -atime -10
查找十分钟内更改过的文件或目录:find /home -cmin -10
查找十小时前更改过的文件或目录:find /home -ctime +10
查找/home目录下大小为10k的文件:find /home -size +10k
6.查找文件中的关键字:grep -n 关键字文件名
7.重定向命令:ls -l >xxx.xxx
8.管道命令:|
9.分页显示文件:more 文件名
10.建立符号链接,类似windows的快捷方式:ln -s 源 目标
-------------------------------------------------split line---------------------------------------------------------
文件所有者和组的操作相关命令:
1.显示文件的所有者和所在组:ls -ahl
2.修改文件所在组:chgrp 组名文件名
3.修改文件所有者:chown 用户名文件名
4.修改用户所在组:usermod -g 组名用户名
5.修改用户登陆的初始目录:usermod -d 目录名用户名
6.添加组:groupadd 组名
7.创建用户并指定所在组:useradd -g 组名用户名
8.查看系统中所有组的信息:cat /etc/group
9.查看系统中所有用户的信息:cat /etc/passwd
-------------------------------------------------split line---------------------------------------------------------
网络有关的命令:
1.监控网络状态信息:netstat -an
2.显示数据包经过历程:traceroute
3.查看路由表:route
-------------------------------------------------split line---------------------------------------------------------
进程监控相关命令:
--ps命令和top命令--
ps命令用于查看当前系统中,哪些进程正在执行,该命令为静态显示命令
命令行:ps -aux
命令行:kill 进程号
命令行:kill -9 进程号
top命令用于查看当前系统这那个所有的进程信息,该命令为动态显示命令
输入top命令,会出现如下格式的结果
top - 15:27:56 up 20 min, 2 users, load average: 0.27, 0.23, 0.23 |
Tasks: 204 total, 2 running, 201 sleeping, 0 stopped, 1 zombie |
Cpu(s): 2.1%us, 0.9%sy, 0.1%ni, 96.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st |
Mem: 6023200k total, 1312304k used, 4710896k free, 34960k buffers |
Swap: 975868k total, 0k used, 975868k free, 705768k cached |
- 15:27:56 up:当前时间
20 min:已经启动时间
2 users:系统中的用户数
load average: 0.27, 0.23, 0.23:当前系统负载情况(若3个数字的平均值>0.6说明负载过重)
Tasks: 204 total:当前进程数
1 zombie:僵尸进程,即已经结束但仍占用内存的进程
Cpu(s): 96.9%id(le):CPU剩余使用情况
Mem:内存使用情况
Swap:交换空间(类似windows虚拟内存)使用情况
-------------------------------------------------split line---------------------------------------------------------
系统命令转换命令:
用户自定义命令代替指定命令:alias 自定义命令=‘置顶命令’
-------------------------------------------------split line---------------------------------------------------------
当用ls -l查看相关信息时,系统显示的结果行各个部分代表的含义:
eg:-rwxrwxr-x 1 creator creator 8380 3月 4 15:29 another
第一部分:-rwxrwxr-x代表该文件的操作权限
-rwxrwxr-x分为-(文件类型)、rwx(所有者权限)、rwx(所在组权限)、r-x(其他组权限)四部分
-代表文件,若显示d表示目录,若显示l表示链接
r代表可读,一般用4表示
w代表可写,一般用2表示
x代表可执行,一般用1表示
第二部分:creator代表该文件的所有者
第三部分:creator代表该文件的所在组
第四部分:8380代表该文件的大小
第五部分:3月 4 15:29代表最后修改的日期
第六部分:another代表文件名
-------------------------------------------------split line---------------------------------------------------------
linux分区:
首先是有关于硬盘分区的,一个硬盘一般要分一个主分区,用来安装系统,还有多个扩展分区。对于一个硬盘,主分区数+扩展分区数必须<=4,主分区可以直接使用,扩展分区必须进行二次分区才能使用。扩展分区必须进一步分成逻辑分区,逻辑分区的数量不限,可以直接使用。
接下来是摘自视频里的一段话
:对windows用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定这个分区上的文件和目录,它们的文件结构都是独立的。
:对linux用户来说,无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。linux每一个分区都是用来组成文件系统的一部分,因为它采用了一种叫“载入”的处理方法,它的整个系统中包含了一整套文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
对于这段话,目前我的理解是:不同于windows每个分区的文件结构是独立的,在linux中,不管有几个文件夹,总的就是一个根目录(“/”),每个文件夹之间不是独立的,它采用了挂载的方式。比如:boot目录下的文件是存放在a分区,实际上是a分区挂载在了boot目录下,所以通过boot目录可以访问到a分区的内容,所以可以对boot目录进行卸载,取消boot目录和a分区之间的关系,也可以建立一个新的文件夹,然后将某个分区挂载在这个新建文件夹上,这样就可以通过这个新建文件夹来访问分区中的内容,与windows是不同的。
与挂载,卸载,内存空间查看有关的命令:
1.挂载某个设备:mount 设备名称挂载点
2.卸载某个设备:umount 设备名称
3.查看磁盘使用情况:df -l
4.查看某个目录是在哪个分区:df 目录全路径
5.查看linux系统分区的具体情况:fdisk -l
当用fdisk(似乎要root权限,用普通权限没反应)命令查看分区的具体情况时,会显示如下格式的内容:/dev/sda3 41172992 245972991 102400000 7 HPFS/NTFS/exFAT
dev表示设备
sd表示硬盘的种类,如果是hd则为ide硬盘,sd为scsi硬盘(我的是sata,百度了下好像和scsi有区别,不懂这个地方)
a表示第一块硬盘,如果有b,则为第二个硬盘
3表示第几个分区,1~4表示主分区或者扩展分区,5开始表示的是逻辑分区,比如sda3表示第一个scsi硬盘的第三个主分区或者扩展分区
-------------------------------------------------split line---------------------------------------------------------
Shell:
当我们在终端中输入命令行时,shell负责将我们输入的命令行解析成系统能够识别的命令并执行。除此之外,shell还能用于进行程序设计,类似windows中的批处理文件。
shell有不同的种类,例如:
名称 |
命令名称 |
Bonrne |
/bin/sh |
C |
/bin/csh |
Kom |
/bin/ksh |
查看当前系统有几种shell,命令行如下:
ls -l /bin
可以选择系统中采用何种shell,命令行如下:
chsh -s /bin/csh
可以查看当前系统中使用哪种shell,命令行如下:
env
shell具有命令行补全功能,比如输入命令m,双击tab,系统会显示所有以m开头的命令行
-------------------------------------------------split line---------------------------------------------------------
crontab:
任务调度命令,是指系统在某个时间执行的特定的命令或程序
设置任务调度命令:crontab -e
当输入该命令,会跳出一个可编辑文本框,在其中输入需要执行的相关命令,格式如下:
* * * * * 需要执行的命令
星号分别表示:分钟 小时 日期 日历 星期 *表示每单位执行一次,也可以用相应的数字表示
例:每天2:00执行date命令:2 * * * * date
如果有多个任务需要同时执行,有两种常用处理方法:
1.全部写入crontab -e中
2.采用shell编程,写一个可执行文件,然后在crontab -e中执行该文件
例:* * * * * /root/test.sh
其他crontab命令:
1.crontab -r:终止所有任务调度
2.crontab -l:列出当前有哪些任务调度
-------------------------------------------------split line---------------------------------------------------------
still。。。