基础命令
命令格式:主命令 选项 参数 (操作对象)
列出目录下的内容(list):ls
ls -1 以长列表方式列出 =ll
ls -r 逆序列出
ls -d 查看当前目录
ls -ld 长列表列出当前目录的详细信息
ls -lh 显示目录或文件大小
ls -a 列出隐藏文件,包括.和..
ls -A 列出隐藏文件,不包括.和..
ls -i 显示文件索引节点号(inode).一个索引节点代表一个文件,在linux中保持在磁盘分区中的文件都给它分配一个编号,称为索引节点号inode。
man ls 查看ls的使用手册
enter键可以一行一行的翻,空格键可以一页一页的翻
按q键退出
命令分为两类:
由shell程序的自带的命令:内置命令(builtin)
由独立的可执行文件,文件名即命令名:外部命令
选项:指定命令的运行特性,指明要运行命令中的哪一个功能代码
选项有两种表现形式:
短选项:例如:-l , -d
如果同一命令同时使用多个短选项,多数可合并
注意:有些命令的选项没有-
长选项:例如--help,--human-readable
注意:有些选项可以带参数,此称为选项参数
参数:命令的作用对象:命令对什么生效
注意:不同的命令的参数,有些命令可同时带多个参数,多个之间以空白字符分隔。
Linux的文件类型:
- 普通文件,类似于Windows的记事本
d 目录文件,类似于文件夹
c 字符设备文件,串行端口设备,顺序读写,如:键盘
b 块设备文件,可供存储的接口设备,随机读写,如:硬盘
p 管道文件,用于进程间的通信
l link,类似于windows中的链接文件
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode。
(1)符号链接又叫做软链接,和原文件不是一个文件。例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。符号链接记录的是目标的path。符号链接可以跨越文件系统,以可以为目录建立。软连接有自己的node,是Linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。
创建连接文件:ln -s 源文件 链接文件
(2)硬链接,只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当移动或者删除原始文件时,硬链接就不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接记录的是目标的inode
创建硬链接:ln 原文件 新文件
s 套接字文件,通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信
FHS:filesystem hierarchy standard文件系统层级标准,定义了在类Unix系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置于哪个目录下。
可执行文件:指的是可以由操作系统进行加载执行的文件
FHS采用树形结构组织文件。FHS文件系统层级图
Linux里面有哪些目录:
/ 根目录,通常不在这里存储文件
/bin 可执行文件,ls,cd
/sbin 可执行文件
/boot 开机启动的文件,包括linux内核以及开机菜单与开机所需配置文件等
/dev 设备文件,任何设备与接口设备都是以文件形式存在于这个目录的
/root root用户的主目录
/home 普通用户的主目录
/mnt 挂载点目录
光盘必须和/下的某个目录节点建立联系才能使用。
把光盘和指定的挂载点目录建立联系的过程叫做挂载。
Mount/dev/sr0/mnt
/media 媒体目录,也是挂载点目录
/opt 可选目录,存放第三方软件包和数据文件
/var 可变目录,用于存放经常变化的文件,如日志文件
/etc 配置文件
/lib 系统的函数库
/proc 该目录是一个虚拟文件系统,它放置的数据都在内存当中
/run 系统运行时所需文件
/usr 放置的数据为可分享的与不可变动的,unix操作系统软件资源所放置的目录,而不是用户数据
/srv service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录
/tmp 让一般用户或者是正在执行的程序暂时放置文件的地方
/sys 这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要是记录与内核相关的信息
添加指定命令别名:alias
临时生效 alias目标命令名称=‘需要执行的命令’ alias hh=ls
删除指定的命令别名:unalias
永久有效 vim~/.bashrc 别名的配置文件里面设置
Source.bashrc 使其生效
快捷键
ctrl+d输入已结束。在shell下相当于exit
ctrl+c键盘中断请求,终止当前的命令
ctrl+s ctrl+q暂停/恢复屏幕输出
ctrl+l清屏,相当于clear
Tab自动补全命令与文件名
Tab双击:可以列出所有可能匹配的选择
ctrl+u 删除光标至行首的内容
ctrl+k 删除光标至行尾的内容
ctrl+a 跳到命令行行首
ctrl+e 跳到命令行行尾
ctrl+左右箭头,支持按单词跳转
与时间有关的命令
输出和更改日期时间:data(软件、系统时间)
更改日期的格式 月日时分年.秒
date -s ’’’’ ’’
data -s 只有root用户才能设置,其它只能查看
data -s 20160813 日期为20160813,时间为00:00:00
data -s 01:01:01 设置具体时间,不会对日期做更改
data -s “01:01:01 2016-08-13” 设置全部时间
data -s “01:01:01 20160813” 设置全部时间
data -s “2016-08-13 01:01:01” 设置全部时间
data -s “20160813 01:01:01” 设置全部时间
查看硬件时间:clock
查看硬件时间:hwclock
-w 系统时间给硬件时间
-s 硬件时间给系统时间
查看日历:cal
cal 查看当年当月的日历
cal 年份 查看一年日历
cal 月份 年份 查看当年当月的日历
cal -1 查看该月的日历
cal -3 查看前一个月,本月,下月的日历
将输入接到标准输出(从键盘输入,从显示器输出):echo
创建文件:
文件命名规则:
- 不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
- 文件名不能超过255个字符
- 区分大小写file FILE fILe
- 目录也是文件,在同一路径下,两个文件不能同名
创建多个普通文件
方法1:touch 文件名1 文件名2 文件名3
方法2:touch {文件名1,文件名2,文件名3}
touch{1,2}{3,4}
touch abc{1..100}
向文件里写入数据:
重定向:>
追加定向:>>
查看文件的内容:cat
stat查看文件的详细信息
touch不仅可以创建空文件,还可以改变文件的修改时间
atime access time 看了一下内容 cat
mtime modify time 文件内容被改变了,ctime也会发生改变
ctime change time 元数据被改变,重命名
创建目录文件:mkdir 目录名
-p parents父目录
-v verbose详细信息
删除普通文件和目录文件:rm(命令别名默认带-i, 该选项用来提示用户进行交互)
删除当前目录下的所有文件(*代表所有):rm -rf *(此命令无提示,直接删除,慎用!!!)
复制文件:
复制普通文件:cp
复制目录文件:cp -r
移动文件:mv, 等同Windows里面的剪切,移动之后原文件消失
作业题
1.在root用户的主目录下创建两个目录分别为haha和hehe,复制hehe目录到haha目录并重命名为apple。
[root@localhost ~]# mkdir haha
[root@localhost ~]# mkdir /root/hehe
(第一种)[root@localhost ~]# cp -r hehe haha/apple
(第二种)[root@localhost ~]# cp -r /root/hehe /root/haha
[root@localhost haha]# mv hehe apple 移动hehe文件相当于重命名
2.将hehe目录移动到apple目录下,在haha目录下创建一个普通文件为heihei.txt。
[root@localhost haha]# mv /root/hehe /root/haha/apple/
[root@localhost apple]# touch ../heihei.txt
3.写一个命令别名为abc,它实现的功能为:列出上一题haha目录下的详细内容。
[root@localhost haha]# alias aoe='ll /root/haha'
4.在/usr/local/etc下创建一个目录为mulu1,创建一个普通文件为wenjian1。
在/usr/local/bin创建一个目录为mulu2, 创建一个普通文件为wenjian2。创建成功后使用ls命令以及它的选项来检查该题的正确性
[root@localhost ~]# cd /user/local/etc
[root@localhost etc]# mkdir mulu1
[root@localhost etc]# touch /usr/local/etc/wenjian1
[root@localhost ~]# cd /user/local/bin
[root@localhost bin]# mkdir mulu2
[root@localhost bin]# touch /usr/local/bin/wenjian2
[root@localhost bin]# ls /usr/local/etc/ /usr/local/bin/
- 温馨提示:使用echo、cat、>、>>命令。
(1)/下有目录text,text里面有文件b和g,文件b的内容为b is a boy, g的内容为g is a girl。
[root@localhost bin]# mkdir /text
[root@localhost bin]# cd /text/
[root@localhost text]# echo b is a boy > b
[root@localhost text]# cat b
b is a boy
[root@localhost text]# echo g is a girl > g
[root@localhost text]# cat g
g is a girl
(2)在root的主目录里面创建文件bg,文件内容为what is bg ,将根下面的b和g的内容追加到bg文件下。
[root@localhost text]# echo what is bg > /root/bg
[root@localhost text]# cat b g >> /root/bg
[root@localhost text]# cat /root/bg
what is bg
b is a boy
g is a girl
5.(1)在根下面创建一个目录test,在test里面有一个文件为c, 文件内容为c is a cat。
[root@localhost text]# mkdir /test
[root@localhost text]# echo c is a cat > /test/c
[root@localhost text]# cat /test/c
c is a cat
(2)在root的家目录下创建一个目录为workbook,将test目录移动到workbook下面并重命名为practice。
[root@localhost text]# mkdir /root/workbook
[root@localhost text]# cd ~/workbook/
[root@localhost workbook]# mv /test . 其中“.”将test移动到当前目录
[root@localhost workbook]# ls
test
[root@localhost workbook]# mv test/ practice
[root@localhost workbook]# ls
practice
(3)将文件c复制到根下并重命名为right。
[root@localhost workbook]# cp practice/c /right
[root@localhost workbook]# cat /right
c is a cat