Linux
1、Linux的历史
1960 : 起源 贝尔实验室在 multics 项目失败后 转头开发 UNIX
UNIX在开发几年后转入商业 ,价格十分昂贵
1990年:Lunix之父对操作系统感兴趣 由于Unix十分昂贵,所以基于MINIX 开发了Linux (MINIX相对廉价
1994年: 完整的Lunix版本(雏形)
1996年:第一个版本Linux
2、小知识
Ubuntu会让你设置一个普通用户,它没有定死Root账户,可以通过 sudo命令升级为Root账户
3、常用命令
1.管理文件的命令
cd / 回到空节点
cd ~ 回到当前用户的根节点
cd /user 转到/user的文件夹 绝对地址
cd user 转到当前文件夹下的user 相对地址
pwd 显示用户列表
ls 显示文件
ls -a 列举目录中的全部文件,包括隐藏文件
ls -f 列举的文件显示文件类型
ls -l 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接
ls -r 按逆序输出(原本是默认字母排序)
ls -R 递归,该选项卡递归的列举当前目录下所有子目录内的内容
ls -s 按大小排序
ls -h 以人类可读的方式显示文件的大小,如用K、M、G作单位
cat 文件名 :显示文件内容
grep 查找字符串
touch 创建文件
cp 复制文件
cp a a2 将a复制生成a2
cp -i 当有相同文件时询问是否覆盖
cp -r 复制文件夹
mv 移动文件
mv移动文件夹可以直接移动,没有-r
rm 删除文件
-r 删除文件夹
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
-i 删除前逐一询问确认
rmdir 删除空文件夹
vi 编辑文件
vim 打开或新建文件
vi filename...filename: 打开多个文件并依次进行编辑
屏幕翻滚:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
按ESC建跳到命令模式,然后:
:w 保存文件但不退出vi
:W file 将修改另外保存到file中,不退出vi
:wl 强制保存,不退出vi
:wq 强制保存并退出vi
:wq! 强制保存文件,并退出
:q 不保存文件,退出vi
:q!不保存文件,强制退出vi
:e!放弃所有修改,从上次保存文件开始编辑
su 修改用户
useradd 新建新用户
chmod 文件权限
控制用户对文件的权限的命令
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限
mode : 权限设定字串,格式如下 :
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
tail
用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件
八进制语法
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
7
读 + 写 + 执行
rwx
111
6
读 + 写
rw-
110
5
读 + 执行
r-x
101
4
只读
r--
100
3
写 + 执行
-wx
011
2
只写
-w-
010
1
只执行
--x
001
0
无
---
000
例如, 765 将这样解释:
所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。
umask
umask值用于设置用户在创建文件时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。
对于root用户,系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002。执行umask命令可以查看当前用户的umask值。
[root@localhost ~]# umask
0022
umask值一共有4组数字,其中第1组数字用于定义特殊权限,我们一般不予考虑,与一般权限有关的是后3组数字。
默认情况下,对于目录,用户所能拥有的最大权限是777;对于文件,用户所能拥有的最大权限是目录的最大权限去掉执行权限,即666。因为x执行权限对于目录是必须的,没有执行权限就无法进入目录,而对于文件则不必默认赋予x执行权限。
对于root用户,他的umask值是022。当root用户创建目录时,默认的权限就是用最大权限777去掉相应位置的umask值权限,即对于所有者不必去掉任何权限,对于所属组要去掉w权限,对于其他用户也要去掉w权限,所以目录的默认权限就是755;当root用户创建文件时,默认的权限则是用最大权限666去掉相应位置的umask值,即文件的默认权限是644。
文件类型
-
普通文件
d
目录文件,d是directory的简写
l
软连接文件,亦称符号链接文件,s是soft或者symbolic的简写
b
块文件,是设备文件的一种(还有另一种),b是block的简写
c
字符文件,也是设备文件的一种(这就是第二种),c是character的文件
s
套接字文件,这种文件类型用于进程间的网络通信
p
管道文件,这种文件类型用于进程间的通信
2.磁盘空间的命令
2.1 mount
不加参数直接输入命令可以显示已挂载的文件系统和目录
-a
将 /etc/fstab 中定义的所有档案系统挂上。
2.2 umonut
umount 已挂载的目录或设备
卸载已挂上的/cdrom目录
2.3 df
检测磁盘的使用情况
-a
把全部的文件系统和各分区的硬盘使用情况列出来,包括0区块,例如/proc这个文件系统
-i
-t
-x
-T
列出每个分区
2.4 du
-a或-all 显示目录中个别文件的大小
-b或-bytes 显示目录或文件大小时,以byte为单位
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-D或--dereference-args 显示指定符号连接的源文件大小
-h或--human-readable 以K,M,G为单位,提高信息的可读性
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位
-k或--kilobytes 以1024 bytes为单位
-l或--count-links 重复计算硬件连接的文件
-s 只列出各文件系统大小的总和
-x 只计算当前文件系统下的文件
2.5 fsck
用于检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 档案系统
filesys : device 名称(eg./dev/sda1),mount 点 (eg. / 或 /usr)
-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
-s : 依序一个一个地执行 fsck 的指令来检查
-A : 对/etc/fstab 中所有列出来的 partition 做检查
-C : 显示完整的检查进度
-d : 列印 e2fsck 的 debug 结果
-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时,省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复
3、文件压缩
命令:bzip、bzip2、gzip
可以批量压缩 : bzip2 a1 a2 a3
当然也可以一次全部解压: bunzip2 a1.bz2 a2.bz2 a3.bz2
你离文件相距较远也可以加上路径,但是压缩或解压都在文件本身所在的路径下
gzip的运用也和bzip相同
zip
zip是Linux和Windows兼容的一种模式
文件压缩后,它本身还存在
文件解压之后,压缩文件也还存在
zip a1_.zip a1
tar
组合:cvf
4、开关机
shutdown
必须使用root权限
-t seconds : 设定在几秒钟之后进行关机程序。
-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
-r : 关机后重新开机。
-h : 关机后停机。
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c : 取消目前已经进行中的关机动作。
-f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
-F : 关机时,强迫进行 fsck 动作。
time : 设定关机的时间。
message : 传送给所有使用者的警告讯息。
立即关机
指定 10 分钟后关机
重新启动计算机
rebot
立即重启
rebot -f:
强迫重开机
halt
若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。
使用权限:系统管理者。
4、Shell
变量
注意,变量名和等号之间不能有空格
流程控制
和 Java、PHP 等语言不一样,sh 的流程控制不可为空
1.if
最后更新于