Linux学习笔记
新的一年,辞旧迎新,新梦想,新方向。。。。
笔记是根据《鸟叔的Linux私房菜》所作。
文件与目录篇
一、文件与目录管理命令
1、ls(list)--查看文件与目录命令
命令格式:ls [选项] [目录名]
常用参数:
-l:列出长字符串,包含文件的属性与权限等数据。
-a:列出所有文件,包含隐藏文件
-d:仅列出所指定目录本身,而不列出目录内的文件数据
-R:连同子目录内容一起列出来,等于该目录下所有文件都会显示出来
-h:将文件容量以人类易读的方式(GB,KB)列出来
一般使用ll来替代ls -l:
ll会列出该文件下的所有文件信息,包括隐藏的文件,而ls -l只列出显式文件,这两个命令还是存在一定区别的
意义:
第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如lrwxrwxrwx;如果是以一横“-”表示,则表示这是文件。其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):
rwx(Owner)r-x(Group)r-x(Other)
这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。
第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。
第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。
第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。
第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。
第六个栏位,表示创建日期。以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。
第七个栏位,表示文件名。我们可以用ls –a显示隐藏的文件名。
2、cp(copy)--文件或者目录复制命令
命令格式:cp [options] source1 source2 source3...directory——多个文件拷贝到一个目录
或者:cp [options] <source file or directory> <target file or directory>——单个文件或目录的拷贝
常用参数:
-i(interactive):若目标文件已经存在,则会在覆盖时询问
-r(recursive):复制目录及目录下所有文件
-l(link):进行硬链接的连接文件创建,而非复制文件本身
-s(symbolic link):复制为符号链接文件,即快捷方式文件
-p(preserve):连同文件属性一块复制过去,而非使用默认属性
3、rm(remove)——移除文件或者目录
命令格式:rm [-fir]文件或者目录
该命令也可以用于对文件或者目录重命名。如下面将目录mvtest重命名为mvtest1,当然也可以使用rename命令
常用参数:
-f(force):忽略不存在的文件,不会出现警告信息。
-i(interactive):互动模式,在删除前会询问用户是否操作
-r(recursive):递归删除目录及目录下所有文件。
4、mv(move)——移动文件与目录、或者更名
命令格式:mv [options] source1 source2 source3...director
命令参数:
-f(force):强制的意思,如果目标文件已经存在不会询问直接覆盖
-i(interactive):互动模式,在目标文件已经存在时,询问是否覆盖
-u(update):若目标文件已经存在,且source比较新,才会更新
二、文件内容及属性查阅
1、cat(concatenate)——文件内容查看命令
命令格式:cat [options] [file]...
命令参数:
-b(number-nonblank):列出行号,仅对非空白行做出行号显示
-n(number):列出行号,对空白行也作出行号显示
-E(show-ends):显示文本行结束符号'$',不同于windows的'^M$'
-T(show-tabs):将[Tab]键以^I显示出来
-v(show-nonprinting):列出一些看不出来的特殊符号
2、more——一页一页翻动
命令格式:more[options]file 或 more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
3、head——数据选取命令:默认前十行。
命令格式:head [-n number] file
4、tail——取出后面几行
命令格式:tail [-n -number] file
命令参数:
-f(follow):即时输出追加到文件末尾的新内容,该参数可以用来监控日志文件等
5、touch——修改文件时间或者创建新文件
6、cut——分割文件中的字符串
命令格式:cut [options] [file]
命令参数:
-b(bytes):只选中指定的这些字节。
-c(characters):只选择指定的这些字符。
-d(delimiter):使用指定分界符代替制表符作为区域分界。
-f(fields):只选中指定的这些域,并打印所有不包含分界符的行。
-c的用法和-b差不多,只不过是截取的字符,而不是字节。汉字也被认为是一个字符。
-d后面根的冒号是分割文件行的的分割符:-f用来设置提取第几个域。-d一般情况下根-f一起使用,而不能和-b,-c一起使用
7、sort——排序命令
命令格式:sort [options] [file]
命令参数:
-n(number):按数值大小排序
-r(reverse):降序排序
-t(field separator):指定字符分隔符
-k(key):指定字段
-f:ignore-case--不区分大小写
-u(unique):相同内容只显示一次。这里的相同是指相邻并且内容相同。
8、uniq——报告相同的行,也可以去除相同的行
命令参数:
-d(repeated):打印出重复的行
-c(count):显示行重复的次数
9.wc(word count)——文本统计
命令参数:
-l(line):只显示行数
-w(word):只显示单词数
-c(bytes):只显示字节数
-m(chars):只显示字符数
-L(max-line-length):最长一行包含的字节数
10.tr(translate or remove)——转换或删除字符
命令格式:tr [OPTION]... SET1 [SET2]
命令参数:
-d:delete--删除指定字符
**另外还有其他命令 如 :awk sed grep **