Linux操作系统学习笔记
关于Linux详细介绍可以参见:http://blog.csdn.net/hguisu/article/details/6122513
关于Linux的常用命令可以参见:http://blog.csdn.net/xiaoguaihai/article/details/8705992
1、Linux操作系统的安装
目前基本上都是基于windows操作系统上的安装,在安装在windows上搞得虚拟机上加载安装Linux系统,主要有CentOS(企业服务用这个比较多)和Unbantu(个人笔记本安装用这个比较多)两种使用较多。
2、系统结构

- 内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。 
- shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
 目前主要有下列版本的shell。- Bourne Shell:是贝尔实验室开发的。
- BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。
- Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
- C Shell:是SUN公司Shell的BSD版本。 
 
- 应用程序
3、文件系统
Linux的文件系统和MS-Windows的文件系统有很大的不同,对于微软视窗系统的文件结构我在这里不再多说,我们主要了结一下linux的文件系统结构. linux只有一个文件树,整个文件系统是以一个树根"/"为起点的,所有的文件和外部设备都以文件的形式挂结在这个文件树上,包括硬盘,软盘,光驱,调制解调器等,这和以"驱动器盘符为基础的MS-Windows系统是大不相同的.Linux的文件结构体现了这个操作系统简洁清析的设,常我们能够接触到的linux发行版本的根目录大都是以下结构:
/bin /sbin /etc /lost+found /var /boot /root/home /mnt /tmp /dev /lib /proc /usr
现在我将这些目录给大家做一个简要的介绍:
- 1. /bin和/sbin:使用和维护UNIX和Linux系统的大部分基本程序都包含在/bin和/sbin里,这两个目录的名气之所以包含bin,是因为可执行的程序都是二进制文件(binary files).
/bin目录通常用来存放用户最常用的基本程序,如:
login
Shells
文件操作实用程序
系统实用程序
压缩工具
/sbin目录通常存放基本的系统和系统维护程序,如:
fsck fdisk mkfs shutdown lilo init
存放在这两个目录中的程序的主要区别是:/sbin中的程序只能由root(管理员)来执行.
- 2. /etc:这个目录一般用来存放程序所需的整个文件系统的配置文件
其中的一些重要文件如下:
passwd shadow fstab hosts motd profile shells services lilo.conf
- 3. /lost+found:这个目录专门是用来放那些在系统非正常菪机后重新启动系统时,不知道该往哪里恢复的"流浪"文件的。
- 4. /boot:这个目录下面存放着和系统启动有关系的各种文件,包括系统的引导程序和系统核心部分。
- 5. /root:这是系统管理员(root)的主目录。
- 6. /home:系统中所有用户的主目录都存放在/home中,它包含实际用户(人)的主目录和其他用户的主目录.
- 7. /mnt:/mnt目录通常包含一些子目录,每个子目录是某种特定设备类型的一个安装点。
按照约定,像CD-ROM,软盘,Zip盘,或者Jaz这样的可以动介质都应该安装在/mnt目录下,例如:
/cdrom /floppy /zip /win ....
如果我们要使用这些特定设备,我们需要用mount命令从/dev目录中将外部设备挂接过来。在这里大家可能看到了有一个win的目录,这是我的机子上面做的一个通向windows文件系统的挂接点,这样我通过访问这个目录就可以访问到我在windows下面的文件了。但如果你的windows文件系统是NTFS格式,那么这个办法就不行了。
- 8. /tmp和/var:这两个目录用来存放临时文件和经常变动的文件。
- 9. /dev:这是一个非常重要的目录,它存放着各种外部设备的镜像文件,其中有一些内容我们是要牢牢记住的。例如第一个软盘驱动器的名字是fd0;第一个硬盘的名字是hda,硬盘中的第一个分区是hda1,第二个分区是hda2;第一个光盘驱动器的名字是hdc;此外,还用modem和其他外设的名字,在这么多的名字中,我们只需要记住最最常用的那几个外设就可以了。
- 10. /usr:按照约定,这个目录用来存放与系统的用户直接相关的程序或文件,这里面有每一个系统用户的主目录,就是相对于他们的小型"/"。
- 11. /proc:这个目录下面的内容是当前在系统中运行的进程的虚拟镜像,我们在这里可以看到由当前运行的进程号组成的一些目录,还有一个记录当前内存内容的kernel文件。
5、常用命令:命令+参数项+所操作文件
- ifcofig 网卡名 IP地址 //配置网络
- telnet 主机名/IP 端口号 //远程登录
- ls : 这个命令就相当于dos下的dir命令一样,这也是Linux控制台命令中最为重要几个命令之一。ls最常用的参数有三个: -a -l -F。
- ls -a:Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来。
- ls -l(这个参数是字母L的小写,不是数字1):这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(最上面两行是我自己加的):
 
位置1 2 3 4 5 6 7
文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名
drwx------ 2 Guest users 1024 Nov 21 21:05 Mail
-rwx--x--x 1 root root 89080 Nov 7 22:41 tar*
-rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*
lrwxrwxrwx 1 root root 4 Nov 24 19:30 zcat->gzip
-rwxr-xr-x 1 root bin 308364 Nov 29 7:43 zsh*
-rwsr-x--- 1 root bin 9853 Aug 15 5:46 su*
下面,我为大家解释一下这些显示内容的意义。
第一个栏位,表示文件的属性。
Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。
- 第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如lrwxrwxrwx;如果是以一横"-"表示,则表示这是文件。
- 第2~4个小格表示当前用户的权限,r--可读,w--可写,x--可执行
- 第5~7个小格表示当前用户所在组的权限,r--可读,w--可写,x--可执行
- 第8~10个小格表示其他用户的权限,r--可读,w--可写,x--可执行
 
 
- Ls -F(注意,是大写的F):使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。
 
- 显示当前目录所有的文件和目录信息
> ls       //list
   > ls  XX目录     //查看指定目录下边的文件信息
- 显示当前文件目录位置
> pwd
- 目录之间切换
> cd  目录名字
   > cd  ..   切换到上级目录
- 切换到完全命令模式
> init 3      进入命令模式
   > init 5      进入可视化操作界面
> init 0 关机
- 用户切换到超级管理员
> su - root    //$是普通用户    #是超级管理员
   > su -
   > su root   //也可以切换到root用户,但是没有超级管理员权限
- 超级管理员切换回普通用户
> exit
- 查看当前用户是谁
> whoami
- 输出一个文件内容
> cat 具体文件
- 创建目录make directory
> mkdir  hello
   > mkdir  hello/world
   > mkdir -p first/second/third      //递归创建3个目录
- 给目录改名字move移动
> mv 旧名字   新名字
   > mv book.ods  bread.ods
   > mv first/second   first/six      //把second改名字为six
- 移动目录操作move
> mv  目标  新的地址
   > mv  bread.ods   目录
   > mv  ten/bread.ods  first   //移动,因为first目录存在
     mv  ten/bread.ods  firstt  //改名字,并且移动文件到当前目录
mv  目标  地址      //移动,只要地址是存在的目录就是移动
     mv  目标  地址      //改名字,地址只要不存在就是改名字
- 复制操作copy
> cp  源文件 复制文件
   > cp -R  目录  目标目录      //复制"目录"需要添加参数-R
   > cp 源文件  目标/新的名字   //复制的同时给起一个新的名字
- 删除目录、文件
> rm  文件      //删除单个文件
   > rmdir  目录   //删除单个目录
   > rm -rf  文件   //可以删除一切普通的目录或文件 递归recursive  强制force
     rm -rf  /     //  kill your self
- 输出文件内容
> cat  文件     //一次性输出文件全部内容
   > more  文件    //分页显示文件内容
           敲回车查看下边的内容,不支持回看
	   中间停止:q
	   显示内容百分比
   > less  文件    //分页显示文件内容
           可以通过上、下、左、右查看文件具体内容
	   停止:q
	   没有百分比显示
   > head -n  文件	//查看文件前n行内容
   > tail -n  文件	//查看文件末尾n行内容
- 计算文件行数
> wc 文件 //计算文件行数
- 创建文件
> touch filename //创建文件
- 给文件添加内容
> echo content  >  filename   //给文件添加内容[覆盖添加内容,原内容被删除]
   > echo 内容  >> filename	//给文件追加内容
   > echo 内容  >/>>  newfilename   //会创建一个新的文件,并且有添加内容[重定向方式]
- 给系统增加一个用户
user   add/mod/del
   > useradd  username		//添加一个用户
     该方式创建用户,并没有显示设置用户的组
   > useradd -g  NNN  用户名	//添加用户并设置组别
   > useradd -g  NNN  -d  目录  用户名		//添加用户并设置家目录、组别
   > useradd -u  XXX  用户名    //添加用户并显示设置用户编号
> usermod -u 用户编号 -g 组编号 -d 家目录 用户名 //修改用户
> userdel -r 用户 //删除用户,并且删除家目录
- 给系统创建组
group  add/mod/del
   groupadd  movie
   groupadd  music
   groupadd -g  XXX   组名	//添加组并设置组编号
> groupmod -n  新名字   旧名字    //修改组的名字
   > groupdel  组名    //删除组
- 查看系统用户信息
> cat /etc/passwd   用户信息
   > cat /etc/group    组的信息
- 查看具体指令使用参数方法
> man 指令
- 给用户设置密码
> passwd 用户名
Linux操作系统学习笔记的更多相关文章
- 深挖计算机基础:趣谈Linux操作系统学习笔记
		参考极客时间专栏<趣谈Linux操作系统>学习笔记 核心原理篇:内存管理 趣谈Linux操作系统学习笔记:第二十讲 趣谈Linux操作系统学习笔记:第二十一讲 趣谈Linux操作系统学习笔 ... 
- 趣谈Linux操作系统学习笔记:第二十七讲
		一.文件系统的功能规划 1.引子 咱们花了这么长的时间,规划了会议室管理系统,这样多个项目执行的时候,隔离性可以得到保证. 但是,会议室里面被回收,会议室里面的资料就丢失了.有一些资料我们希望项目结束 ... 
- 趣谈Linux操作系统学习笔记:第二十讲
		一.引子 1.计算两方面的原因 2.内存管理机制 二.独享内存空间的原理 1.会议室和物理内存的关系 和会议室一样,内存都被分成一块块儿的,都编号了号,例如3F-10就是三楼十号会议室.内存页有这样一 ... 
- 趣谈Linux操作系统学习笔记:第二十一讲
		一.分段机制 1.分段机制的原理图 2.段选择子 3.段偏移量 例如,我们将上面的虚拟空间分成以下 4 个段,用 0-3 来编号.每个段在段表中有一个项,在物理空间中,段的排列如下图的右边所示. 4. ... 
- 趣谈Linux操作系统学习笔记:第二十四讲
		一.小内存的分配基础 1.kmem_cache_alloc_node的作用 通过这段代码可以看出,它调用了kmem_cache_alloc_node函数,在task_struct的缓存区域task_s ... 
- 趣谈Linux操作系统学习笔记:第二十五讲
		一.mmap原理 在虚拟内存空间那一节,我们知道,每一个进程都有一个列表vm_area_struct,指向虚拟地址空间的不同内存块,这个变量名字叫mmap struct mm_struct { str ... 
- 趣谈Linux操作系统学习笔记:第二十六讲
		一.内核页表 和用户态页表不同,在系统初始化的时候,我们就要创建内核页表了 我们从内核页表的根swapper_pg_dir开始找线索,在linux-5.1.3/arch/x86/include/asm ... 
- 趣谈Linux操作系统学习笔记:第二十八讲
		一.引子 磁盘→盘片→磁道→扇区(每个 512 字节) ext* 定义文件系统的格式 二.inode 与块的存储 1.块 2.不用给他分配一块连续的空间 我们可以分散成一个个小块进行存放 1.优点 2 ... 
- 趣谈Linux操作系统学习笔记:第二十九讲
		一.引子 在这之前,有一点你需要注意.解析系统调用是了解内核架构最有力力的一把钥匙,这里我们只要重点关注这几个最重要的系统调用就可以了 1.mount 系统调用用于挂载文件系统:2.open 系统调用 ... 
随机推荐
- c/c++面试题(6)运算符重载详解
			1.操作符函数: 在特定条件下,编译器有能力把一个由操作数和操作符共同组成的表达式,解释为对 一个全局或成员函数的调用,该全局或成员函数被称为操作符函数.该全局或成员函数 被称为操作符函数.通过定义操 ... 
- 循环打印i值(面试题)
			/* * 下面的代码,为了实现每隔1秒说一句话, * 找出存在的问题,并改正,然后描述一下你的解决方案. * */ var arr = [ '第一句话', '第二句话', '第三句话', '第四句话' ... 
- SAP 增强-出口选找方法-全部
			■ SAP 中如何寻找增强 方法一:利用TCODE寻找增强(第二代的增强) 执行一个程序(源代码后附),在选择屏幕处输入你所需要增强的程序TCODE,执行後,就会出现一个列表,那里就有关于如何增强这个 ... 
- 【Windows批处理III】实现删除含自定字符串的文件和文件夹(搜索子目录)
			1)目的:实验室小网空间因镜像版本太多,容量告警,希望清出一部分空间 具体需求:删除E盘下,所有含rar字符串的文件: 删除E盘下,所有含hi6620字符串文件夹: 步骤: (风险请知:如果不chec ... 
- c++ 语言细节
			#include <iostream>using namespace std;int main(){ cout << "\nHello World!\n&qu ... 
- 5X + 2Y +Z = 50 的所有非负整数解
			这种题的解题方法都差不多,不停的循环,不过如果做一下细分,效率应该可以提升很多,下面把最常规效率也最低的代码贴上,有时间再优化 #include <iostream> using name ... 
- 从头开始linux-centos
			测试环境,下面二者之一CentOS-6.5-x86_64-minimal.isoCentOS-7-x86_64-Minimal-1511.iso 第一步系统检测与优化,即初始化工作,常规型的 rpm ... 
- Docker 安装及命令
			CentOS 安装 通过脚本安装:curl -sSL https://get.docker.com/ | sh通过yum安装:yum install docker-engine============ ... 
- Pandas中DateFrame修改列名
			Pandas中DateFrame修改列名 在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas ... 
- Java入门教程总目录
			Java入门教程总目录 持续更新中... 1.Java常识汇总 2.Java框架对比 3.Java技术路线 4.Java编码规范 5.Java环境变量配置 6.枚举 7.操作符 12.定时任务 
