§Linux 简介
Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
§Linux的发行版
Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
Linux具有如下优点:
Ø 稳定、免费或者花费少
Ø 安全性高
Ø 多任务,多用户
Ø 耗资源少
Ø 由于内核小,所以它可以支持多种电子产品,如:Android手机
§Linux应用领域
今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前Linux不仅在家庭与企业中使用,并且在政府中也很受欢迎。
- 巴西联邦政府由于支持Linux而世界闻名。
- 有新闻报道俄罗斯军队自己制造的Linux发布版的,做为G.H.ost项目已经取得成果.
- 印度的Kerala联邦计划在向全联邦的高中推广使用Linux。
- 中华人民共和国为取得技术独立,在龙芯过程中排他性地使用Linux。
- 在西班牙的一些地区开发了自己的Linux发布版,并且在政府与教育领域广泛使用,如Extremadura地区的gnuLinEx和Andalusia地区的Guadalinex。
- 葡萄牙同样使用自己的Linux发布版Caixa Mágica,用于Magalh?es笔记本电脑和e-escola政府软件。
- 法国和德国同样开始逐步采用Linux。
§linux电源管理
§shutdown
-c
取消关机命令-h
关机-r
重启
shutdown now # 关机
shutdown -h 30 # 30分钟后关机
shutdown -r now # 重启
shutdown -r 05:30 # 于05:30重启
shutdown -c # 取消关机
§不保存资料直接关机
# halt
# poweroff
# init 0
§重启
reboot # 重启电脑
§init命令
级别 动作
0 关机
1 救援模式
3 进入文字界面
5 进入GUI模式
6 重启
init 0 # 关机
init 1 # 救援模式
init 3 # 进入文字模式
init 5 # 进入GUI模式
init 6 # 重启
§退出登录
logout # 注销
§Linux目录结构
-
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。 -
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 -
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 -
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media:
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 -
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 -
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 -
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv:
该目录存放一些服务启动之后需要提取的数据。 -
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:
针对进程信息的proc文件系统
针对设备的devfs文件系统
针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
- /tmp:
这个目录是用来存放一些临时文件的。 - /usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 - /usr/bin:
系统用户使用的应用程序。 - /usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。 - **/usr/src:**内核源代码默认的放置目录。
- /var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
§shell
Shell基本上是一个命令解释器
Shell俗称壳(用来区别于核)
它接收用户命令,然后调用相应的应用程序。
§ls
:
ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令,因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。 对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其
他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当
前目录的信息。
主要的OPTION有:
-a 列出隐藏文件,文件中以“.”开头的均为隐藏文件,如:~/.bashrc
-l 列出文件的详细信息
-R 连同子目录中的内容一起列出
用ls -l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文
件类型,它可以是下述类型之一:
-
普通文件
d 目录
l 符号链接
b 块设备文件
c 字符设备文件
s socket文件,网络套接字
p 管道
后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读、写和执行权限。
各权限如下所示:
r 读
w 写
x 可执行。对于目录,表示进入权限。
s 当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。
t 设置标志位(sticky bit)。如果是有sticky bit的目录,在该目录下任何用户只要有适当的权限即可创建件,但文件只能被超级用户、目录拥有者或文件属主删除。
如果是有sticky bit的可执行文件,在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。
-
没有相应位置的权限。
访问权限后面的数字表示与该文件共享inode的文件总数,即硬链接数(参见下面ln命令)。
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-A:显示除影藏文件“.”和“…”以外的所有文件列表;
-C:多列显示输出结果。这是默认选项;
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
–file-type:与“-F”选项的功能相同,但是不显示“*”;
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-t:用文件和目录的更改时间排序;
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
–full-time:列出完整的日期与时间;
–color[=WHEN]:使用不同的颜色高亮显示不同类型的。
§文件权限
-rwx-rwx-rwx
# 第一个代表文件类型
# 代表所有者的权限
# 代表所属组的权限
# 代表其他人的权限
§改变权限
- chmod
r 读取权限 如果没有r 就不能 ls 查看里面的内容 对应数字 4
w 写权限 如果没有w 就不能在目录下创建新的文件 对应数字 2
x 执行权限 如果没有x 就不能cd进入这个目录 对应数字 1
- 没权限 对应数字 0
chmod 777 filename
rwx-rwx-rwx
§cd
:
切换文件夹
cd filename # 进入文件-filename:文件名
cd - # 返回上一次进入的目录
cd ~ # 进入根目录
cd .. # 返回上级目录
§pwd
:
查看你的当前绝对路径
§mkdir
:
mkdir [OPTION] DIRECTORY…
创建目录DIRECTORY,可以一次创建多个。OPTION如果是-p,表示可以连同父目录一起创建。
mkdir filename # 创建一个filename的文件
§rmdir
:
删除一个空的目录
rmdir filename # 删除一个空的filename的文件
§cp
:
复制文件或目录
cp file1 file2
cp file1 dir/
cp file1 ../
拷贝目录:
cp dir1 dir2 -r
cp dir1 ~/ -r
§rm
:
移除文件或目录
rm -r # 递归删除文件
rm -rf # 强制删除文件*****
§cat
:
由第一行开始显示文件内容 -b
显示行号
cat file # 一次查看所有的文件
cat file1 file2 # 一次查看两个命令
§tac
:
从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
tac filename
§nl
:
显示的时候,顺道输出行号!
nl filename
§more
一页一页的显示文件内容
按Space键:显示文本的下一屏内容。
按Enier键:只显示文本的下一行内容。
按斜线符/:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键:显示帮助屏,该屏上有相关的帮助信息。
按B键:显示上一屏内容。
按Q键:退出more命令。
more filename
§less
用PageUp键向上翻页,用PageDown键向下翻页
f 往后 b 往前q 退出
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。
less -e filename
§head
:
-n<数字>:指定显示头部内容的行数;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。
head filename
§tail
:
只看尾巴几行
–retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c
-f<name/descriptor>或;–follow
-F:与选项“-follow=name”和“–retry"连用时功能相同;
-n
–pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;
–help:显示指令的帮助信息;
–version:显示指令的版本信息。
tail file # (显示文件file的最后10行)
tail -c 10 file # (显示文件file的最后10个字符)
§which / whereis
查找命令
which command # 查看 -二进制文件
whereis 可执行文件 # 二进制文件 、man手册
帮助文档:
1.man手册 ,帮助文档 man ls
2.--help , ls --help
§find
查找文件
find 路径 参数
# 常用参数
-name # 按照名字
-size # 按照大小
find ./ -size +100k -size -10M # 在当前目录下找大于100k 小于 10的文件
§grep
文本搜索(筛选内容)
grep 'content' filename
# 常用参数
-v 显示不包含匹配文本的所有‘行’ (求反)
-n 显示匹配行及行号
-i 忽略大小写
# 内容参数
^wu 行首 搜索以wu开头的行
wh$ 行尾 索以wh结束的行
§|
管道
§一个命令的输出,可以通过管道符,做为另一个命令
的输入
命令输出 | 命令处理
ls --help | less # 将输出,放入翻页模式中
ls --help | grep -n 'f' #将输出,放入‘筛选’模式中
ls --help | grep -n 'f' >> 3.txt #将输出,放入‘筛选’模式中,然后将重定向到3.txt
§ln
创建链接文件
ln file hardlink # 硬链接
ln -s file softlink # 软链接
软链接: 相当于 window
上的快捷方式 源文件删除则软链接失效
硬链接: 硬链接只能连接普通的文件 不能连接目录
注意 如果软链接文件和源文件不在同一个目录 源文件要使用绝对路径 不能使用相对路径
§alias
创建别名
alias # 查看所有别名 alias c4='cat 4.txt'
unalias # 删除别名
注意 这种定义别名的方式 只在当前登录有效 如果要永久定义生效 可以通过修改~/.bashrc
文件 这个修改要下次登录才能生效 想要立即生效 可以输入source ~/.bashrc