Ubuntu学习日记--Lesson1:Linux基础和常用命令

版权生命:文章系原创,转载请注明出处,多谢!

为了在Linux系统下用深度学习框架caffe,系统补习了一下Linux操作的知识,做些笔记,以备复习,或随时查看。

Lesson1:Linux基础和常用命令

#**************************************************************************
Linux版本  
	内核版本 2.6.18(主次末)www.kernel.org
	发行版本 redhat,ubuntu,centOS等
开源软件:源代码开源,可修改

#**************************************************************************
Linux与Windows系统的不同	
	1.严格区分大小写
	2.所有内容以文件的形式保存,包括硬件---一切内容皆文件
Linux不靠拓展名区分文件类型,而是靠权限区分:(常见的拓展名除外,这些约定俗成,只是习惯给管理员操作,可以不写,谢了更好,有颜色区别等优点)
	压缩包:.gz  .bz2  .tar.bz2  .tgz(不同的压缩,解压缩方法)
	二进制软件包:.rpm
	网页文件:.html  .php	
	脚本文件:.sh
	配置文件:.conf
Windows下的程序不能直接在Linux中安装和运行(可以通过模拟器安装和执行),提高安全性
字符界面的优势:
	占用系统资源更少
	减少了出错,被攻击的可能性,安全
虚拟机VMware
#**************************************************************************
分区Partition:
	柜子内空间,逻辑上分隔---比如CDE,一开始按照需求规划好的。
		规矩:
			主分区:最多只能4个
			拓展分区:最多只能有1个;主分区+拓展分区最多有4个;不能写入数据,只能包含逻辑分区(是逻辑分区的容器)
			逻辑分区:可以有很多(a,b,软驱名字;c主分区1;最多23个(26-3))
	格式化:每个分区,打小格的过程。根据用户选定的文件系统(FAT16,FAT32,NTFS,EXT2,EXT3,EXT4,越来越先进),在分区中划分一片用于存放文件分配表,目录表等用于文件管理的磁盘空间。
		1.分区被分割为等大小的数据块block,默认4kb。文件被非连续放置。
		2.二维表:ID号(i节点号 Inode),修改时间,权限,block号		
#**************************************************************************
硬件设备文件名
	IDE硬盘		/dev/hd[a--d]                “/”代表根目录   dev:一级目录,保存的是硬件设备名;hd:描述硬盘的不同接口
	SATA/USB硬盘	/dev/sd[a--p] 
	光驱		/dev/cdrom或 /dev/hdc
	打印机(usb)	/dev/usb/lp[0--15] 
	鼠标		/dev/mouse
分区(挂载点)的设备文件名
	/dev/hda1	IDE硬盘接口,a:第一块硬盘;1:第一个分区(1234主分区专有,5之后给逻辑分区使用);
	/dev/sda1	SCSI硬盘接口,SATA硬盘接口
	挂载(目录作为盘符):
		/ 根分区
		swap分区 交换分区,内存两倍
		/boot 启动分区,200M
#****命令基本格式**********************************************************************
3000  突击60--70个最常用命令,每个三遍以上
lx@lx-B5400:~$ 
lx@lx-B5400:/$ 
root@lx-B5400:~#
当前登陆用户名@主机名:当前用户所在目录(家目录)$或#   #(lx$的家目录(~表示):/home/lx;root#的家目录:/root)(/是根目录)
pwd 显示当前所在的位置
cd 目录切换
#命令[选项][参数]
	[]:可选
	当有多个选项时,可以写在一起
	-a 等价于 --all
ls [选项][文件或目录]
	-a 显示所有文件,包括隐藏文件
	-l 显示详细信息
	-d 查看目录属性(目录本身,而不是其下的文件)
	-h 人性化显示文件大小(以kb为单位)
	-i 显示inode
drwxr-xr-x   4 root root  1024  9月 20 17:52 boot
文件类型:
	-  (-文件  d目录  l软连接文件)(另外,块设备文件,字符设备文件,套接字文件,管道符文件)
权限:
	r--读    w--写    x--执行
	u所有者 g所属组 o其他人
	引用计数  lx所有者 lx所属组 大小(字节) 最后修改日期
ls -ldh caffe
drwxrwxr-x 17 lx lx 4.0K 10月 17 14:15 caffe
#****目录处理命令**********************************************************************
目录处理命令
	建立:mkdir -p [目录名](make directory)
		-p递归创建
	mkdir -p japan/cangls
	切换目录: cd [目录名] (change directory) 
		cd ~  进入当前用户家目录 ~代表家目录 
		cd -  进入上次目录
		cd .. 进入上一级目录
		cd .  进入当前目录,.代表当前目录
			相对路径:参照当前所在目录,进行查找 cd ../japan/cangls (在当前目录,找上一级目录,然后再找/japan)
			绝对路径:从根目录开始指定,在任何目录下都能进入指定位置 cd /home/lx/caffe/fast-rcnn
	显示当前目录:pwd
	删除目录:rmdir [目录名] (remove directiries)(但不可删除非空目录)
	rmdir japan/cangls
		rm  [目录名] (可以删除非空目录)  (-r:可显示非空目录  -f 强制:没有提示信息)
	rm -rf /  Linux系统自杀!!
	复制命令:
	cp [选项][原文件或目录][目标目录] copy  (可 改名复制文件)
		选项:
			-r 复制目录 (当复制目录时。不加则是复制文件)
date 显示当前系统日期时间
ctrl+L 清屏
ll 等价 ls -l   (命令别名)
#**************************************************************************
常用目录的作用
	/ 根目录  最高一级的目录
	/bin 命令保持目录。(根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的。区别在于bin普通用户就可以读取,sbinRoot才可以读取)
	/boot 启动目录,保存的用户的启动数据,启动相关文件。
	/dev 设备文件保持目录
	/etc 配置文件保存目录
	/home 普通用户的家目录  /root
	/lib 系统库保存目录(函数库,用的时候调用)
	/mnt 系统挂载目录(挂载外设)
	/media 挂载目录
	/tmp 临时目录,临时数据放置
	/sbin 命令保存目录
	/proc 直接写入内存的  (/proc和/sys保存的是内存的挂载点)
	/sys
	/usr 系统软件资源保存目录
		/usr/bin  系统命令
		/usr/sbin 系统命令
	/var 系统相关文档

	/home   /tmp  可以随意做东西的位置
#****链接命令**********************************************************************
产生链接文件:
ln -s [原文件][目标文件]  link
	-s创建软连接
		1.类似windows的快捷方式
		2.有自己的i节点和block块,但数据块中保存的是原文间的文件号和i节点号,没有实际的数据
		3.软连接的文件权限都为:lrwxrwxrwx
		4.删原,软连接不能用。一改全改。
		5.原文件要写绝对路径。
	-h创建硬链接
		1.拥有相同的i节点和block块,可以看做是同一个文件
		2.可通过i节点识别,不能跨分区,不能针对目录使用
		3.一修改,都修改。删除其中任何一个其他的不受影响
#****文件搜索命令**********************************************************************
文件搜索命令 locate (比 find 快 )
	locate 文件名  在后台数据库按文件名搜索
		/var/lib/mlocate  
			#locate命令搜索的后台数据库  updatedb强制更新数据库
			#搜索的规则在 /etc/updatedb.conf配置文件中。
			PRUNE_BIND_MOUNTS="yes"#筛选规则生效
			PRUNENAMES=".git .bzr .hg .svn"  #不搜索,文件名中包括这些关键字的文件
			PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs" #这些目录中更新的文件就不搜索了
			PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"  #不筛选这些文件系统
			
命令搜索命令 whereis which
	whereis 命令名  (只能搜索系统命令,搜索命令所在的路径及帮助文档所在的位置)  (whoami  whatis)
		-b 只查找可执行文件
		-m 只查找帮助文件
	which 命令名  #搜索命令所在路径和别名
文件搜索命令 find 最强大
	find [搜索范围][搜索条件]  #搜索文件
	#如果需要匹配,使用通配符,通配符是完全匹配。
		Linux中的通配符:
			*  匹配任意多个内容
			?  匹配任意一个字符
			[] 匹配任意一个中括号内的字符  ab[cd] 搜索abc或abd文件  *[cd]搜索以c结尾或者以d结尾的文件
		find / -name install.log
		find / -name "install.log*"   find / -name "*" #所有文件
		-name
		-iname 不区分大小写
		-user 按照所有者搜索
		-nouser 查找没有所有者的文件(没有所有者的文件:1.内核创建的文件;2.外来文件)
		find /var/log -mtime +10 #查找10天前修改的文件
			-10 10天内修改
			10  10天当天修改的文件
			+10 10天前修改的文件
			atime 文件访问时间
			ctime 改变文件属性
			mtime 修改文件内容
		find .-size 25k #查找文件大小是25kb的文件 (.代表当前文件夹)
			-25k 小于25k (25M时也可执行)
			 25k 
			+25k 大于25k
		find .-inum 262422 #查找i节点是262422的文件
		find /etc -size +20k -a -size -50k #查找/etc目录下,大于20k并且小于50k的文件
			-a and 与 都满足
			-o or  或 两个条件满足一个就行
		find /etc -size +20k -a -size 50k -exec ls -lh {}\; 
		#查找/etc 目录下,大于20k并且小于50k的文件,并显示详细信息。 
		#-exec ls -lh {} \; 对搜索结果执行操作,exec的标准格式,第一条的结果给第二条处理
字符串搜索命令 grep
	grep [选项] 字符串 文件名 #在文件当中匹配符合条件的字符串
		-i 忽略大小写
		-v 不包含这些字符串的文件
	grep -i "size" a.conf
	
find 和 grep 的区别:
	find 在系统当中搜索符合条件的文件名,通配符匹配,完全匹配
	grep 在文件当中搜索符合条件的字符串,正则表达式进行匹配,包含匹配(只要有,就能匹配到)
#**************************************************************************
环境变量:定义的是系统搜索命令的路径。(比如,找到 pwd 这个命令,是在PATH的路径下逐个查找的)
	/home/lx/anaconda2/bin:/home/lx/anaconda2/bin:/usr/local/cuda-7.5/bin:/usr/local/sbin:/usr/local/bin
Linux中的通配符:
	*  匹配任意内容
	?  匹配任意一个字符
	[] 匹配任意一个中括号内的字符
扇区:默认512k 
#****帮助命令**********************************************************************
man 命令 #获取指定命令的帮助
	man ls #查看ls的帮助
	man man 
man -f 命令 #查看命令拥有哪个级别的帮助  相当于 whatis 命令
	man 5 passwd  #密码
	man 4 null 
	man 8 ifconfig
man -k 命令 #查看和命令相关的所有帮助  相当于:apropos 命令
	apropos passwd

命令 --help #查看命令的选项
help shell内部命令 #获取shell内部命令的帮助
	whereis cd #确定是否是shell内部命令
	help cd #获取内部命令帮助



#**************************************************************************



你可能感兴趣的:(Linux学习-从入门到放弃)