目录
rm删除文件/目录
简介
rm,英文全拼:remove,用于删除一个文件或者目录;
语法
rm [options] name
-i:删除前逐一询问确认;
-f:直接删除,无需逐一确认;
-r:将目录及子目录逐一删除;
bc计算器
简介
bc命令当计算器用,能计算任意精度数字,做基本的数学运算,常用的运算:加法、减法、乘法、除法、指数、余数;
语法
bc(选项)(参数)
-i:强制进入交互式模式;
-l:定义使用的标准数学库;
-w:对POSIX bc的扩展给出警告信息;
-q:不打印正常的GNU bc环境信息;
-v:显示指令版本信息;
-h:显示指令的帮助信息。
输入quit退出;
mv文件重命名/文件移动
简介
mv,英文全拼:move file,用来为文件或目录改名、或将文件或目录移入其它位置;
语法
mv [options] source dest
mv [options] source... directory
-b:当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份;
-i:如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作;
-f:如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件;
-n:不要覆盖任何已存在的文件或目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作;
mv source_file(文件) dest_file(文件):将源文件名 source_file改为目标文件名dest_file;
mv source_file(文件) dest_directory(目录):将文件 source_file移动到目标目录 dest_directory 中;
mv source_directory(目录) dest_directory(目录):目录名 dest_directory已存在,则将source_directory移动到目录名 dest_directory中;目录名dest_directory不存在则 source_directory改名为目录名dest_directory;
scp远程文件拷贝
简介
scp命令用于Linux服务器之间复制文件和目录,scp是secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令,scp是加密的,rcp是不加密的,scp是rcp的加强版;
语法
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2
-1:强制scp命令使用协议ssh1
-2:强制scp命令使用协议ssh2
-4:强制scp命令只使用IPv4寻址
-6:强制scp命令只使用IPv6寻址
-B:使用批处理模式(传输过程中不询问传输口令或短语)
-C:允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q:不显示传输进度条。
-r:递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher:以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config:指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file:从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit:限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option:如果习惯于使用ssh_config(5)中的参数传递方式
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program:指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项
举例
从本地复制到远程
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
从远程复制到本地
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/
tail查看文件内容
简介
tail命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件;
语法
tail [参数] [文件]
-f:循环读取
-q:不显示处理信息
-v:显示详细的处理信息
-c<数目>:显示的字节数
-n<行数>:显示文件的尾部 n 行内容
--pid=PID:与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent:从不输出给出文件名的首部
-s, --sleep-interval=S:与-f合用,表示在每次反复的间隔休眠S秒
tail -f +20 notes.log:显示文件 notes.log 的内容,从第20行至文件末尾
tail -f -20 notes.log:显示文件 notes.log 的内容,从倒数第20行至文件末尾
vi/vim文本编辑器
vi与vim
vi是一个文本编辑器,vi是老式的字处理器,不过功能已经很齐全了,而vim则是对vi进一步发展出来的编辑器,比起vi更加强大,可以这么理解:
vi服务于普通的文本编辑功能;
vim服务于程序员开发的开发编辑功能;
3种模式
基本上vi/vim共分为3种模式:
命令模式(Command mode)
输入模式(Insert mode)
底线命令模式(Last line mode)
命令模式
用户刚刚启动vi/vim,便进入了命令模式;
此模式下任何键盘动作会被Vim识别为命令,而非输入字符,比如我们此时按下i,并不会输入一个字符,i被当作了一个命令;
以下是常用的几个命令:
i:切换到输入模式,以输入字符;
x:删除当前光标所在处的字符;
::切换到底线命令模式,以在最底一行输入命令。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令;
输入模式
在命令模式下按下i就进入了输入模式,在输入模式中,可以使用以下按键:
字符按键以及Shift组合:输入字符
ENTER:换行
BACK SPACE:删除光标前一个字符
DEL:删除光标后一个字符
方向键:在文本中移动光标
HOME/END:移动光标到行首/行尾
Page Up/Page Down:上/下翻页
Insert:切换光标为输入/替换模式,光标将变成竖线/下划线
ESC:退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有:
q:退出程序
w:保存文件
按ESC键可随时退出底线命令模式
命令模式下的指令
移动光标
指令 | 说明 |
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
阿拉伯数字h | 光标向左移动阿拉伯数字个字符 |
阿拉伯数字j | 光标向下移动阿拉伯数字个字符 |
阿拉伯数字k | 光标向上移动阿拉伯数字个字符 |
阿拉伯数字l | 光标向右移动阿拉伯数字个字符 |
Ctrl + f | 屏幕向下移动一页,相当于page down按键 |
Ctrl + b | 屏幕向上移动一页,相当于page up按键 |
Ctrl + d | 屏幕向下移动半页 |
Ctrl + u | 屏幕向上移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
阿拉伯数字<space> | 按下数字后再按空格键,则光标会向右移动这一行的阿拉伯数字个字符 |
0 或功能键[Home] | 移动到这一行的最前面字符处 |
$ 或功能键[End] | 移动到这一行的最后面字符处 |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行 |
阿拉伯数字G | 移动到这个档案的第阿拉伯数字行 |
gg | 移动到这个档案的第一行,相当于1G |
阿拉伯数字<Enter> | 光标向下移动阿拉伯数字个行 |
搜索替换
指令 | 说明 |
/word | 向光标之下寻找一个名称为 word 的字符串 |
?word | 向光标之上寻找一个字符串名称为 word 的字符串 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作 |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作 |
:n1,n2s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 |
删除/复制/贴上
指令 | 说明 |
x, X 小写x与大写X | 在一行字当中,x为向后删除一个字符(相当于[del]按键), X 为向前删除一个字符(相当于[backspace]亦即是退格键) |
nx | n为数字,连续向后删除 n个字符 |
dd | 删除游标所在的那一整行 |
ndd | n 为数字。删除光标所在的向下 n 行 |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
yy | 复制游标所在的那一行 |
nyy | n 为数字。复制光标所在的向下 n 行 |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p, P 小写p与大写P | p为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行 |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据 |
u | 复原前一个动作 |
Ctrl + r | 重做上一个动作 |
. | 小数点,重复前一个动作 |
命令模式切换到输入模式的指令
指令 | 说明 |
i, I | 进入输入模式(Insert mode): |
a, A | 进入输入模式(Insert mode): |
o, O 这是因为字母o,不是阿拉伯数字0 | 进入输入模式(Insert mode): |
r, R | 进入取代模式(Replace mode): |
[Esc] | 退出编辑模式,回到一般模式中 |
进入输入模式后,在vi画面的左下角处会出现『--INSERT--』或『--REPLACE--』字样,这样才能进行输入字符;
底线命令模式下的指令
指令 | 说明 |
:w | 将编辑的数据写入硬盘档案中 |
:w! | 若文件属性为『只读』时,强制写入该档案 |
:q | 离开 vi |
:q! | 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案 |
:wq | 储存后离开,若为 :wq! 则为强制储存后离开 |
ZZ | 如果修改过,则保存当前文件,然后退出,效果等同于(保存并退出) |
ZQ | 不保存,强制退出。效果等同于 :q! |
:w [filename] | 将编辑的数据储存成另一个档案(类似另存新档) |
:r [filename] | 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面 |
:n1,n2 w [filename] | 将 n1 到 n2 的内容储存成 filename 这个档案 |
:! command | 暂时离开 vi 到指令行模式下执行 command 的显示结果 |
vim环境
指令 | 说明 |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
tar解压/压缩
简介
tar,英文全拼:tape archive,用来建立、还原备份文件的工具程序,它可以加入,解开备份文件内的文件;
语法
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>][--atime-preserve][--backuup=<备份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本样式>][--force-local][--group=<群组名称>][--help][--ignore-failed-read][--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用户名称>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<区块数目>][--recursive-unlink][--remove-files][--rsh-command=<执行指令>][--same-owner][--suffix=<备份字尾字符串>][--totals][--use-compress-program=<执行指令>][--version][--volno-file=<编号文件>][文件或目录...]
-A或--catenate 新增文件到已存在的备份文件。
-b<区块数目>或--blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。
-B或--read-full-records 读取数据时重设区块大小。
-c或--create 建立新的备份文件。
-C<目的目录>或--directory=<目的目录> 切换到指定的目录。
-d或--diff或--compare 对比备份文件内和文件系统上的文件的差异。
-f<备份文件>或--file=<备份文件> 指定备份文件。
-F<Script文件>或--info-script=<Script文件> 每次更换磁带时,就执行指定的Script文件。
-g或--listed-incremental 处理GNU格式的大量备份。
-G或--incremental 处理旧的GNU格式的大量备份。
-h或--dereference 不建立符号连接,直接复制该连接所指向的原始文件。
-i或--ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
-k或--keep-old-files 解开备份文件时,不覆盖已有的文件。
-K<文件>或--starting-file=<文件> 从指定的文件开始还原。
-l或--one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
-L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
-m或--modification-time 还原文件时,不变更文件的更改时间。
-M或--multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
-N<日期格式>或--newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
-o或--old-archive或--portability 将资料写入备份文件时使用V7格式。
-O或--stdout 把从备份文件里还原的文件输出到标准输出设备。
-p或--same-permissions 用原来的文件权限还原文件。
-P或--absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。
-r或--append 新增文件到已存在的备份文件的结尾部分。
-R或--block-number 列出每个信息在备份文件中的区块编号。
-s或--same-order 还原文件的顺序和备份文件内的存放顺序相同。
-S或--sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
-t或--list 列出备份文件的内容。
-T<范本文件>或--files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。
-u或--update 仅置换较备份文件内的文件更新的文件。
-U或--unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
-v或--verbose 显示指令执行过程。
-V<卷册名称>或--label=<卷册名称> 建立使用指定的卷册名称的备份文件。
-w或--interactive 遭遇问题时先询问用户。
-W或--verify 写入备份文件后,确认文件正确无误。
-x或--extract或--get 从备份文件中还原文件。
-X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。
-z或--gzip或--ungzip 通过gzip指令处理备份文件。
-Z或--compress或--uncompress 通过compress指令处理备份文件。
-<设备编号><存储密度> 设置备份用的外围设备编号及存放数据的密度。
--after-date=<日期时间> 此参数的效果和指定"-N"参数相同。
--atime-preserve 不变更文件的存取时间。
--backup=<备份方式>或--backup 移除文件前先进行备份。
--checkpoint 读取备份文件时列出目录名称。
--concatenate 此参数的效果和指定"-A"参数相同。
--confirmation 此参数的效果和指定"-w"参数相同。
--delete 从备份文件中删除指定的文件。
--exclude=<范本样式> 排除符合范本样式的文件。
--group=<群组名称> 把加入设备文件中的文件的所属群组设成指定的群组。
--help 在线帮助。
--ignore-failed-read 忽略数据读取错误,不中断程序的执行。
--new-volume-script=<Script文件> 此参数的效果和指定"-F"参数相同。
--newer-mtime 只保存更改过的文件。
--no-recursion 不做递归处理,也就是指定目录下的所有文件及子目录不予处理。
--null 从null设备读取文件名称。
--numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称。
--owner=<用户名称> 把加入备份文件中的文件的拥有者设成指定的用户。
--posix 将数据写入备份文件时使用POSIX格式。
--preserve 此参数的效果和指定"-ps"参数相同。
--preserve-order 此参数的效果和指定"-A"参数相同。
--preserve-permissions 此参数的效果和指定"-p"参数相同。
--record-size=<区块数目> 此参数的效果和指定"-b"参数相同。
--recursive-unlink 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接。
--remove-files 文件加入备份文件后,就将其删除。
--rsh-command=<执行指令> 设置要在远端主机上执行的指令,以取代rsh指令。
--same-owner 尝试以相同的文件拥有者还原文件。
--suffix=<备份字尾字符串> 移除文件前先行备份。
--totals 备份文件建立后,列出文件大小。
--use-compress-program=<执行指令> 通过指定的指令处理备份文件。
--version 显示版本信息。
--volno-file=<编号文件> 使用指定文件内的编号取代预设的卷册编号。
例如:解压文件:tar -tzvf test.tar.gz
date显示/设置日期/时间
简介
date命令可以用来显示或设定系统的日期与时间;
显示格式
在显示方面,可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
只有取得权限者(比如说 root)才能设定系统时间,同时更改了系统时间之后,请记得以clock -w来将系统时间写入CMOS中,这样下次重新开机时系统时间才会持续抱持最新的正确值;
语法
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
-d datestr:显示 datestr 中所设定的时间 (非系统时间)
--help:显示辅助讯息
-s datestr:将系统时间设为 datestr 中所设定的时间
-u:显示目前的格林威治时间
--version:显示版本编号
grep查找符合条件的字符串
简介
grep命令用于查找文件里符合条件的字符串;
若不指定任何文件名称,或是所给予的文件名为-,则grep指令会从标准输入设备读取数据;
语法
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --invert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。
ps查看进程状态
简介
ps,英文全拼:process status,用于显示当前进程的状态;
语法
-a 显示所有终端机下执行的程序,除了阶段作业领导者之外。
a 显示现行终端机下的所有程序,包括其他用户的程序。
-A 显示所有程序。
-c 显示CLS和PRI栏位。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称> 指定执行指令的名称,并列出该指令的程序的状况。
-d 显示所有程序,但不包括阶段作业领导者的程序。
-e 此选项的效果和指定"A"选项相同。
e 列出程序时,显示每个程序所使用的环境变量。
-f 显示UID,PPIP,C与STIME栏位。
f 用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称> 此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g 显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定。
h 不显示标题列。
-H 显示树状结构,表示程序间的相互关系。
-j或j 采用工作控制的格式显示程序状况。
-l或l 采用详细的格式来显示程序状况。
L 列出栏位的相关信息。
-m或m 显示所有的执行绪。
n 以数字来表示USER和WCHAN栏位。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码> 指定程序识别码,并列出该程序的状况。
p<程序识别码> 此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r 只列出现行终端机正在执行中的程序。
-s<阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序资料。
-t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号> 此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T 显示现行终端机下的所有程序。
-u<用户识别码> 此选项的效果和指定"-U"选项相同。
u 以用户为主的格式来显示程序状况。
-U<用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称> 列出属于该用户的程序的状况。
v 采用虚拟内存的格式显示程序状况。
-V或V 显示版本信息。
-w或w 采用宽阔的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
X 采用旧式的Linux i386登陆格式显示程序状况。
-y 配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码> 此选项的效果和指定"p"选项相同。
–cols<每列字符数> 设置每列的最大字符数。
–columns<每列字符数> 此选项的效果和指定"–cols"选项相同。
–cumulative 此选项的效果和指定"S"选项相同。
–deselect 此选项的效果和指定"-N"选项相同。
–forest 此选项的效果和指定"f"选项相同。
–headers 重复显示标题列。
–help 在线帮助。
–info 显示排错信息。
–lines<显示列数> 设置显示画面的列数。
–no-headers 此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
–group<群组名称> 此选项的效果和指定"-G"选项相同。
–Group<群组识别码> 此选项的效果和指定"-G"选项相同。
–pid<程序识别码> 此选项的效果和指定"-p"选项相同。
–rows<显示列数> 此选项的效果和指定"–lines"选项相同。
–sid<阶段作业> 此选项的效果和指定"-s"选项相同。
–tty<终端机编号> 此选项的效果和指定"-t"选项相同。
–user<用户名称> 此选项的效果和指定"-U"选项相同。
–User<用户识别码> 此选项的效果和指定"-U"选项相同。
–version 此选项的效果和指定"-V"选项相同。
–widty<每列字符数> 此选项的效果和指定"-cols"选项相同。
uname显示电脑硬件以及操作系统信息
简介
uname,英文全拼:unix name,用于显示系统信息,可显示电脑以及操作系统的相关信息;
语法
uname [-amnrsv][--help][--version]
-a或--all:显示全部的信息。
-m或--machine:显示电脑类型。
-n或--nodename:显示在网络上的主机名称。
-r或--release:显示操作系统的发行编号。
-s或--sysname:显示操作系统名称。
-v:显示操作系统的版本。
--help:显示帮助。
--version:显示版本信息。
chmod用户对文件权限
简介
chmod,英文全拼:change mode,chmod命令是控制用户对文件的权限的命令;
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users);
只有文件所有者和超级用户可以修改文件或目录的权限,可以使用绝对模式(八进制数字模式)、符号模式指定文件的权限;
符号模式
u=rwx,g=rx,o=r
绝对模式
用法
chmod [-cfvR] [--help] [--version] mode file...
mode模式
mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...]
u:表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
mkdir创建目录
简介
mkdir,英文全拼:make directory,用于创建目录;
语法
mkdir [-p] dirName
-p 确保目录名称存在,不存在的就建一个;
mount挂载系统外的文件
简介
mount命令,用于挂载Linux系统外的文件;
语法
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
-V:显示程序版本
-h:显示辅助讯息
-v:显示较讯息,通常和 -f 用来除错。
-a:将 /etc/fstab 中定义的所有档案系统挂上。
-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
-s-r:等于 -o ro
-w:等于 -o rw
-L:将含有特定标签的硬盘分割挂上。
-U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
-o sync:在同步模式下执行。
-o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
-o auto、-o noauto:打开/关闭自动挂上模式。
-o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
-o dev、-o nodev-o exec、-o noexec允许执行档被执行。
-o suid、-o nosuid:
允许执行档在 root 权限下执行。
-o user、-o nouser:使用者可以执行 mount/umount 的动作。
-o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
-o ro:用唯读模式挂上。
-o rw:用可读写模式挂上。
-o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统;
cat连接文件并打印输出到文件/标准输出
简介
cat,英文全拼:concatenate,用于连接文件并打印到标准输出设备上;
语法
cat [-AbeEnstTuv] [--help] [--version] fileName
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
su切换用户
简介
su,英文全拼:swith user,用于切换为其他使用者的身份;
语法
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
-f或--fast:不必读启动档(如csh.cshrc等),仅用于csh或tcsh;
-m-p或--preserve-environment:执行su时不改变环境变数;
-c command或--command=command:变更为帐号为USER的使用者并执行指令(command)后再变回原来使用者;
-s shell或--shell=shell:指定要执行的shell(bash csh tcsh 等),预设值为/etc/passwd内的该使用者(USER)shell;
--help:显示说明文件;
--version:显示版本资讯;
-/-l/--login:这个参数加了之后,就好像是重新login为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定USER ,内定是root;
USER:欲变更的使用者帐号;
ARG:传入新的shell参数;
passwd修改用户密码
简介
passwd命令用来更改使用者的密码;
语法
passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
必要参数
-d:删除密码
-f:强迫用户下次登录时必须修改口令
-w:口令要到期提前警告的天数
-k:更新只能发送在过期之后
-l:停止账号使用
-S:显示密码信息
-u:启用已被停止的账户
-x:指定口令最长存活期
-g:修改群组密码
-i:口令过期后多少天停用账户
选择参数
--help:显示帮助信息
--version:显示版本信息
磁盘管理
常用命令
①df:列出文件系统的整体磁盘使用量;
②du:检查磁盘空间使用量;
③fdisk:用于磁盘分区;
④mkfs:磁盘格式化;
⑤fsck:磁盘检验;
⑥umount:磁盘卸除;
⑦mount:磁盘挂载;
df
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息:
df [-ahikHTm] [目录或文件名]
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
du
du命令也是查看使用空间的,但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的:
du [-ahskm] 文件或目录名称
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
fdisk
fdisk是磁盘分区表操作工具:fdisk [-l] 装置名称
-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来;
mkfs
磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用mkfs(make filesystem)命令:
mkfs [-t 文件系统格式] 装置文件名
-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
fsck
用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查:
fsck [-t 文件系统] [-ACay] 装置名称
-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
-s : 依序一个一个地执行 fsck 的指令来检查
-A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
-C : 显示完整的检查进度
-d : 打印出 e2fsck 的 debug 结果
-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时,省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复
-y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。
mount
磁盘挂载语法:
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
umount
磁盘卸载语法:
umount [-fn] 装置文件名或挂载点
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-n :不升级 /etc/mtab 情况下卸除。
挂载与挂载点
在Linux系统中,一切皆文件,所有文件/硬件设备都放置在以根目录为树根的树形目录结构中;
只不过,对于Linux系统而言,硬件设备拥有自己一套独立的文件系统,因此,需要把Linux文件系统、硬件设备文件系统进行融合,融合之后硬件设备才能被我们使用,这个融合的过程叫做“挂载”;
挂载的过程,就是指将硬件设备文件中的根目录连接到Linux根目录下的某一个空目录,因此,当Linux访问这个根目录下的空目录时,算是变相的访问硬件设备中的文件系统;
注意:挂载的时候,必须新建一个空目录,这是因为挂载操作会使原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录;
目录结构
目录名称 | 目录说明 |
/bin | bin是Binaries的缩写, 这个目录存放着最经常使用的命令 |
/boot | 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件 |
/dev | dev是Device的缩写, 该目录下存放的是Linux 的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的 |
/etc | etc是Etcetera的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录 |
/home | 用户的主目录,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 |
/lib | lib是Library的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库 |
/lost+found | 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件 |
/media | linux系统会自动识别一些设备,例如U盘、光驱等,当识别后Linux会把识别的设备挂载到这个目录下 |
/mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的 |
①/dev存放的是设备,在Linux,外部一切设备都是文件,都是以文件形式存放在Linux操作系统中; ②/media,强调的是自动识别,自动挂载,常见的比如U盘、光盘之类常见的外接设备; ③/mnt,强调的是手动挂载,即一些文件系统,Linux无法自动识别,就得靠人工来识别,所以,这个目录也就系统管理员使用; | |
/opt | opt是optional的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的(/etc是给操作系统软件用的) |
/proc | proc是Processes的缩写,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件 |
/root | 该目录为系统管理员,也称作超级权限者的用户主目录(/home是给普通用户用的) |
/sbin | s就是Super User的意思,是Superuser Binaries的缩写,这里存放的是系统管理员使用的系统管理程序 |
/selinux | 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的 |
/srv | 该目录存放一些服务启动之后需要提取的数据 |
/sys | 这是Linux2.6内核的一个很大的变化。该目录下安装了 2.6内核中新出现的一个文件系统sysfs; sysfs文件系统集成了下面3种文件系统的信息: 针对进程信息的proc文件系统、针对设备的devfs文件系统、针对伪终端的devpts文件系统; 该文件系统是内核设备树的一个直观反映; 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建; |
/tmp | tmp是temporary的缩写这个目录是用来存放一些临时文件的 |
/usr | usr是unix shared resources的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录 |
/usr/bin | 系统用户使用的应用程序 |
/usr/sbin | 超级用户使用的比较高级的管理程序和系统守护程序 |
/usr/src | 内核源代码默认的放置目录 |
/var | var是variable的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件 |
/run | 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除 |
文件与目录管理
常用命令
ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 删除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
ln(英文全拼:link files):建立硬链接/软链接
ls列出目录
ls [-aAdfFhilnrRSt] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
cd切换目录
cd [相对路径或绝对路径]
pwd显示目前所在的目录
pwd [-P]
-P :显示出确实的路径,而非使用连结 (link) 路径(可以理解为Windows上的快捷键,例如我在D盘安装的软件,但软件快捷键却在C盘,所以,pwd显示的C盘路径,而-P则是显示的是D盘路径)
mkdir创建新目录
mkdir [-mp] 目录名称
-m :配置文件的权限喔
-p :直接将所需要的目录(包含上一级目录)递归创建起来
rmdir删除空的目录
rmdir [-p] 目录名称
-p :连同上一级『空的』目录也一起删除
cp复制文件或目录
cp [-adfilprsu] 来源档(source) 目标档(destination)
cp [options] source1 source2 source3 .... directory
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
rm移除文件或目录
rm [-fir] 文件或目录
-f :就是force的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除
mv移动文件与目录,或修改名称
mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖;
-u :若目标文件已经存在,且 source 比较新,才会升级;
查看文件内容
常用命令
cat:由第一行开始显示文件内容
tac:从最后一行开始显示,可以看出tac是cat的倒写
nl:显示的时候,顺道输出行号
more:一页一页的显示文件内容
less:与 more 类似,但是比more更好的是,其可以往前翻页
head:只看头几行
tail:只看尾巴几行
cat
cat [-AbEnTv]
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
nl
nl [-bnw] 文件
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
more
空白键 (space):代表向下翻一页;
Enter:代表向下翻『一行』;
/字串:代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f:立刻显示出档名以及目前显示的行数;
q:代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
less
空白键:向下翻动一页;
[pagedown]:向下翻动一页;
[pageup]:向上翻动一页;
/字串:向下搜寻『字串』的功能;
?字串:向上搜寻『字串』的功能;
n:重复前一个搜寻(与 / 或 ? 有关!)
N:反向的重复前一个搜寻(与 / 或 ? 有关!)
q:离开less这个程序;
head
head [-n number] 文件
-n :后面接数字,代表显示几行的意思
tail
tail [-n number] 文件
-n:后面接数字,代表显示几行的意思
-f:表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
ln
ln [参数][源文件或目录][目标文件或目录]
[-bdfinsvF]
[-S backup-suffix]
[-V {numbered,existing,simple}]
[--help]
[--version]
[--]
常用参数有:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
硬链接和软连接(符号链接)的区别
在Linux系统中,一切皆文件,因此,可以把整个Linux系统的文件可以看做一个是以“/”为根的树形结构;
既然是树形结构,Linux为每个文件分配了一个编号,这个编号叫做索引节点号(Inode Index);
硬链接
在Linux中,如果多个文件的Inode Index号相同,则称为硬连接;
硬链接的特点是:对应目录的索引节点有一个以上的连接,只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。默认情况下,ln命令产生硬链接。
软链接
符号链接(Symbolic Link)也叫软连接;
它实际上是一个文本文件,其中包含的有另一文件的位置信息,其拥有独立的Inode Index号;
区别
①inode号:硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件;
②文件属性:软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
③链接数目:链接数目是不一样的,软链接的链接数目不会增加;
④文件大小:文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,而这里软链接显示的大小与原文件就不同了;
⑤权限:软链接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接;
⑥原文件移动:软链接因为链接文件包含有原文件的路径信息,所以当原文件从一个目录移动到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷;
⑦应用对象:硬链接只能应用于文件,而不能应用于目录,且不能跨文件系统(即分区);软链接没有任何文件系统的限制;
⑧占用空间:软链接要系统分配额外的空间用于建立新的索引节点和保存原文件的路径;硬链接节省空间;
⑨权限:任何用户可以创建软链接指向目录、文件的符号链接;硬链接只有超级用户才可以为目录创建硬链接;
总结:硬链接类似于文件复制,而软连接类似于Windows的快捷键;
文件权限属性
查看文件权限信息
ls,或者,ls -l
File type含义如下:
d表示目录、-表示文件、l表示链接文档、b表示装置文件里面的可供储存的接口设备、c表示为装置文件里面的串行端口设备;
rwx含义如下:
r代表可读(read)、w代表可写(write)、x代表可执行(execute),如果没有权限,就会出现减号-;
chgrp更改文件属组
chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改
chown更改文件属主/文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
chmod更改文件权限
Linux文件属性有两种设置方法,一种是数字,一种是符号;Linux文件的基本权限就有九个:owner/group/others(拥有者/组/其他人) 三种身份各有自己的 read/write/execute权限。
数字 | r:4 w:2 x:1 |
符号 | u=rwx g=rx o=r |
chmod [-R] xyz 文件或目录
xyz:就是刚刚提到的数字类型的权限属性,为rwx属性数值的相加;
-R:进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更;
用户和用户组管理
用户账号管理
useradd添加新用户账号
useradd 选项 用户名
-c comment:指定一段注释性描述。
-d 目录:指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组:指定用户所属的用户组。
-G 用户组,用户组:指定用户所属的附加组。
-s Shell文件:指定用户的登录Shell。
-u 用户号:指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
userdel删除帐号
userdel 选项 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除;
usermod修改帐号
usermod 选项 用户名
常用的选项与useradd命令中的选项一样
passwd口令管理
超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令;
passwd 选项 用户名
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
用户组管理
用户组的管理涉及用户组的添加、删除和修改,实际上就是对/etc/group文件的更新;
groupadd新增用户组
groupadd 选项 用户组
-g GID 指定新用户组的组标识号(GID);
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同;
groupdel删除用户组
groupdel 用户组
groupmod修改用户组
groupmod 选项 用户组
-g GID为用户组指定新的组标识号;
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同;
-n新用户组 将用户组的名字改为新名字;
newgrp切换用户组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组;
与用户账号有关的系统文件
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
/etc/passwd
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。这个文件对所有用户都是可读的。
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow
由于/etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。只有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。
/etc/shadow文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
用户组的所有信息都存放在/etc/group文件中;
每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组;
当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组;
用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员;
用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:
组名:口令:组标识号:组内用户列表
文件描述符
在Linux系统中:一切皆文件;
Linux的文件文件可分为:普通文件、目录文件、链接文件、设备文件;
文件描述符(file descriptor,简写fd)是内核为了高效管理已被打开的文件所创建的索引(fd的值其实就是进程中打开文件列表的下标索引),其是一个非负整数(通常是小整数)用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符;
程序刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误,如果此时去打开一个新的文件,它的文件描述符会是3:(新打开一个文件/socket,则FD增加1,直到操作系统给出的上限限制为止)
文件描述符标明每一个被进程所打开的文件或socket,每一个进程都有自己的文件描述符集合,由于文件描述符在一个进程中是特有的,因此不能在多个进程中间实现共享,而唯一的例外是在父/子进程之间,当一个进程调用fork时,调用fork时打开的所有文件在子进程和父进程中仍然是打开的,而且子进程写入文件描述符会影响到父进程的同一文件描述符,反之亦然;
Unix操作系统通常给每个进程能打开的文件数量强加一个限制,unix通常有一个系统级的限制;在UNIX/Linux平台上,对于控制台(Console)的标准输入(0),标准输出(1),标准错误(2)输出也对应了三个文件描述符;