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,用来说明一个类具有相应的优先级。

#
权限
rwx
二进制

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

最后更新于