1.基础的命令
日期:date +%Y/%m/%d
日历:cal
计算器:bc 输出所有的小数 scale=number
eg:scale=3 1/3=0.333
[Tab]的应用:2个Tab 以此为开头所有的命令全部显示出来
[Tab]文件补齐和命令补全
ctrl+C 将正在运行的命令终止
ctrl+D 键盘输入结束
2.错误信息查看
a.这个命令不存在,因为该软件没有安装之故
b.这个命令所在的目录目前的用户并没有将它加入命令搜索路径中
c.打错命令
3.man page
man(manual)操作说明
eg: man date
DATE(1)
代号(1,5,8较重要)
1:用户在shell环境中可以操作的命令或可执行文件
2:系统内核可调用的函数与工具
3:一些常用的函数(function)与函数库(library),大部分为C的函数库(libc)
4:设备文件的说明,通常在/dev下的文件
5:配置文件或者某些文件的格式
6:游戏(games)
7:惯例与协议等,例如Linux文件系统,网络协议,
ASCII code等说明
8:系统管理员可用的管理命令
9:跟Kernel有关的文件
man page常用的按键:
/string 向下查询string字符串,如果要查询vbrid的话,就输入/vbrid
?string 向上查询string字符串
q 结束这次的man page
man -f man (whatis)查出系统还有哪些跟man这个命令相关的说明文件
man 1 man man(1)相关的文件数据
man -k man(apropos) 系统中只要有man这个关键字就将该说明列出来
4.超简单文本编辑器nano
打开命令 nano text.txt 使用简单
^表示ctrl M表示Alt
5.常用命令
查看系统的使用状态
who 查看谁在线
netstat -a 查看网络的联机状态
ps -aux 查看后台执行的程序
通知在线用户关机的时刻
sync 将数据同步写入硬盘
shutdown 惯用的关机命令
reboot halt poweroff 重启关机
数据同步写入磁盘 sync
在linux系统中,为了加快数据的读取速度,所有在默认的情况中,某些已经加载内存中的数据不会直接被写会硬盘,而是暂存在内存中。防止在某些特殊情况下造成不正常关机,数据丢失。
常用关机命令 shutdown
-t :后面加秒数,过多少秒后关机
-k:不要真的关机,只是发出警告消息出去
-r:将系统的服务停掉之后就重启
-h:将系统的服务停掉之后,立即关机
shutdown -r +30 ‘then system will reboot’
6.切换执行等级 init
linux共有七种执行等级:
run level 0:关机
run level 3:纯命令行模式
run level 5:含有图形界面模式
run level 6:重启
关机除了shutdown -h now 以及poweroff
还可以 init 0 关机
7.忘记root密码
单用户维护模式登录更改root密码,grub引导装载程序
a.先将系统重启,在读秒的时候按下任意键就会出现grub管理程序菜单界面。按下e键就能够进入grub的编辑模式下。
b.将光标移动到kernel那一行,再按一次e进入kernel行的编辑界面中,然后在最后方输入 single
c.按下[Enter]确定之后,按下b就可以开机进入单用户维护模式。
在这个模式下面,会在tty1的地方不需要输入密码就可取得终端的控制权(而且是root的身份),之后用passwd修改root密码。
8.linux文件属性
#a.查看文件属性等 ls -al
ls(list)显示文件的文件名与相关属性。而al则表示列出所有的文件详细的权限与属性
b.第一列代表这个文件的类型与权限(permisson)
drwxr-xr-x 14 root root 4096 2月 3 21:13 .config
文件权限 连接数 文件所有者 文件所属用户组 文件大小 文件最后被修改的时间 文件名
drwxr-xr-x 共有10个字符,第一个字符表示这个文件是“目录,文件或链接文件等“
若[
d]—目录/[-]—文件/[l]—连接文件/[b]—设备文件里面有可供存储的接口设备/[c]串行端口设备,键盘鼠标等
rwx [r]—表示可读,[w]—表示可写,[x]—可执行
d rwx r-x r-x
文件类型 文件所有者权限 文件所属用户权限 其他人对此文件的权限
c.第二列表示有多少文件名连接到此节点(i-node)
d.第三列表示这个文件或(目录)的”所有者账号“
e.第四列表示这个文件的所属用户组。
f.第五列表示这个文件的容量大小,默认单位B
g.第六列表示这个文件的创建文件日期或者最近的修改日期
显示完整的时间格式 ls -l –full-time
h.第七列表示该文件名
如果文件名之前多了一个”.” 表示该文件为隐藏文件。
9.改变文件属性与权限
chgrp:改变文件所属用户组
chown:改变文件所有者
chmod:改变文件的权限
a.改变所属用户组:chgrp(change group)
改变的用户组名必须在/etc/group文件内存在才行
chgrp [-R] dirname/filename….
[-R] :进行递归(recursive)的持续更新,也即连同子目录下的所有文件,目录
b.改变文件所有者:chown(change owner)
用户必须是已经存在于系统中的账号,在/etc/passwd这个文件中有记录的用户才可以改变
chown [-R] 账号名称,文件或目录
c.改变权限:chmod
数字类型改变文件权限
Linux文件的基本权限就有9个,分别是owner,group,others三种身份各有自己的read,write,execute权限。
r,w,x权值分别为4,2,1
chmod [-R] xyz 文件或目录
xyz:为rwx属性的相加
比如,将.bashrc这个文件所有权限都设置启用
符号类型改变文件权限
有u,g,o分别代表user,group,others3种身份,a表示所有的all所有的身份。
假如是“-rwxr-xr”这样的权限,可以使用chmod u=rwx,g=rx,o=r filename 来设置
下面是a+w,a-x等用法:
10.目录与文件的权限意义
a.权限对文件的重要性
文件是实际含有数据的地方,包括一般文本文件,数据库内容文件,二进制可执行文件(binary program)等
r(read):可读取此文件的实际内容,如读取文本文件的文字内容等
w(write):可以编辑,新增或者是修改文件的内容(但不含删除该文件)
x(execute):该文件具有可以被系统执行的权限(不同于windows中根据后缀区分是否可以执行,Linux下文件是否能被执行则是由是否具有X这个权限来决定,而跟文件名没有绝对的关系)
b.权限对目录的重要性
文件是存放实际数据的所在,目录主要的内容是记录文件名列表,文件名与目录有强烈的关联。
r:read contents in directory 表示具有读取目录结构列表的权限,比如ls
w:modify contents of directory 具有更改该目录结构列表的权限,比如新建新的文件与目录,删除已经存在的文件与目录(不论该文件的权限为何),将已存在的文件或目录进行重命名,转移该目录中的文件,目录位置。
x:access directory 目录不能被执行,表示用户能进入该目录成为工作目录的用途,能否进入该目录。
eg:如果在某个目录下不具有X的权限,那么就无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。
11.Linux文件种类与扩展名
任何设备在Linux下面都是文件,数据接口也有专门的文件负责。
a.文件种类
一般文件(-rwxrwxrwx)中第一个属性为-的。
纯文本文件(ASCII):内容为我们可以直接读到的数据,例如数字,字母。可以执行cat 可以看到文件的内容。
二进制文件(binary):Linux中可执行文件(scripts,文件批处理文件不算),执行的命令cat就是一个binary file。
数据格式文件(data):有些程序在运行的过程当中会读取某些特定格式的文件。比如,用户登录时,就会将登录的数据文件记录在/var/log/wtmp那个文件内,能够通过last这个命令读出来,使用cat会乱码。
目录(drwxrwxrwx)中第一个属性为d的,为目录文件。
连接文件(link):类似windows下的快捷方式,第一个属性为l。
块设备文件(block):集中在/dev这个目录,存储数据,以提供系统随机访问的接口设备,例如硬盘,软盘等,第一个属性为b。
字符设备文件(character):一些串行端口的接口设备,例如键盘,鼠标等,“一次性读取'',中途不能截断,第一个属性为c。
套接字(sockets):数据接口文件,客户端可以通过socket来进行数据通信,通常在/var/run目录中可以看到,第一个属性为s。
管道(FIFO,pipe):在解决多个程序同时访问一个文件所造成的错误问题,第一个属性为p。
b.Linux文件扩展名
一个Linux文件能不能被执行,与它第一列的10个属性相关,与文件名没有关系。
可以通过常用的扩展名来了解该文件是什么。数种常用的文件扩展名如下:
*.sh
:脚本或者批处理文件。
*Z *.tar *.tar,gz *.zip *.tgz
:经过打包的文件,不同的压缩软件,取其扩展名也不同。
.html .php :网页相关文件。
c.Linux文件长度限制
在linux下面,使用默认的的Ext2/Ext3文件系统时,针对文件的文件名长度限制为:
单个文件或目录的最大容许文件名为255个字符;
包含完整路径名称及目录(/)的完整文件名为4096个字符;
d.Linux文件名的限制
在设置文件名的时候,应该尽量避免一些特殊字符,例如*?<>;&![]|\'"( ){} - +
(等开头)。
12.Linux目录配置标准:FHS
FHS(Filesystem Hierarchy Standard):让使用者可以了解到已安装软件通常放置于哪个目录下。
可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据, 是能够分享给
网络上其他主机挂载用的目录;
不可分享的:自己机器上面运作的装置文件或者是与程序有关的 socket 文件等, 由于仅与自身机器有关。
不变的:有些数据是不会经常变动的,跟随着 distribution 而不变动。 例如函式库、文件说明文件、系统管
理员所管理的主机服务配置文件等等;
可变动的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。
FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:
- / (root, 根目录):与开机系统有关;
- /usr (unix software resource):与软件安装/执行有关;
- /var (variable):与系统运作过程有关。
根目录 (/) 的意义与内容:
所有的目录都是由根目录衍生出来的,也与开机/还原/系统修复等动作有关。
根目录不要放在非常大的分区槽内, 因为越大的分区槽妳会放入越多的数据,如此一来根目录所在分区槽就可能会有较多发生错误的机会。根目录(/)所在分区槽应该越小越好, 且应用程序所安装的软件最好不要与根目
录放在同一个分区槽内,保持根目录越小越好。
事实上 FHS 针对根目录所定义的标准就仅有上面的列举的数据。不过也有几个非常重要的目录。
/etc:配置文件
/bin:重要执行文件
/dev:所需要的设备文件
/lib:执行文件所需的函数库与内核所需的模块
/sbin:重要的系统文件
这五个目录千万不可以与根目录分开放在不同的分区。
/usr 的意义与内容:Unix Software Resource
Unix 操作系统软件资源所放置的目录,而不是用户的数据。此这个目录有点类似 Windows 系统的C:\Windows\ (当中的一部份) + C:\Program files\这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。一般来说,/usr 的次目录建议有底下这些:
/var 的意义与内容:
/var 就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var 目录主要针对常态性变动的文件,包括快取(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如 MySQL 数据库的文件等等。常见的次目录有
13.目录树(directory tree)
在Linux底下,所有的文件与目录都是是由根目录开始,那是所有目录与文件的源头。然后,再一个一个的分支下来,有点像树枝状,故称这种目录配置方式为目录树。主要特征如下:
1.目录树的启始点为根目录 (/, root);
2.每一个目录不止能使用本地端的文件系统,也可以使用网络上的文件系统 。举例来说, 可
以利用 Network File System (NFS) 服务器挂载某特定目录等。
3.每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。
用ls -l / 命令查看目录树
整个目录树以图标的方法来显示,并且将较为重要的文件数据列出来的话,那么目录树架构如下:
14.绝对路径与相对路径
根据档名写法的不同,可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relative)。
绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正开头不是 /
就属于相对路径的写法.
相对路径是以你当前所在路径的相对位置来表示的。举例来说,你目前在 /home 这个目录下, 如果想要进入 /var/log 这个目录时,可以这样写:
1. cd /var/log (absolute)
2. cd ../var/log (relative)
因为在 /home 底下,所以要回到上一层 (../) 之后,才能继续往 /var 来移动的。
特别的有两个特殊的目录:
. :代表当前的目录,也可以使用 ./ 来表示;
.. :代表上一层目录,也可以 ../ 来代表。
比如从进入/var/spool/mail/目录,再进入到/var/spool/cron/目录内:
1. cd /var/spool/mail
2. cd ../cron
15.Linux系统的观察
uname -r 查看核心版本
uname -m 查看操作系统的位版本
lsb_release -a LInux Standard Base标准