1, 什么是Linux?
很多时候,我们学习某个东西的第一反应就是这个问题,但是,这个问题在目前还真没法回答。在哪儿有答案,后面的所有!
2,Linux的一些基本原则
1)有目的单一的小程序组成,组合小程序完成复杂的任务。
2)一切皆文件
3)尽量避免捕获用户接口
4)配置文件需保存为纯文本格式
3,linux中的操作:
1)Linux主要是采用cli接口,也就是说我们一般都是通过命令来完成相关操作,为我们提供cli接口的额主要是shell,shell有很多种,包括sh,bash,csh,zsh,ksh,tcsh,其中通常使用bash
2)命令提示符,prompt,#:root $:普通用户
3)命令格式: 命令(command) 选项(option) 参数(argument)
选项:短选项 - 长选项-- ;多个选项可以组合:-a -b=-ab
参数:命令的作用对象
4)命令的输入口,打开虚拟终端:Ctrl+Alt+F1-F6,即可使用命令对系统进行操作
5)命令的类型:①内置命令(shell 内置),内部,内建
②外部命令,这样的命令在文件系统中的某个路径下有一个命名名称相对应的可执行文件
4,常用命令讲解:
ls (列出当前目录下的文件)
-l 会显示文件的长格式(即包括文件的权限,文件的大小,文件的创建日期,文件的名字,文件的类型)
补充:关于Linux的文件类型表示:① - :表示普通文件(file)
② d :表示目录文件(directory)
③ b : 块设备文件(block)
④ c : 字符设备文件(charactor)
⑤ l : 符号链接文件(symbolic link file)
⑥ p : 命令管道文件(pipo)
⑦ s : 套接字文件(scokot)
-h 作单位的转换
-a 这个主要是显示以“ . ”开头的隐藏文件
-d 显示目录自身的属性
-i index node 索引节点
-r 逆序显示
-R 递归显示
具体操作
cd 目录装换(change directory)
cd后面主要是跟上你要转换的文件夹,然后就OK了
cd的几个特殊用法:
cd - :在当前目录和前一次目录之间切换
cd ~ username: 进入指定用户的家目录
cd~ :进入当前用户家目录
man/help 获取命令的使用帮助
help和man都可以获取到某个命令的使用详情,类似于命令字典,但是其实针对的命令类型是不同的
内部命令: command --help
外部命令: man command
补充:①获取命令手册 man command/what's command
②使用man结果出的内容解读
name: 命令名称及功能简要说明
synopsis: 用法说明,包括可用选项
options: 说明每一个选项的含义
files : 此命令相关的配置文件
bugs : 如果遇到bug了,可以报告给该email
example : 实例
see also: 另外参照
③查看在线文档:info command
补充2:man 很强大,该手册分了很多的section(章节),使用man时可以根据不同的section来浏览
1 -commands(普通的命令)
2 -system calls(系统调用)如open,write之类,通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 -library calls(库函数)printf,fread
4 -special files 是特殊文件,也就是/dev下的各种设备文件
5 -file formats and convertions 指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 -games for linux 给游戏留的,有个游戏自己定义
7 -macro packages and conventions 附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 -system management commands 系统管理用的命令,这些命令只能由root使用,如ifconfig
9 -other 其他
-想要指定某个section就直接在man后面加上数字,比如:
man 1 ls
man 3 printf
5,常用的文件操作命令:
目录管理
1)mkdir 创建目录
mkdir -pv /root/test 创建目录/root/test
补充: linux中对文件的命名规则①长度不能操作255 ②不能使用反斜杠当文件名 ③Linux文件命名严格区分大小写
2)rmdir 删除目录(只能删除空目录,如果我们需要改目录下的东西都删除,需要使用递归[recursion]删除,则可用rm -r,一般不建议使用)
3)tree 查看目录树
文件管理
补充:在linux中,关于查看一些文件,命令,状态的常用命令 ①file[目录或文件]:查看文件属性
②type[commands]:查看命令属性
③stat[目录或文件] :stat以文字的格式来显示inode的内容
1) 创建文件,touch(其实touch主要用来修改文件时间戳,如果没有改文件,则会创建一个,所以可以用来当创建文件命令)
nano ,是一种Linux的文本编辑器(个人感觉不是太好用啊)
2) 删除文件:这个没有什么好说的,就是rm
3) 复制/移动: cp [选项] 源文件或目录 目标文件或目录: -r 递归复制 -i 交换式 -f 如果存在,强行覆盖
举个栗子:cp file1 file2 //拷贝文件file1并将其命名为file2
cp /root/test / *、 /tmp //拷贝test下的文件到tmp目录下
cp -r /home/tomcat/ /tmp/bak //将目录下的所有目录包括子目录陆续复制到另外一个目录
cp -p install.log.syslog install.log.syslog.bak1 //复制时保留文件属性(保存与源文件相关联的修改日期、时间和访问控制列表等)
cp cp -i /var/log/* ./ //以交换形式拷贝文件
mv [选项] 源文件或目录 目标文件或目录
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到 一个目录的情况,此时目标目录在前,源文件在后。
注意:在copy的过程中,只会有一个源目标
文本处理
1) 查看文本 cat, tac(与cat相反),more,less,head,tail
说明: cat 由第一行开始显示文件内容
tac 与cat相反,从最后一行开始显示内容
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
less 与more雷同,但是比more更好的是,他可以往前翻页!
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
head 只看头几行
head [-n number] 文件
tail 只看尾巴几行
tail [-n number] 文件 -f:表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
...一般默认情况下都是显示10行...
2) 处理文本 cut,join,uniq,sed,awk
....待补充....