澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

命令行的基本认识,linux命令之文件系统权限操作

开始前我们必须先认识绝对路径与相对路径

  1.   umask:设置权限掩码  语法:umask [参数]

linux的命令很多,但我们常用的linux命令却不是很多,掌握常见的linux命令,提高我们的工作效率。之前一直在使用,但没有总结过,现在总结一下比较简单和常见的命令。命令输完没有错误提示,则表示命令执行成功。

本文介绍Linux的用户管理

Linux指令中文说明传送入口

绝对路径是从盘符开始的路径 ;例如:/etc/sysconfig/network (从根直接指到network)

命令说明:umask可以单独使用,可以设置目录与文件的默认权限,默认权限掩码是022,所以默认目录权限是777-022=755,读权限是4,写权限是2,执行权限是1,第一个7是所有者的权限,第二个5是所属组的权限,第三个是其他人的权限,而新建的文件就是666-022=644,

一.和目录/文件相关类

用户管理

Linux 是一个可以实现多用户登陆的操作系统,不同用户可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。
但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于用户管理和权限机制,不同用户不可以轻易地查看、修改彼此的文件。
与windows相比LINUX中的用户和账号的作用是一样的。
都是基于用户对访问的资源做控制,只不过在表示的细节上有差异。

整理自Linux指令中文说明

相对路径是从当前自己所在位置开始的路径;例如我当前不在/(根)之下,而在etc这个文件夹里。那我要去sysconfig这个文件。只需要cd sysconfig就可以了      

参数说明:你要查看或设置的文件或目录的权限掩码

1 .cd :进入某个文件夹,进行路径切换
  • cd aaa 进入aaa目录下
  • cd ~ 直接回到根目录
  • cd .. 回到上一级目录

用户帐号

类型 说明
超级用户 root账户拥有整个系统至高无上的权利
本地用户 由管理员创建,权限受到一定的限制,在自己的宿主目录是完整的权限
系统用户 一般是不会登录系统的,用于维持某个服务程序正常运行
伪用户 linux中任何一个命令的操作都必须有一个用户的身份
伪用户一般和系统或者程序服务相关
bin、daemon、shutdown 、halt等
linux默认都有这些伪用户
伪用户通常不需要或无法登陆系统,可以没有宿主目录
源码安装nginx,运行nginx web服务器默认使用nobody用户

man Linux 帮助文档手册

man命令 是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

语法: man (选项) (参数)

参数:
数字:指定从哪本man手册中搜索帮助;
关键字:指定要搜索帮助的关键字。

数字代表内容
1:用户在shell环境可操作的命令或执行文件;
2:系统内核可调用的函数与工具等
3:一些常用的函数(function)与函数库(library),大部分为C的函数库(libc)
4:设备文件说明,通常在/dev下的文件
5:配置文件或某些文件格式
6:游戏(games)
7:惯例与协议等,如Linux文件系统,网络协议,ASCII code等说明
8:系统管理员可用的管理命令
9:跟kernel有关的文件

可选参数说明:
-a:在所有的man帮助手册中搜索
-f:等价于whatis指令,显示给定关键字的简短描述信息
-P:指定内容时使用分页程序
-M:指定man手册搜索的路径

示例用法: man ls 查看指令ls的用法

      阅读前请先注意在[ ]中的文字意为可选。 

命令示例:单独使用umask显示为0022,第一个数表示八进制数,可忽略不计,但可以自行设置

2.mkdir:创建某个文件夹,后面直接跟要创建的文件夹名。

用户分类

根据帐号的位置:可分为本地帐号、远程(域)帐号
根据帐号的功能:

类型 UID
超级用户(root) 0
普通用户 1-999为系统用户
1000 为本地用户
RHEL中本地用户UID从500开始

UID即每个用户的身份标示,类似于每个人的身份证号码

yum 基于RPM的软件包管理器

yum命令 是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记

语法:yum(选项)(参数)

参数:
install:安装rpm软件包;
update:更新rpm软件包;
check-update:检查是否有可用的更新rpm软件包;
remove:删除指定的rpm软件包;
list:显示软件包的信息;
search:检查软件包的信息;
info:显示指定的rpm软件包的描述信息和概要信息;
clean:清理yum过期的缓存;
shell:进入yum的shell提示符;
resolvedep:显示rpm软件包的依赖关系;
localinstall:安装本地的rpm软件包;
localupdate:显示本地rpm软件包进行更新;
deplist:显示rpm软件包的所有依赖关系。

可选项
-y:对所有的提问都回答“yes”
-c:指定配置文件
-q:安静模式
-v:详细模式
-d:设置调试等级(0-10)
-e:设置错误等级(0-10)
-R:设置yum处理一个命令的最大等待时间
-C:完全从缓存中运行,而不去下载或者更新任何头文件

示例用法:
安装

yum install              #全部安装
yum install package1     #安装指定的安装包package1
yum groupinsall group1   #安装程序组group1
更新和升级

yum update               #全部更新
yum update package1      #更新指定程序包package1
yum check-update         #检查可更新的程序
yum upgrade package1     #升级指定程序包package1
yum groupupdate group1   #升级程序组group1
查找和显示

# 检查 MySQL 是否已安装
yum list installed | grep mysql
yum list installed mysql*

yum info package1      #显示安装包信息package1
yum list               #显示所有已经安装和可以安装的程序包
yum list package1      #显示指定程序包安装情况package1
yum groupinfo group1   #显示程序组group1信息yum search string 根据关键字string查找安装包
删除程序

yum remove | erase package1   #删除程序包package1
yum groupremove group1             #删除程序组group1
yum deplist package1               #查看程序package1依赖情况
清除缓存

yum clean packages       #清除缓存目录下的软件包
yum clean headers        #清除缓存目录下的 headers
yum clean oldheaders     #清除缓存目录下旧的 headers

1.ls   2.pwd   3.cd   4.touch   5.echo   6.mkdir   7.cp   8.mv   9.rmdir   10.rm  

如:umask 777 

3.cp:复制命令
  • 复制单个文件到文件夹
![](https://upload-images.jianshu.io/upload_images/3023838-da1eea4905bd5999.png)

cp的用法
  • 复制文件夹到文件夹中,加上参数-r

澳门新浦京娱乐场网站 1

cp复制文件夹

  • 更多的用法,可以使用cp --help 命令来查看

用户组分类

根据帐号的位置:可分为本地用户组、远程(域)用户组
根据帐号的功能:

类型 GID
超级用户组(root) 0
普通用户组 1-999为系统用户组
1000 为本地用户组

vi 功能强大的纯文本编辑器

vi命令 是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。

vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入

语法:vi(选项)(参数)

常用内置命令如下:
Ctrl u:向文件首翻半屏;
Ctrl d:向文件尾翻半屏;
Ctrl f:向文件尾翻一屏;
Ctrl b:向文件首翻一屏;
Esc:从编辑模式切换到命令模式;
ZZ:命令模式下保存当前文件所做的修改后退出vi;
:行号:光标跳转到指定行的行首;
:$:光标跳转到最后一行的行首;
x或X:删除一个字符,x删除光标后的,而X删除光标前的;
D:删除从当前光标到光标所在行尾的全部字符;
dd:删除光标行整行内容;
ndd:删除当前行及其后n-1行;
nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示 查找下一处按/ Enter;
?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示 查找下一处按? Enter;
a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
a:在当前字符后添加文本;
A:在行末添加文本;
i:在当前字符前插入文本;
I:在行首插入文本;
o:在当前行后面插入一空行;
O:在当前行前面插入一空行;
:wq:在命令模式下,执行存盘退出操作;
:w:在命令模式下,执行存盘操作;
:w!:在命令模式下,执行强制存盘操作;
:q:在命令模式下,执行退出vi操作;
:q!:在命令模式下,执行强制退出vi操作;
:e文件名:在命令模式下,打开并编辑指定名称的文件;
:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
:set number:在命令模式下,用于在最左端显示行号;
:set nonumber:在命令模式下,用于在最左端不显示行号;


选项:
 <行号>:从指定行号的行开始显示文本内容;
-b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
-l:使用lisp模式,打开“lisp”和“showmatch”;
-m:取消写文件功能,重设“write”选项;
-M:关闭修改功能;
-n:不实用缓存功能;
-o<文件数目>:指定同时打开指定数目的文件;
-R:以只读方式打开文件;
-s:安静模式,不现实指令的任何错误信息。

参数
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。

11.nano   12.vi/vim   13.shred   14.cat   15.nl   16.tac   17.more   18.less   19.head   20.tail   

设置完后,你新创建一个文件或目录,会发现没有任何权限的显示

4.rm删除命令
  • 删除单个文件,用法: rm 文件名
  • 删除文件夹,用法:rm -r 文件夹名
  • 强制删除文件夹,用法:rm -rf 文件夹名

配置文件

关于用户和组的相关配置文件存放在以下目录中:

类型 账户信息 密码信息
用户 /etc/passwd /etc/shadow
/etc/group /etc/gshadow

ls 显示目录内容列表

ls命令 用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件

语法:ls(选项)(参数)

选项
-a, --all     不隐藏任何以. 开始的项目
-A, --almost-all    列出除. 及.. 以外的任何项目
-l  列出文件的详细列表信息
-h 跟l一起使用 按可读方向显示文件大小(K M G)
-s 显示分配的系统文件大小 默认按K显示 可以配合h查看更方便
-S 按文件大小排序
-t  按文件修改时间排序
-r  反向排序
-x 按行显示

参数
目录:指定要显示列表的目录,也可以是只查看指定的文件

实例
ls       # 仅列出当前目录可见文件
ls -l |grep ^d  #只显示文件夹
ls -l |grep ^-  #只显示文件
ls -l    # 列出当前目录可见文件详细信息
ls -t    # 按修改时间排序
ls -rt   # 按修改时间倒叙排序
ls -hl   # 列出详细信息并以可读大小显示文件大小
ls -al   # 列出所有文件(包括隐藏)的详细信息

21.grep    22.cut   23.sort   24.tr   25.wc   26.uniq   27.tee   28.diff   29.du   30.ln

 

5.mv 把文件或文件夹移到别的地方,也可以作重命名用
  • 将文件夹重命名
![](https://upload-images.jianshu.io/upload_images/3023838-9397054cc8cf7583.png)

将文件夹t重命名为aaa
  • 将文件夹移到另外一个文件夹中
![](https://upload-images.jianshu.io/upload_images/3023838-a18ad3378393b02a.png)

将aaa移到temp中
  • mv 还可以移动文件和重命名文件,同上

用户账户信息文件说明

用户的账户信息保存在/etc/passwd文件中
这个文件以如下格式保存了每系统帐户的所有信息:

root:x:0:0:root:/root:/bin/bash

用户名:密码占位符:UID:GID:用户描述:宿主目录:登录的shell

cd 切换用户当前工作目录

cd命令 用来切换工作目录至指定目录。 指定目录表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。

cd (选项) (参数)

选项
-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
- 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。
实例
cd    进入用户主目录;
cd ~  进入用户主目录;
cd -  返回进入此目录之前所在的目录;
cd ..  返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../..  返回上两级目录;
cd !$  把上个命令的参数作为cd参数使用。

31.type   32.file   33.stat   34.which   35.whatis   36.whereis   37.locate   38.find   39.help   40.man

  1.   chmod:更改文件或目录的权限  语法:chmod [选项][参数]
6.pwd:显示当前所在的目录

用户密码信息文件说明

用户的密码信息保存在/etc/shadow文件中
这个文件以如下格式保存了系统帐户的密码信息:

root:$1$LTbeEPHI$AuZ6b2iHVNdekNHu2WvSP/::0:99999:7:::

用户名:加密后的密码:最近更改密码的日期:密码不能修改的天数:密码过期时间:密码需要更改期限到来的前7天发出警告:密码过期了几天后还能修改密码:帐号过期时间:保留

cat 连接文件并打印到标准输出设备上

cat命令 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容

注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl S键,停止滚屏;按Ctrl Q键可以恢复滚屏。按Ctrl C(中断)键可以终止该命令的执行,并且返回Shell提示符状态

语法:cat(选项)(参数)

选项
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-v:用^和M-替代 出空格和Tab之外的nonprinting(不能打印的?中文字符等?)
-E:用$标示行位
-T:用^I标示Tab
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

参数
文件列表:指定要连接的文件列表。

实例
设ml和m2是当前目录下的两个文件

cat m1 (在屏幕上显示文件ml的内容)
cat m1 m2 (同时显示文件ml和m2的内容)
cat m1 m2 > file (将文件ml和m2合并后放入文件file中)

41.useradd   42.groupadd   43.passwd   44.gpasswd   45.usermod   46.groupmod   47.userdel   48.groupdel   49.id   50.newgrp

命令说明:可以自行更改文件或目录的读,写,执行的权限,分别显示为r,w,x,也可用数字代替,r为读权限,数字为4,w为写权限,数字为2,x为执行权限,数字为1,所有的权限为a,也就是7。

7.ls:显示当前文件夹里的内容

ls -l显示详细信息,包括日期、大小、权限、所有者等;
ls -a这会显示隐藏文件,即文件名是以 . 点开头的文件,这些文件或文件夹平时是不显示的;

用户组信息文件说明

用户组信息保存在/etc/shadow文件中
这个文件以如下格式保存了系统用户组的所有信息:

root:x:0:tangbb

组名:组密码占位符:GID:组成员列表

grep 强大的文本搜索工具

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活

选项
-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         # 在显示符合范本样式的那一列之前,标示出该列的编号。
-q --quiet或--silent     # 不显示任何信息。
-R/-r  --recursive       # 此参数的效果和指定“-d recurse”参数相同。
-s --no-messages  # 不显示错误信息。
-v --revert-match # 反转查找 输出除之外的所有行。
-V --version      # 显示版本信息。   
-w --word-regexp  # 只显示全字符合的列。
-x --line-regexp  # 只显示全列符合的列。
-y # 此参数效果跟“-i”相同。
-o # 只输出文件中匹配到的部分。


规则表达式:
^    # 锚定行的开始 如:'^grep'匹配所有以grep开头的行。    
$    # 锚定行的结束 如:'grep$'匹配所有以grep结尾的行。    
.    # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。    
*    # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    
.*   # 一起用代表任意字符。   
[]   # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    
[^]  # 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行。    
(..)  # 标记匹配字符,如'(love)',love被标记为1。    
<      # 锚定单词的开始,如:'<grep'匹配包含以grep开头的单词的行。    
>      # 锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。    
x{m}  # 重复字符x,m次,如:'0{5}'匹配包含5个o的行。    
x{m,}   # 重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。    
x{m,n}  # 重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5--10个o的行。   
w    # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   
W    # w的反置形式,匹配一个或多个非单词字符,如点号句号等。   
b    # 单词锁定符,如: 'bgrepb'只匹配grep。


grep命令常见用法
在文件中搜索一个单词,命令会返回一个包含 “match_pattern” 的文本行:
grep match_pattern file_name
grep "match_pattern" file_name

在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...

输出除之外的所有行 -v 选项:
grep -v "match_pattern" file_name

标记匹配颜色 --color=auto 选项:
grep "match_pattern" file_name --color=auto

使用正则表达式 -E 选项:
grep -E "[1-9] "
或
egrep "[1-9] "

只输出文件中匹配到的部分 -o 选项:
echo this is a test line. | grep -o -E "[a-z] ."
line.
echo this is a test line. | egrep -o "[a-z] ."
line.

统计文件或者文本中包含匹配字符串的行数 -c 选项:
grep -c "text" file_name

输出包含匹配字符串的行数 -n 选项:
grep "text" -n file_name
或
cat file_name | grep "text" -n
#多个文件
grep "text" -n file_1 file_2

打印样式匹配所位于的字符或字节偏移:
echo gun is not unix | grep -b -o "not"
7:not #一行中字符串的字符便宜是从该行的第一个字符开始计算,起始值为0。选项  **-b -o**  一般总是配合使用。

搜索多个文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...

grep递归搜索文件
在多级目录中对文本进行递归搜索:
grep "text" . -r -n # .表示当前目录。

忽略匹配样式中的字符大小写:
echo "hello world" | grep -i "HELLO"
hello

选项 -e 制动多个匹配样式:
echo this is a text line | grep -e "is" -e "line" -o
is
line

#也可以使用 -f 选项来匹配多个样式,在样式文件中逐行写出需要匹配的字符。
cat patfile
aaa
bbb
echo aaa bbb ccc ddd eee | grep -f patfile -o


在grep搜索结果中包括或者排除指定文件:
#只在目录中所有的.php和.html文件中递归搜索字符"main()"
grep "main()" . -r --include *.{php,html}
#在搜索结果中排除所有README文件
grep "main()" . -r --exclude "README"
#在搜索结果中排除filelist文件列表里的文件
grep "main()" . -r --exclude-from filelist


使用0值字节后缀的grep与xargs:
# 测试文件:
echo "aaa" > file1
echo "bbb" > file2
echo "aaa" > file3
grep "aaa" file* -lZ | xargs -0 rm
#执行后会删除file1和file3,grep输出用-Z选项来指定以0值字节作为终结符文件名(),xargs -0 读取输入并用0值字节终结符分隔文件名,然后删除匹配文件,-Z通常和-l结合使用。

grep静默输出:
grep -q "test" filename
# 不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。


打印出匹配文本之前或者之后的行:
# 显示匹配某个结果之后的3行,使用 -A 选项:
seq 10 | grep "5" -A 3
5
6
7
8
# 显示匹配某个结果之前的3行,使用 -B 选项:
seq 10 | grep "5" -B 3
2
3
4
5
# 显示匹配某个结果的前三行和后三行,使用 -C 选项:
seq 10 | grep "5" -C 3
2
3
4
5
6
7
8

# 如果匹配结果有多个,会用“--”作为各匹配结果之间的分隔符:
echo -e "anbncnanbnc" | grep a -A 1
a
b
--
a
b

51.su   52.finger   53.chfn   54.chsh   55.chage   56.whoami   57.hostname   58.uname   59.date   60.clear

常用选项说明:

8.tar:tar包文件命令
  • tar -cf all.tar *.txt这条命令是将所有.txt的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名

澳门新浦京娱乐场网站 2

tar打包

  • tar -tf all.tar这条命令是列出all.tar包中所有文件,-t是列出文件的意思

    澳门新浦京娱乐场网站 3

    列出tar包内容

  • tar -rf all.tar *.gif  这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

  • tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思

用户组密码信息文件说明

用户组密码信息保存在/etc/gshadow文件中
这个文件以如下格式保存了系统用户组的密码信息:

root:x:0:

组名:组密码:组管理者列表:组用户列表

/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。
比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码。

more 显示文件内容,每次显示一屏

该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)

语法:more(语法)(参数)

常用操作:
按Space键:显示文本的下一屏内容。
按Enter键:只显示文本的下一行内容。
/:进入搜索模式  后面匹配的关键字,可以在文本中寻找下一个相匹配的模式。
n:    按上次/模式输入的匹配查找下一个
h:显示帮助屏,该屏上有相关的帮助信息。
d:  向下滚动指定的行数
b:显示上一屏内容。(只在使用more指令查看文件时有效 不支持管道操作)
q:退出more命令。
v:   用vi 编辑 且定位到当前行
=:   显示当前行数
s:   向后跳过x行显示下一屏  默认配置是1行
f:   向后跳过x屏显示下一屏 默认配置是1屏
!<cmd>: 可以在一个子shell 下 执行命令操作
:f:   查看文件名和当前行号信息
.:  重复执行上次操作

选项
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
 <数字>:从指定数字的行开始显示。
参数
文件:指定分页显示内容的文件。

实例
#显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比。
more -dc file

#显示文件file的内容,每10行显示一次,而且在显示之前先清屏。
more -c -10 file

61.users   62.groups   63.who   64.w   65.uptime   66.sudo   67.exit   68.reboot   69.poweroff   70.halt

-R:递归更改目录及之下的所有文件的权限

9.zip:zip包命令
  • 压缩文件
    语法:zip 压缩后的文件名 被压缩的文件
    eg:zip text.zip *.text将后缀为text的文件压缩在text.zip中

  • 递归压缩一个目录及目录的文件:
    语法: ** zip -r 压缩的文件名 被压缩的目录**
    eg:zip -r log-dir.zip /var/log/

  • 解压缩zip文件
    语法:** unzip 压缩文件**
    eg:unzip log-dir.zip

  • 如何查看压缩包中的内容和文件
    eg : unzip -l log-dir.zip

  • 如何使用-P 参数来对压缩文件进行设置密码
    语法:** zip -p 密码 压缩文件名.zip 被压缩文件**
    eg: zip -P 123456 log-protect.zip /var/log/
    在解压缩的时候需要输入密码才能解压。

  • 使用参数-e来对压缩文件设置安全密码
    eg: zip -e log-secure.zip /var/log/*

  • 如何检查压缩文件的完整性
    unzip -t file-name.zip**

解决模板文件被删之后用户名显示不正常的问题

当添加新的用户帐户时,默认会执行下列操作:
它的主目录就会被创建(一般是"/home/用户名",除非你特别设置)
一些隐藏文件 如.bash_logout, .bash_profile 以及 .bashrc 会被复制到用户的主目录
会创建一个和用户名同样的组(除非你给新创建的用户指定了组)

  • 删除用户的规则文件

    [root@VM_200_13_centos ~]# useradd test
    [root@VM_200_13_centos ~]# echo 123456 | passwd --stdin test
    Changing password for user test.
    passwd: all authentication tokens updated successfully.
    [root@VM_200_13_centos ~]# ls -a /home/test
    .  ..  .bash_logout  .bash_profile  .bashrc
    [root@VM_200_13_centos ~]# rm -rf /home/test/.bash*
    [root@VM_200_13_centos ~]# su - test
    Password:
    bash-4.2$ su - test
    

    从上面最后一行看出用户名显示为bash-4.2

  • 恢复用户的规则文件

    bash-4.2$ su - test
    Password:
    Last login: Sun Aug 14 01:38:21 CST 2016 on pts/0
    -bash-4.2$ su
    Password:
    [root@VM_200_13_centos test]# cp /etc/skel/.bash* /home/test/
    [root@VM_200_13_centos test]# chown test:test /home/test/.bash*
    [root@VM_200_13_centos test]# su - test
    Last login: Sun Aug 14 01:40:15 CST 2016 on pts/0
    [test@VM_200_13_centos ~]$
    

    从上面最后一行看出用户名已经正常显示

less 分屏上下翻页浏览文件内容

less命令 的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览,加强版more

语法:less(选项)(参数)

常用操作:
按Space键:显示文本的下一屏内容。
按Enter键:只显示文本的下一行内容。
/:进入搜索模式 后面输入匹配关键字,可以在文本中寻找下一个相匹配的模式。
n:    按上次/模式输入的匹配查找下一个
N(大写的):   按上次/模式输入的匹配查找上一个
h:显示帮助屏,该屏上有相关的帮助信息。
d:  向下滚动指定的行数 默认半屏
b:显示上一屏内容
q:退出more命令。
v:   用vi 编辑 且定位到当前行 
=:   显示当前屏行数等详细信息
R(大写的): 刷新当前屏信息 放弃输入修改 用于浏览文件时 外部修改 重新载入()
g:回到文件第一行
G(大写的):回到文件最后一行
!<cmd>: 可以在一个子shell 下 执行命令操作
在命名模式的:后输入数字 往后跳指定的行

选项
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。
参数
文件:指定要分屏显示内容的文件。

实例
sudo less /var/log/shadowsocks.log

71.shutdown   72.init   73.alias   74.unalias   75.history   76.runlevel   77.chkconfig   78.write   79.last   80.lastlog

参数说明:你需要更改的那个文件或者目录的名字

10.find:在一个目录(及子目录)中搜索文件,可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。
  • 按文件名查找。
    eg:find /dir -name filename表示在/dir目录及其子目录下面查找名字为filename的文件

澳门新浦京娱乐场网站 4

find按name查找

  • 按照文件权限来查找文件。
    eg : find . -perm 211 –print 在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件

更多find 的用法请戳这篇博客

用户操作

介绍用户的添加删除等操作

tail 在屏幕上显示指定文件的末尾若干行

tail命令 用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

注意:如果表示字节或行数的N值之前有一个” ”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。

语法:tail(选项)(参数)

选项:
--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c<N>或——bytes=<N>:输出文件尾部的N(N为整数)个字节内容;
-f<name/descriptor>或;--follow<nameldescript>:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“--retry"连用时功能相同;
-n<N>或——line=<N>:输出文件的尾部N(N位数字)行内容。
--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。
参数:
文件列表:指定要显示尾部内容的文件列表。

实例:
tail file (显示文件file的最后10行)
tail -n  20 file (显示文件file的内容,从第20行至文件末尾)
tail -c 10 file (显示文件file的最后10个字符)

 

命令示例:比如有一个111的新创建的文件,因为权限掩码的关系,文件默认是666-0222=644,也就是所有者可读可写,所属组和其他人可读,我们要让111变成所有者拥有所有权限,所属组拥有可读可写,其他人没有权限,如下:

11. grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

添加用户

命令:useradd
作用:添加用户
语法:useradd [选项] 用户名

选项 说明
-u 创建用户时指定UID
-d 创建用户时指定宿主目录
不使用该选项时会默认会以用户名在/home目录下创建宿主目录
-g 创建用户时指定起始组(起始组只能有一个)
-G 创建用户时指定附加组(可以有多个附加组)
-s 创建用户时指定登录的shell
-M 创建用户时不创建宿主目录

创建用户tangpeng

[root@VM_200_13_centos ~]# ls /home
[root@VM_200_13_centos ~]# useradd tangpeng
[root@VM_200_13_centos ~]# ls /home
tangpeng

指定UID创建用户tangdd

[root@VM_200_13_centos ~]# useradd -u 9527 tangdd   
[root@VM_200_13_centos ~]# ls /home
tangdd  tangpeng

创建用户tangjj指定宿主目录为/home/zhazha

[root@VM_200_13_centos ~]# useradd tangjj -d /home/zhazha
[root@VM_200_13_centos ~]# ls /home
tangdd  tangpeng  zhazha

创建用户tangmm指定起始组为tangdd

[root@VM_200_13_centos ~]# useradd -g tangdd tangmm
[root@VM_200_13_centos ~]# id tangmm
uid=9529(tangmm) gid=9528(tangdd) groups=9528(tangdd)

创建用户指定附加组为root

[root@VM_200_13_centos ~]# id tangbb
uid=9530(tangbb) gid=9530(tangbb) groups=9530(tangbb),0(root)

指定用户登录的shell且不创建宿主目录

[root@VM_200_13_centos ~]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@VM_200_13_centos ~]# useradd -M -s /usr/sbin/nologin nginx
[root@VM_200_13_centos ~]# ls /home
tangbb  tangdd  tangmm  tangpeng  zhazha

tar Linux下的归档使用工具 用来打包和备份

tar命令 可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件,这个是两步操作。 tar可以将上述操作合并执行,解包和解压缩也类似。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)

语法:tar(选项)(参数)

选项
-z:有gzip属性的.giz
-Z:有compress 属性的.Z(已过时)
- j:有bz2属性的 .bz2
-J:有xz属性的 .xz
-c:建立新的备份文件;
-x:从备份文件中还原文件;
-t:列出备份文件的内容;
-v:显示指令执行过程;
-f  <备份文件>或--file=<备份文件>:指定备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-d:  跟备份文件中的对比不同
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p:用原来的文件权限还原文件;
-P:文件名使用绝对名称,不移除文件名称前的“/”号;
-N:只将较指定日期更新的文件保存到备份文件里;
--delete: 从备份文件中删除
--exclude=<范本样式>:排除符合范本样式的文件。
参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

参数
文件或目录:指定要打包的文件或目录列表。
实例
其实最简单的使用 tar 就只要记忆底下的方式即可(gzip j替换成z 其他类似):
压 缩:tar -jcvf  filename.tar.bz2  要被压缩的文件或目录名称
查 询:tar -jtvf  filename.tar.bz2
解压缩:tar -jxvf filename.tar.bz2 -C 欲解压缩的目录

# 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -cvf all.tar *.jpg

# 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
tar -rvf all.tar *.gif

# 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -uvf all.tar logo.gif


zip格式
压缩: zip -r [目标文件名].zip [原文件/目录名]
解压: unzip [原文件名].zip
注:-r参数代表递归

tar格式(该格式仅仅打包,不压缩)
打包:tar -cvf [目标文件名].tar [原文件名/目录名]
解包:tar -xvf [原文件名].tar
注:c参数代表create(创建),x参数代表extract(解包),v参数代表verbose(详细信息),f参数代表filename(文件名),所以f后必须接文件名。

tar.gz格式
方式一:利用前面已经打包好的tar文件,直接用压缩命令。
压缩:gzip [原文件名].tar
解压:gunzip [原文件名].tar.gz
方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -zcvf [目标文件名].tar.gz [原文件名/目录名]
解压并解包: tar -zxvf [原文件名].tar.gz
注:z代表用gzip算法来压缩/解压。

tar.bz2格式
方式一:利用已经打包好的tar文件,直接执行压缩命令:
压缩:bzip2 [原文件名].tar
解压:bunzip2 [原文件名].tar.bz2
方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -jcvf [目标文件名].tar.bz2 [原文件名/目录名]
解压并解包: tar -jxvf [原文件名].tar.bz2
注:小写j代表用bzip2算法来压缩/解压。

tar.xz格式
方式一:利用已经打包好的tar文件,直接用压缩命令:
压缩:xz [原文件名].tar
解压:unxz [原文件名].tar.xz
方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -Jcvf [目标文件名].tar.xz [原文件名/目录名]
解压并解包: tar -Jxvf [原文件名].tar.xz
注:大写J代表用xz算法来压缩/解压。

tar.Z格式(已过时)
方式一:利用已经打包好的tar文件,直接用压缩命令:
压缩:compress [原文件名].tar
解压:uncompress [原文件名].tar.Z
方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -Zcvf [目标文件名].tar.Z [原文件名/目录名]
解压并解包: tar -Zxvf [原文件名].tar.Z
注:大写Z代表用ncompress算法来压缩/解压。另,ncompress是早期Unix系统的压缩格式,但由于ncompress的压缩率太低,现已过时。

jar格式
压缩:jar -cvf [目标文件名].jar [原文件名/目录名]
解压:jar -xvf [原文件名].jar
注:如果是打包的是Java类库,并且该类库中存在主类,那么需要写一个META-INF/MANIFEST.MF配置文件,内容如下:
Manifest-Version: 1.0
Created-By: 1.6.0_27 (Sun Microsystems Inc.)
Main-class: the_name_of_the_main_class_should_be_put_here
然后用如下命令打包:
jar -cvfm [目标文件名].jar META-INF/MANIFEST.MF [原文件名/目录名] 这样以后就能用“java -jar [文件名].jar”命令直接运行主类中的public static void main方法了。

7z格式
压缩:7z a [目标文件名].7z [原文件名/目录名]
解压:7z x [原文件名].7z
注:这个7z解压命令支持rar格式,即:

7z x [原文件名].rar

其它例子
将文件全部打包成tar包 :

tar -cvf log.tar log2012.log    仅打包,不压缩! 
tar -zcvf log.tar.gz log2012.log   打包后,以 gzip 压缩 
tar -jcvf log.tar.bz2 log2012.log  打包后,以 bzip2 压缩

 

chmod 760 /111

12. less查看文件内容,可以用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,适合大文件

less和more的区别:
more:只能向后看文件,不能前翻
less:既可以向前看文件也可以向后看

  • 查看文件 less a.txt
  • ps查看进程信息并通过less分页显示 ps -ef |less
  • 查看命令历史使用记录并通过less分页显示 history | less
  • 浏览多个文件 less a.txt btxt c.txt

删除用户

命令:userdel
作用:删除用户
语法:userdel [选项] 用户名

选项 说明
-f 强制删除用户即便是登录中的用户
-r 删除宿主目录和邮件
-Z 删除和这个用户关联的SELinux用户

删除用户tangpeng同时删除宿主目录和邮件

[root@VM_200_13_centos ~]# userdel -r tangpeng
[root@VM_200_13_centos ~]# ls /home
tangbb  tangdd  tangmm  zhazha

find 在指定目录下查找文件

find命令 用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法:find(选项)(参数)

-amin <分钟>:查找在指定时间曾被访问过的文件或目录,单位以分钟计算;
-anewer <参考文件或目录>:查找其访问时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime <24小时数>:查找在指定时间曾被访问过的文件或目录,单位以24小时计算(n*24);
-cmin <分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer <参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime <24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算(n*24);
-mmin<分钟>:查找在指定时间曾被更改过数据的文件或目录,单位以分钟计算;
-mtime<24小时数>:查找在指定时间曾被更改过数据的文件或目录,单位以24小时计算(n*24);
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-size<文件大小>:查找符合指定的文件大小的文件;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-typ<文件类型>:只寻找符合指定的文件类型的文件;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令 参数{} 表示全部文件 以;结尾;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-depth:从指定目录下最深层的子目录开始查找;
-empty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-false:将find指令的回传值皆设为False;
-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-help或——help:在线帮助;
-lname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mount:此参数的效果和指定“-xdev”相同;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-true:将find指令的回传值皆设为True;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-version或——version:显示版本信息;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。


参数:
起始目录:查找文件的起始目录。

实例:
#数字参数用法
-n 表示 小于n
 n 表示 大于 n
n 表示等于

# 当前目录搜索所有文件,文件内容 包含 “140.206.111.111” 的内容
find . -type f -name "*" | xargs grep "140.206.111.111"

#在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"
#同上,但忽略大小写
find /home -iname "*.txt"

#当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . ( -name "*.txt" -o -name "*.pdf" )
或
find . -name "*.txt" -o -name "*.pdf"

#匹配文件路径或者文件
find /usr/ -path "*local*"

#基于正则表达式匹配文件路径
find . -regex ".*(.txt|.pdf)$"
#同上,但忽略大小写
find . -iregex ".*(.txt|.pdf)$"

#否定参数
#找出/home下不是以.txt结尾的文件
find /home ! -name "*.txt"

#根据文件类型进行搜索
find . -type 类型参数
类型参数列表:
f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo

#基于目录深度搜索
#向下最大深度限制为3
find . -maxdepth 3 -type f

#搜索出深度距离当前目录至少2个子目录的所有文件
find . -mindepth 2 -type f

#根据文件时间戳进行搜索
find . -type f 时间戳
UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间 (-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间 (-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间 (-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

#搜索最近七天内被访问过的所有文件
find . -type f -atime -7

#搜索恰好在七天前被访问过的所有文件
find . -type f -atime 7

#搜索超过七天内被访问过的所有文件
find . -type f -atime  7

#搜索访问时间超过10分钟的所有文件
find . -type f -amin  10

#找出比file.log修改时间更长的所有文件
find . -type f -newer file.log

#根据文件大小进行匹配
find . -type f -size 文件大小单元
#文件大小单元:
b —— 块(512字节)
c —— 字节
w —— 字(2字节)
k —— 千字节
M —— 兆字节
G —— 吉字节

#搜索大于10KB的文件
find . -type f -size   10k
#搜索小于10KB的文件
find . -type f -size -10k
#搜索等于10KB的文件
find . -type f -size 10k

#删除匹配文件
#删除当前目录下所有.txt文件
find . -type f -name "*.txt" -delete

#根据文件权限/所有权进行匹配
#当前目录下搜索出权限为777的文件
find . -type f -perm 777
#找出当前目录下权限不是644的php文件
find . -type f -name "*.php" ! -perm 644

#找出当前目录用户tom拥有的所有文件
find . -type f -user tom
#找出当前目录用户组sunk拥有的所有文件
find . -type f -group sunk

#借助-exec选项与其他命令结合使用
#找出当前目录下所有root的文件,并把所有权更改为用户tom
find .-type f -user root -exec chown tom {} ;
上例中, {}  用于与 -exec 选项结合使用来匹配所有文件,然后会被替换为相应的文件名 ;结尾。

#找出自己家目录下所有的.txt文件并删除
find $HOME/. -name "*.txt" -ok rm {} ;
上例中, -ok 和 -exec 行为一样,不过它会给出提示,是否执行相应的操作。

#查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中
find . -type f -name "*.txt" -exec cat {} ;> all.txt

#将30天前的.log文件移动到old目录中
find . -type f -mtime  30 -name "*.log" -exec cp {} old ;

#找出当前目录下所有.txt文件并以“File:文件名”的形式打印出来
find . -type f -name "*.txt" -exec printf "File: %sn" {} ;

#因为单行命令中-exec参数中无法使用多个命令,以下方法可以实现在-exec之后接受多条命令
-exec ./text.sh {} ;

#搜索但跳出指定的目录
#查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk
find . -path "./sk" -prune -o -name "*.txt" -print

#要列出所有长度为零的文件
find . -empty
  1.   ls:显示目录内容  语法:ls[选项][参数]   (若单独使用ls即显示当前目录内容)

用ls -l查看/111可以看到显示为-rwxrw----,第一个‘-’,为文件的类型,显示-就是文件,d就是目录

13. tail:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
  • 显示文件末尾内容:显示文件最后5行的内容
    命令:tail -n 5 a.txt

  • 从第5行开始显示文件
    命令:tail -n 5 b.txt

  • 循环查看文件内容
    命令:tail -f test.log

修改用户

命令:usermod
作用:修改用户
语法:usermod [选项] 用户名

参数 说明
-u 修改用户UID
-d 修改用户宿主目录
-g 修改用户起始组
-G 修改用户附加组
-s 修改用登录的shell

file 用来探测给定文件的类型

file命令 用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程

语法:file(选项)(参数)

选项:
-b:列出辨识结果时,不显示文件名称;
-c:详细显示指令执行过程,便于排错或分析程序执行的情形;
-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;
-L:直接显示符号连接所指向的文件类别;
-m<魔法数字文件>:指定魔法数字文件;
-v:显示版本信息;
-z:尝试去解读压缩文件的内容。
参数
文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

实例:
显示文件类型

[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text

[root@localhost ~]# file -b install.log      <== 不显示文件名称
UTF-8 Unicode text

[root@localhost ~]# file -i install.log      <== 显示MIME类别。
install.log: text/plain; charset=utf-8

[root@localhost ~]# file -b -i install.log
text/plain; charset=utf-8


[root@localhost ~]# file /var/mail
/var/mail: symbolic link to `spool/mail'

[root@localhost ~]# file -L /var/mail
/var/mail: directory

[root@localhost ~]# file /var/spool/mail
/var/spool/mail: directory

[root@localhost ~]# file -L /var/spool/mail
/var/spool/mail: directory

命令说明:用来显示目录列表

 

14. tree以树状图列出目录的内容

语法:tree (选项) 参数
各项参数详见文章,使用之前需要用sudo apt-get install tree安装

澳门新浦京娱乐场网站 5

-a参数使用

切换用户

命令:su
作用:切换用户
语法:su [选项] [-] 用户名
说明:加上-会在切换用户时把环境变量一起进行切换

[root@VM_200_13_centos ~]# su - tangdd  

pwd 绝对路径方式显示用户当前工作目录

pwd命令 以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称

语法:pwd(选项

选项:
--help:显示帮助信息;
--version:显示版本信息。
实例:
[root@localhost ~]# pwd
/root

常用选项说明:

  1.   chown:更改文件或目录的所有者的所属组  语法:chown [选项][参数]
二.账号操作

查看用户

命令:id
作用:打印指定用户的用户和用户组信息
语法:id [选项] 用户

选项 说明
-Z 只打印当前用户的安全上下文(只在开启SELinux的内核系统中有效)
-g 只打印有效用户组
-G 打印所有用户组
-n 忽略(兼容其他版本)
-u 只打印有效的UID

命令:w
作用:显示登录到系统的用户
语法:w [选项]

选项 说明
-h 不显示有信息
-u 忽略当前进程用户名
-s 以短格式输出
-f 显示远程主机名字段
-o 使用旧样式数据
-i 使用ip来替代主机名

命令:who
作用:显示当前登录的用户信息
语法:who [选项]... [FILE|ARG1 ARG2]
说明:如果没有指定文件则使用 /var/run/utmp、/var/log/wtmp作为记录文件;ARG1 ARG2可以为am i或者mom likes等同于who -m

选项 说明
-a 输出所有信息,等同于 who -b -d -l -p -r -t -T -u
-b 上次系统启动时间
-d 输出撕掉的进程
-H 打印行标题栏
-l 打印登录系统的用户进程
-q 统计登录的所有用户数量
-r 输出当前运行级别
-s 只打印用户名,终端类型时间
-t 打印上一次系统时间修改
-u 列出登录恩典用户

命令:finger
作用:显示系统用户信息
语法:finger [选项] [用户] [用户@主机]
| 选项 | 说明 |
| :------------- | :------------- |
| -s | 显示用户的注册名、实际用户名、终端名称、写状态、停滞时间、登录时间等信息 |
| -l | 显示用户的注册名、实际用户名、宿主目录、登录shell、登录日志、邮件、计划 |
| -p | 除了不显示.plan文件和.project文件以外,与-l选项相同 |

rm 用于删除给定的文件和目录

rm 命令 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

语法:rm (选项)(参数)

选项
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-I:  删除三个以上或者递归删除时只确认一次
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
参数
文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

实例
#交互式删除当前目录下的文件test和example
rm -i test example
Remove test ?n(不删除文件test)
Remove example ?y(删除文件example)
删除当前目录下除隐含文件外的所有文件和子目录



#rm 命令删除文件
# rm 文件1 文件2 ... 
rm testfile.txt

#rm 命令删除目录
#rm -r [目录名称]
#-r 表示递归地删除目录下的所有文件和目录。
#-f 表示强制删除
rm -rf testdir
rm -r testdir

#删除操作前有确认提示
#rm -i [文件/目录]
rm -r -i testdir



#-f 选项(LCTT 译注:即 “force”)让此次操作强制执行,忽略错误提示
#rm -f [文件...]
#仅在某些场景下确认删除
#选项 -I,可保证在删除超过 3 个文件时或递归删除时(LCTT 译注: 如删除目录)仅提示一次确认。
rm -I file1 file2 file3

大多数命令都会有其对应的选项,即语法:ls后面的选项 ,这里列举比较常用的选项。

命令说明:更改文件或目录的的所有者和所属组,但若是只提供用户名的话,所属组是不会改变的,如果要同时改变所有者和所属组,需要用冒号或者点分开

1. su:切换成root身份

su 和su -的区别:
前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。

用户组操作

命令行的基本认识,linux命令之文件系统权限操作常用命令。介绍用户组的添加删除等操作

mkdir 用来创建目录

mkdir命令 用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。

mkdir (选项)(参数)

选项:
-Z:设置安全上下文,当使用SELinux时有效;
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
--version 显示版本信息。
参数:
目录:指定要创建的目录列表,多个目录之间用空格隔开。

实例:
#在目录/usr/meng下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问
mkdir -m 700 /usr/meng/test

#在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他#用户无权访问
mkdir -p-m 750 bin/os_1

-a:会显示包括隐藏文件(文件名以“.”开头)在内的所有文件

常用选项说明:

2. sudo:切换为管理员。

管理员可以授权于一些普通用户去执行一些root执行的操作,而不需要知道root的密码,它依赖于/etc/sudoers这个文件,可以授权于用户在主机上能够以管理员的身份执行什么样的管理命令,而且是有限的。这个文件相当于就是一个授权表。

已经授权的普通用户可以使用 **sudo -l **来查看自己可以执行那些命令

添加用户组

命令:groupadd
作用:添加用户组
语法:groupadd [选项] 组名

选项 说明
-f 如果用户组已经存在则不创建,并取消-g指定的GID
-g 指定GID
-p 指定组密码
-r 为该组创建系统帐号
-o 允许使用不唯一的GID创建用户组
-K 覆写/etc/login.defs文件中创建用户组的默认配置(修改时在该选项后以键值对形式进行修改)

GID即用户组的ID

mv 用来对文件或目录重新命名

mv命令 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

语法:mv(选项)(参数)

选项:
--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
 -v: 显示执行过程
参数:
源文件:源文件列表。
目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。

实例:
#将目录/usr/men中的所有文件移到当前目录(用.表示)中:
mv /usr/men/* .

#移动文件
mv file_1.txt  /home/office/

#移动多个文件
mv file_2.txt file_3.txt file_4.txt /home/office/
mv *.txt  /home/office/

#移动目录
mv directory_1/ /home/office/

#重命名文件
mv file_1.txt file_2.txt

#重命名目录
mv directory_1/ directory_2/

#打印移动信息
mv -v *.txt /home/office

#提示是否覆盖文件
mv -i file_1.txt /home/office

#源文件比目标文件新时才执行更新
mv -uv *.txt /home/office

#不要覆盖任何已存在的文件
mv -vn *.txt /home/office

#复制时创建备份
mv -bv *.txt /home/office

#无条件覆盖已经存在的文件
mv -f *.txt /home/office

-d:仅显示目录名,不会显示目录之下的内容,同样仅显示符号链接文件本身,不会显示其指向的目录列表

-R:递归更改目录及之下的所有文件的所有者和所属组

3. whoami用于知道当前的用户是谁

澳门新浦京娱乐场网站 6

whoami的用法

删除用户组

命令:groupdel
作用:删除用户组
语法:groupdel [选项] 组名
该命令比较简单,出去-h选项外的另一个-R选项都是不常用的

[root@VM_200_13_centos ~]# groupdel tangdd

cp 将源文件或目录复制到目标文件或目录中

cp命令 用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

语法:cp(选项)(参数)

选项:
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。

参数:
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

实例:
#下面的第一行中是 cp 命令和具体的参数(-r 是“递归”, -u 是“更新”,-v 是“详细”)
cp -r -u -v /usr/men/tmp ~/men/tmp

#版本备份 --backup=numbered 参数意思为“我要做个备份,而且是带编号的连续备份”。所以一个备份就是 1 号,第二个就是 2 号,等等。
cp --force --backup=numbered test1.py test1.py
test1.py test1.py.~1~ test1.py.~2~


#所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。

#将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1

#将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
cp -r /usr/men /usr/zh

#交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中
cp -i /usr/men m*.c /usr/zh

-i:显示文件的索引节点号。一个索引节点代表一个文件

参数说明:你需要更改的那个文件或者目录的名字

4. passwd:用于修改用户的密码

修改用户组

命令:groupmod
作用:修改用户组
语法:groupmod [选项] 组名

选项 说明
-g 修改当前组的GID为指定的GID
-n 修改当前组名为新的组名
-o 允许使用一个重复的GID
-p 修改组密码

ps 报告当前系统的进程状态

ps命令 用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

语法:ps (选项)

选项
-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
a:显示现行终端机下的所有程序,包括其他用户的程序。
-A:显示所有程序。
x:显示所有程序,不以终端机来区分。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-c:显示CLS和PRI栏位。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
-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:采用旧式的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"选项相同。
由于ps命令能够支持的系统类型相当的多,所以选项多的离谱!

实例:
#按内存资源的使用量对进程进行排序
ps aux | sort -rnk 4

#按 CPU 资源的使用量对进程进行排序
ps aux | sort -nk 3

-l:会以长格式的方式显示目录下的内容列表,输出的信息从左到右依次是文件类型,权限模式,硬链接数,所有者,所属组,文件大小,文件最后的修改时间,文件名

命令示例:

三.Ubuntu的包管理

详细信息请戳这篇文章

密码修改

命令:passwd
作用:修改用户密码
语法:passwd [选项]
说明:不加用户名则修改当前用户

选项 说明
-k 设置只有在密码过期失效后才能修改
-d 删除密码,只有ROOT用户能使用该选项
-l 锁定密码,只有ROOT用户能使用该选项
-u 解除锁定,只有ROOT用户能使用该选项
-e 使帐号的密码过期,只有ROOT用户能使用该选项
-f 强制执行
-x 密码最长使用寿命,只有ROOT用户能使用该选项
-n 密码最短使用寿命,只有ROOT用户能使用该选项
-w 在密码过期之前用户收到警告的天数,只有ROOT用户能使用该选项
-i 指定密码过期后的第几天禁用帐号,只有ROOT用户能使用该选项
-S 报告用户的密码状态,只有ROOT用户能使用该选项
--stdin 以标准输入设定用户的密码,只有ROOT用户能使用该选项

选项都比较简单,最后一个可能比较难懂

[root@VM_200_13_centos ~]# echo cnmlgb | passwd --stdin test
Changing password for user test.
passwd: all authentication tokens updated successfully.

kill 删除执行中的程序或工作

kill命令 用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看

语法:kill(选项)(参数)

选项:
-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:指定要送出的信息;
-u:指定用户

参数:
进程或作业识别号:指定要删除的进程或作业。

实例:
#列出所有信号名称:
 kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
35) SIGRTMIN 1  36) SIGRTMIN 2  37) SIGRTMIN 3  38) SIGRTMIN 4
39) SIGRTMIN 5  40) SIGRTMIN 6  41) SIGRTMIN 7  42) SIGRTMIN 8
43) SIGRTMIN 9  44) SIGRTMIN 10 45) SIGRTMIN 11 46) SIGRTMIN 12
47) SIGRTMIN 13 48) SIGRTMIN 14 49) SIGRTMIN 15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略, 下面是常用的信号:

HUP     1    终端断线
INT     2    中断(同 Ctrl   C)
QUIT    3    退出(同 Ctrl   )
TERM   15    终止
KILL    9    强制终止
CONT   18    继续(与STOP相反, fg/bg命令)
STOP   19    暂停(同 Ctrl   Z)

#先用ps查找进程,然后用kill杀掉:
ps -ef | grep vim
root      3268  2884  0 16:21 pts/1    00:00:00 vim install.log
root      3370  2822  0 16:21 pts/0    00:00:00 grep vim

-t:按照文件的最后修改时间降序来显示目录内容列表,最近修改过的文件会排在前面

你当前是root用户,新创一个目录123,那么这个目录的所有者和所属组都为root,我们有个账户为zhang3,要将123目录的所有者和所属组更改为zhang3

四.进程相关

附录

RHEL7恢复ROOT密码

killall 使用进程的名称来杀死一组进程

killall命令 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。

语法:killall(选项)(参数)

选项:
-e:对长名称进行精确匹配;
-l:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称;
-s:用指定的进程号代替默认信号“SIGTERM”;
-u:杀死指定用户的进程。

参数:
进程名称:指定要杀死的进程名称。

实例:
杀死所有同名进程

killall vi

-R:递归显示目录下的所有文件列表和子目录列表

chown zhang3:zhang3 123

1. ps命令用来列出系统中当前运行的那些进程

语法:ps [参数]
eg: ps -A 显示所有进程信息
ps -u root 显示指定用户信息
ps -ef 显示所有进程信息,连同命令行
ps -ef|grep ssh ps 与grep 常用组合用法,查找特定进程
ps -l 将目前属于您自己这次登入的 PID 与相关信息列示出来
ps aux 列出目前所有的正在内存当中的程序
ps -axjf 列出类似程序树的程序显示
ps aux | egrep '(cron|syslog)' 找出与 cron 与 syslog 这两个服务有关的 PID 号码

date 显示或设置系统时间与日期

date命令 是显示或设置系统时间与日期。
很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。
语法 date(选项)(参数)

选项:
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
参数
< 时间日期格式>:指定显示时使用的日期时间格式。

日期格式字符串列表
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分(00~59)
%p 显示出上午或下午
%r 时间,12小时制
%s 从1970年1月1日0点到目前经历的秒数
%S 秒(00~59) 
%T 时间(24小时制)(hh:mm:ss)
%X 显示时间的格式(%H时%M分%S秒)
%Z 按字母表排序的时区缩写
%a 星期名缩写
%A 星期名全称
%b 月名缩写
%B 月名全称
%c 日期和时间
%d 按月计的日期(01~31)
%D 日期(mm/dd/yy) 
%h 和%b选项相同
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%x 显示日期的格式(mm/dd/yy)
%y 年份的最后两个数字(1999则是99)
%Y 年份(比如1970、1996等)
%C   世纪,通常为省略当前年份的后两位数字
%U  一年中的第几周,以周日为每星期第一天
%e   按月计的日期,添加空格,等于%_d

实例:
#格式化输出:
date  "%Y-%m-%d"
2009-12-07

#输出昨天日期:
date -d "1 day ago"  "%Y-%m-%d"
2012-11-19

#2秒后输出:
date -d "2 second"  "%Y-%m-%d %H:%M.%S"
2012-11-20 14:21.31
传说中的 1234567890 秒:

date -d "1970-01-01 1234567890 seconds"  "%Y-%m-%d %H:%m:%S"
2009-02-13 23:02:30

#普通转格式:
date -d "2009-12-12"  "%Y/%m/%d %H:%M.%S"
2009/12/12 00:00.00

#apache格式转换:
date -d "Dec 5, 2009 12:00:37 AM"  "%Y-%m-%d %H:%M.%S"
2009-12-05 00:00.37

#格式转换后时间游走:
date -d "Dec 5, 2009 12:00:37 AM 2 year ago"  "%Y-%m-%d %H:%M.%S"
2007-12-05 00:00.37

#加减操作:
date  %Y%m%d                   //显示前天年月日
date -d " 1 day"  %Y%m%d       //显示前一天的日期
date -d "-1 day"  %Y%m%d       //显示后一天的日期
date -d "-1 month"  %Y%m%d     //显示上一月的日期
date -d " 1 month"  %Y%m%d     //显示下一月的日期
date -d "-1 year"  %Y%m%d      //显示前一年的日期
date -d " 1 year"  %Y%m%d      //显示下一年的日期

#设定时间:
date -s                        //设置当前时间,只有root权限才能设置,其他只能查看
date -s 20120523               //设置成20120523,这样会把具体时间设置成空00:00:00
date -s 01:01:01               //设置具体时间,不会对日期做更改
date -s "01:01:01 2012-05-23"  //这样可以设置全部时间
date -s "01:01:01 20120523"    //这样可以设置全部时间
date -s "2012-05-23 01:01:01"  //这样可以设置全部时间
date -s "20120523 01:01:01"    //这样可以设置全部时间

#有时需要检查一组命令花费的时间,举例:

#!/bin/bash
start=$(date  %s)
nmap man.linuxde.net &> /dev/null
end=$(date  %s)
difference=$(( end - start ))
echo $difference seconds.

参数说明:参数是目录,指定要显示列表的目录,也可以是具体的文件。

用ls -l查看跟目录,123的所有者和所属组已经被更改成了zhang3

2.kill 命令用于杀死进程。

语法:kill[参数][进程号]

  • 列出所有信号名称
    命令:kill -l
    说明:KILL 9 强制终止

  • 先用ps查找进程,然后用kill杀掉
    命令:kill 3268(进程号)

3)彻底杀死进程
命令:kill –9 3268

说明:init进程是不可杀的

time 统计给定命令所花费的总时间

time命令 用于统计给定命令所花费的总时间。

语法:time(参数)

参数:
指令:指定需要运行的额指令及其参数。

实例:
当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗。例如:

[root@localhost ~]# time ls
anaconda-ks.cfg  install.log  install.log.syslog  satools  text

real    0m0.009s
user    0m0.002s
sys     0m0.007s
输出的信息分别显示了该命令所花费的real时间、user时间和sys时间。

命令示例:当我用-l查看/etc/sysconfig

 

五.系统信息

sudo 以其他身份来执行命令

sudo命令 用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

语法:sudo(选项)(参数)

选项:
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。
参数:
指令:需要运行的指令和对应的参数。

#这个命令相当于使用root超级用户重新登录一次shell,只不过密码是使用的当前用户的密码。而且重要是,该命令会 重新加载/etc/profile文件以及/etc/bashrc文件等系统配置文件,并且还会重新加载root用户的$SHELL环境变量所对应的配置文件 ,比如:root超级用户的$SHELL是/bin/bash,则会加载/root/.bashrc等配置。如果是/bin/zsh,则会加载/root/.zshrc等配置,执行后是完全的root环境。
$ sudo su  env | grep -E '(HOME|SHELL|USER|LOGNAME|^PATH|PWD|TEST_ETC|TEST_ZSH|TEST_PRO|TEST_BASH|TEST_HOME|SUDO)'

#这个命令基本与 sudo su - 相同,执行后也是root超级用户的环境,只不过是多了一些当前用户的信息
$sudo -i env | grep -E '(HOME|SHELL|USER|LOGNAME|^PATH|PWD|TEST_ETC|TEST_ZSH|TEST_PRO|TEST_BASH|TEST_HOME|SUDO)'

#这个命令相当于 以当前用户的$SHELL开启了一个root超级用户的no-login的shell,不会加载/etc/profile等系统配置 。所以/etc/profile文件中定义的TEST_ETC环境变量就看不到了,但是会加载root用户对应的配置文件,比如root用户的$SHELL是/bin/zsh,那么会加载/root/.zshrc配置文件,执行完后,不会切换当前用户的目录。
sudo -s env|grep -E '(HOME|SHELL|USER|LOGNAME|^PATH|PWD|TEST_ETC|TEST_ZSH|TEST_PRO|TEST_BASH|TEST_HOME|SUDO)'  --color

配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。

visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,就像:

>>> sudoers file: syntax error, line 22 <<
此时我们有三种选择:键入“e”是重新编辑,键入“x”是不保存退出,键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。

现在,我们一起来看一下神秘的配置文件,学一下如何编写它。让我们从一个简单的例子开始:让用户Foobar可以通过sudo执行所有root可执行的命令。以root身份用visudo打开配置文件,可以看到类似下面几行:

# Runas alias specification
# User privilege specificationroot ALL=(ALL)ALL
我们一看就明白个差不多了,root有所有权限,只要仿照现有root的例子就行,我们在下面加一行(最好用tab作为空白):

foobar ALL=(ALL) ALL
保存退出后,切换到foobar用户,我们用它的身份执行命令:

[foobar@localhost ~]$ ls /root
ls: /root: 权限不够

[foobar@localhost ~]$ sudo ls /root
PassWord:
anaconda-ks.cfg Desktop install.log install.log.syslog
好了,我们限制一下foobar的权利,不让他为所欲为。比如我们只想让他像root那样使用ls和ifconfig,把那一行改为:

foobar localhost= /sbin/ifconfig, /bin/ls
再来执行命令:

[foobar@localhost ~]$ sudo head -5 /etc/shadow
Password:
Sorry, user foobar is not allowed to execute '/usr/bin/head -5 /etc/shadow' as root on localhost.localdomain.

[foobar@localhost ~]$ sudo /sbin/ifconfigeth0 Linkencap:Ethernet HWaddr 00:14:85:EC:E9:9B...
现在让我们来看一下那三个ALL到底是什么意思。第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明foobar可以在此主机上执行后面的命令。第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。最后一个ALL当然就是指命令名了。例如,我们想让foobar用户在linux主机上以jimmy或rene的身份执行kill命令,这样编写配置文件:

foobar linux=(jimmy,rene) /bin/kill
但这还有个问题,foobar到底以jimmy还是rene的身份执行?这时我们应该想到了sudo -u了,它正是用在这种时候。 foobar可以使用sudo -u jimmy kill PID或者sudo -u rene kill PID,但这样挺麻烦,其实我们可以不必每次加-u,把rene或jimmy设为默认的目标用户即可。再在上面加一行:

Defaults:foobar runas_default=rene
Defaults后面如果有冒号,是对后面用户的默认,如果没有,则是对所有用户的默认。就像配置文件中自带的一行:

Defaults env_reset
另一个问题是,很多时候,我们本来就登录了,每次使用sudo还要输入密码就显得烦琐了。我们可不可以不再输入密码呢?当然可以,我们这样修改配置文件:

foobar localhost=NOPASSWD: /bin/cat, /bin/ls
再来sudo一下:

[foobar@localhost ~]$ sudo ls /rootanaconda-ks.cfg Desktop install.log
install.log.syslog
当然,你也可以说“某些命令用户foobar不可以运行”,通过使用!操作符,但这不是一个好主意。因为,用!操作符来从ALL中“剔出”一些命令一般是没什么效果的,一个用户完全可以把那个命令拷贝到别的地方,换一个名字后再来运行。

日志与安全

sudo为安全考虑得很周到,不仅可以记录日志,还能在有必要时向系统管理员报告。但是,sudo的日志功能不是自动的,必须由管理员开启。这样来做:

touch /var/log/sudo
vi /etc/syslog.conf
在syslog.conf最后面加一行(必须用tab分割开)并保存:

local2.debug /var/log/sudo
重启日志守候进程,

ps aux grep syslogd
把得到的syslogd进程的PID(输出的第二列是PID)填入下面:

kill –HUP PID
这样,sudo就可以写日志了:

[foobar@localhost ~]$ sudo ls /rootanaconda-ks.cfg
Desktop install.log
install.log.syslog
$cat /var/log/sudoJul 28 22:52:54 localhost sudo: foobar :
TTY=pts/1 ; pwd=/home/foobar ; USER=root ; command=/bin/ls /root
不过,有一个小小的“缺陷”,sudo记录日志并不是很忠实:

[foobar@localhost ~]$ sudo cat /etc/shadow > /dev/null
cat /var/log/sudo...Jul 28 23:10:24 localhost sudo: foobar : TTY=pts/1 ;
PWD=/home/foobar ; USER=root ; COMMAND=/bin/cat /etc/shadow
重定向没有被记录在案!为什么?因为在命令运行之前,shell把重定向的工作做完了,sudo根本就没看到重定向。这也有个好处,下面的手段不会得逞:

[foobar@localhost ~]$ sudo ls /root > /etc/shadowbash: /etc/shadow: 权限不够
sudo 有自己的方式来保护安全。以root的身份执行sudo-V,查看一下sudo的设置。因为考虑到安全问题,一部分环境变量并没有传递给sudo后面的命令,或者被检查后再传递的,比如:PATH,HOME,SHELL等。当然,你也可以通过sudoers来配置这些环境变量。

ls -l /etc/sysconfig

  1.   getfacl:查看文件或目录的访问控制列表  语法:getfacl [选项][参数]
1. top显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

语法:top [参数]

  • 显示进程信息
    命令:top

  • 显示 完整命令
    命令:top -c

  • 以批处理模式显示程序信息
    命令:top -b

  • 以累积模式显示程序信息
    命令:top -S

  • 设置信息更新次数
    命令:top -n 2
    说明:表示更新两次后终止更新显示

  • 设置信息更新时间
    命令:top -d 3
    说明:表示更新周期为3秒

  • top -p 245

    澳门新浦京娱乐场网站 7

    查看某进程的详细信息

su 用于切换当前用户身份到其他用户身份

su命令 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

语法:su(选项)(参数)

选项:
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。

参数:
用户:指定要切换身份的目标用户。

实例:
#变更帐号为root并在执行ls指令后退出变回原使用者:
su -c ls root

#变更帐号为root并传入-f选项给新执行的shell:
su root -f

#变更帐号为test并改变工作目录至test的家目录:
su -test

会长格式的方式显示目录下的内容,在sysconfig之下的network会输出-rw-r--r-- 1 root root 37 may 28 03:50 network

命令说明:可以显示你指定的文件或者目录的权限信息并列出来

2.df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。
  • 显示磁盘使用情况
    命令:df

    澳门新浦京娱乐场网站 8

    df的单独使用

  • 以inode模式来显示磁盘使用情况
    命令:df -i

  • 显示指定类型磁盘
    命令:df -t ext3

  • :列出各文件系统的i节点使用情况
    命令:df -ia

说明:

  • -h更具目前磁盘空间和使用情况 以更易读的方式显示
  • -H根上面的-h参数相同,不过在根式化的时候,采用1000而不是1024进行容量转换
  • -k以单位显示磁盘的使用情况
  • -l显示本地的分区的磁盘空间使用率,如果服务器nfs了远程服务器的磁盘,那么在df上加上-l后系统显示的是过滤nsf驱动器后的结果
  • -i显示inode的使用情况。linux采用了类似指针的方式管理磁盘空间影射.这也是一个比较关键应用

chgrp 用来变更文件或目录的所属群组

chgrp命令 用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组名。文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。

在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

语法:chgrp [选项][组群][文件|目录]

选项:
-R 递归式地改变指定目录及其下的所有子目录和文件的所属的组
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-H如果命令行参数是一个通到目录的符号链接,则遍历符号链接
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-L遍历每一个遇到的通到目录的符号链接
-P不遍历任何符号链接(默认)
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
参数
组:指定新工作名称;
文件:指定要改变所属组的文件列表。多个文件或者目录之间使用空格隔开。
实例
#将/usr/meng及其子目录下的所有文件的用户组改为mengxin
chgrp -R mengxin /usr/meng

#更改文件ah的组群所有者为newuser
[root@rhel ~]# chgrp newuser ah

 

常用命令选项:

3.uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

语法:uname(选项)
关于选项的内容参见:http://man.linuxde.net/uname

chown 用来变更文件或目录的拥有者或所属群组

chown命令 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。

只有文件主和超级用户才可以便用该命令。

语法:chown(选项)(参数)

选项:
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quite或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-v或——version:显示指令执行过程;
--dereference:效果和“-h”参数相同;
--help:在线帮助;
--reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
--version:显示版本信息。

参数:
用户:组:指定所有者和所属工作组。当省略“:组”,仅改变文件所有者;
文件:指定要改变所有者和工作组的文件列表。支持多个文件和目标,支持shell通配符。

实例:
#将目录/usr/meng及其下面的所有文件、子目录的文件主改成 liu:
chown -R liu /usr/meng
  1.   pwd:打印当前工作目录    语法:pwd [选项]

-R:递归显示目录及之下的所有文件的信息

六.网络相关

chmod 用来变更文件或目录的权限

chmod命令 用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。

权限范围的表示法如下:
u User,即文件或目录的拥有者;
g Group,即文件或目录的所属群组;
o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
a All,即全部的用户,包含拥有者,所属群组以及其他用户;
r 读取权限,数字代号为“4”;
w 写入权限,数字代号为“2”;
x 执行或切换权限,数字代号为“1”;

  • 不具任何权限,数字代号为“0”;
    s 特殊功能说明:变更文件或目录的权限。

语法:chmod(选项)(参数)

选项:
u  # 操作对象简称,用户user,文件或目录的所有者。
g  # 操作对象简称,同组用户group,文件或目录所属群组
o  # 操作对象简称,其它用户others
a  # 操作对象简称,所有用户all,系统默认使用此项
   # 权限操作符,添加某些权限
-  # 权限操作符,取消某些权限
=  # 权限操作符,设置文件的权限为给定的权限
r  # 权限设定(英文),表示可读权限
w  # 权限设定(英文),表示可写权限
x  # 权限设定(英文),表示可执行权限
-  # 权限设定(英文字符),表示没有权限
X  # 权限设定,如果目标文件是可执行文件或目录,可给其设置可执行权限
s  # 权限设定,设置权限suid和sgid,使用权限组合“u s”设定文件的用户的ID位,“g s”设置组ID位
t  # 权限设定,只有目录或文件的所有者才可以删除目录下的文件
-c或——changes    # 效果类似“-v”参数,但仅回报更改的部分,如果文件权限已经改变,显示其操作信息;
-f或--quiet或——silent # 操作过程中不显示任何错误信息;
-R或——recursive  # 递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose    # 显示命令运行时的详细执行过程;
--reference=<参考文件或目录> # 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
<权限范围> <权限设置> # 开启权限范围的文件或目录的该选项权限设置;
<权限范围>-<权限设置> # 关闭权限范围的文件或目录的该选项权限设置;
<权限范围>=<权限设置> # 指定权限范围的文件或目录的该选项权限设置;
--help    # 显示帮助信息
--version # 显示版本信息

参数:
权限模式:指定文件的权限模式;
文件:要改变权限的文件。

知识扩展和实例:
Linux用 户分为:拥有者、组群(Group)、其他(other),Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd文件中。每个人的密码则是记录在/etc/shadow文件下。 此外,所有的组群名称记录在/etc/group內!

linux文件的用户权限的分析图

  -rw-r--r--   1 user  staff   651 Oct 12 12:53 .gitmodules
↑╰┬╯╰┬╯╰┬╯
┆ ┆  ┆  ╰┈ 0 其他人
┆ ┆  ╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ g 属组
┆ ╰┈┈┈┈ u 属组
╰┈┈ 第一个字母 `d` 代表目录,`-` 代表普通文件
例:rwx rw- r--

r=读取属性  //值=4
w=写入属性  //值=2
x=执行属性  //值=1

# 为文件f01设置自己可以执行,组员可以写入的权限
chmod u x,g w f01 

#为文件f01 分别设置用户 组 其他的权限
chmod u=rwx,g=rw,o=r f01
chmod 764 f01

# 对文件f01的u,g,o都设置可执行属性
chmod a x f01 
    
#文件的属主和属组属性设置
chown user:market f01  # 把文件f01给uesr,添加到market组
ll -d f1  查看目录f1的属性
将/home/wwwroot/里的所有文件和文件夹设置为755权限
#直接指定路径修改
chmod -R  755 /home/wwwroot/*
#手动进入该目录修改权限(并显示详细过程)
cd /home/wwwroot
chmod -Rv  755 *       #注意:“*”表示通配符,指的是所有文件和文件

命令说明:pwd指令以绝对路径的方式显示用户的当前所在

参数说明:你要查看的指定的目录或者文件

1. ping通常用来测试与目标主机的连通性,执行ping指令会使用ICMP传输协议,发出要求回应的信息.

命令格式:ping [参数] [主机名或IP地址]

last 列出目前与过去登入系统的用户相关信息

last命令 用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。

语法:last(选项)(参数)

选项
-a:把从何处登入系统的主机名称或ip地址,显示在最后一行;
-d:将IP地址转换成主机名称;
-f <记录文件>:指定记录文件。
-n <显示列数>或-<显示列数>:设置列出名单的显示列数;
-R:不显示登入系统的主机名称或IP地址;
-x:显示系统关机,重新开机,以及执行等级的改变等信息。
参数
用户名:显示用户登录列表;
终端:显示从指定终端的登录列表。
实例
last命令用了显示用户登录情况,以下是直接显示固定行数的记录:

last -10
root     pts/0        221.6.45.34      Tue Dec 17 09:40   still logged in
root     pts/0        221.6.45.34      Mon Dec 16 09:00 - 11:57  (02:56)
root     pts/0        222.94.97.122    Sun Dec 15 20:39 - 23:28  (02:48)
root     pts/0        222.95.209.80    Sat Dec 14 14:39 - 14:58  (00:18)
root     pts/0        221.6.45.34      Thu Dec 12 16:55 - 17:37  (00:41)
root     pts/0        49.65.139.195    Wed Dec 11 20:40 - 21:16  (00:35)
root     pts/0        49.65.139.195    Wed Dec 11 19:46 - 20:03  (00:17)
root     pts/0        221.6.45.34      Tue Dec 10 14:41 - 15:52  (01:10)
root     pts/0        221.6.45.34      Mon Dec  9 17:24 - 17:30  (00:06)
root     pts/0        221.6.45.34      Mon Dec  9 09:38 - 11:41  (02:02)

命令示例:当我在/目录下

命令示例:

2. telnet命令用于登录远程主机,对远程主机进行管理。

语法:telnet (选项) (主机)

who 显示目前登录系统的用户信息

who命令 是显示目前登录系统的用户信息。执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器。

语法:who(选项)(参数)

选项
-H或--heading:显示各栏位的标题信息列;
-i或-u或--idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
-m:此参数的效果和指定"am i"字符串相同;
-q或--count:只显示登入系统的帐号名称和总人数;
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
-w或-T或--mesg或--message或--writable:显示用户的信息状态栏;
--help:在线帮助;
--version:显示版本信息。


实例
[root@localhost ~]# who
root     pts/0        2013-08-19 15:04 (192.168.0.134)
root     pts/1        2013-12-20 10:37 (180.111.155.40)

[root@localhost ~]# who -q
root root
# users=2

[root@localhost ~]# who -H
NAME     LINE         time             COMMENT
root     pts/0        2013-08-19 15:04 (192.168.0.134)
root     pts/1        2013-12-20 10:37 (180.111.155.40)

[root@localhost ~]# who -w
root       pts/0        2013-08-19 15:04 (192.168.0.134)
root       pts/1        2013-12-20 10:37 (180.111.155.40)

pwd

查看家目录的信息,getfacl /home

3. curl 命令是一个利用URL规则在命令行下工作的文件传输工具。

whoami 打印当前有效的用户名称

澳门新浦京娱乐场网站,whoami命令 用于打印当前有效的用户名称,相当于执行id -un命令。

语法:whoami(选项)

选项:
--help:在线帮助;
--version:显示版本信息。
实例
[root@localhost ~]# whoami
root

[root@localhost ~]# id -un
root

会显示/

会显示:file:home  文件名

4. netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

语法:netstat (选项)
实例:

  • 列出所有端口 (包括监听和未监听的)
    netstat -a 列出所有端口
    netstat -at#列出所有tcp端口
    netstat -au列出所有udp端口

  • 列出所有处于监听状态的 Sockets
    netstat -l 只显示监听端口
    netstat -lt 只列出所有监听 tcp 端口
    netstat -lu只列出所有监听 udp 端口
    netstat -lx只列出所有监听 UNIX 端口

文章在持续更新中。。。

参考资料:
1.http://man.linuxde.net/
2.https://billie66.github.io/TLCL/book/zh/index.html
3.http://www.imooc.com/article/1316

which 查找并显示给定命令的绝对路径

which命令 用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

语法: which(选项)(参数)

选项
-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
-w:指定输出时栏位的宽度;
-V:显示版本信息。
参数
指令名:指令名列表。

实例
查找文件、显示命令路径:

[root@localhost ~]# which pwd
/bin/pwd

[root@localhost ~]# which adduser
/usr/sbin/adduser
说明:which是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!

用 which 去找出 cd

[root@localhost ~]# which cd
cd: shell built-in command
cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的!

 

    owner:root  所有者

whereis 查找二进制程序、代码等相关文件路径

whereis命令 用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

语法:whereis(选项)(参数)

选项
-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-f:不显示文件名前的路径名称;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
-u:查找不包含指定类型的文件。
参数
指令名:要查找的二进制程序、源文件和man手册页的指令名。

实例
将相关的文件都查找出来

[root@localhost ~]# whereis tomcat
tomcat:

[root@localhost ~]# whereis svn
svn: /usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz
说明:tomcat没安装,找不出来,svn安装找出了很多相关文件

只将二进制文件查找出来

[root@localhost ~]# whereis -b svn
svn: /usr/bin/svn /usr/local/svn

[root@localhost ~]# whereis -m svn
svn: /usr/share/man/man1/svn.1.gz

[root@localhost ~]# whereis -s svn
svn:
说明:whereis -m svn查出说明文档路径,whereis -s svn找source源文件。
  1.   cd:从当前的目录切换到其他的指定目录    语法:cd [选项][参数]

    group:root  所属组

uname 显示Linux系统信息

uname命令 用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

语法:uname(选项)

选项
-a或--all:显示全部的信息;
-m或--machine:显示电脑类型;
-n或-nodename:显示在网络上的主机名称;
-r或--release:显示操作系统的发行编号;
-s或--sysname:显示操作系统名称;
-v:显示操作系统的版本;
-p或--processor:输出处理器类型或"unknown";
-i或--hardware-platform:输出硬件平台或"unknown";
-o或--operating-system:输出操作系统名称;
--help:显示帮助;
--version:显示版本信息。
实例
使用uname命令查看全部信息:

[root@localhost ~]# uname    #单独使用uname命令时相当于uname -s
Linux

[root@localhost ~]# uname -a
Linux localhost 2.6.18-348.6.1.el5 #1 SMP Tue May 21 15:34:22 EDT 2013 i686 i686 i386 GNU/Linux

[root@localhost ~]# uname -m
i686

[root@localhost ~]# uname -n
localhost

[root@localhost ~]# uname -r
2.6.18-4-686

[root@localhost ~]# uname -s
Linux

[root@localhost ~]# uname -v
#1 SMP Tue May 21 15:34:22 EDT 2013

[root@localhost ~]# uname -p
i686

[root@localhost ~]# uname -i
i386

[root@localhost ~]# uname -o
GNU/Linux

[root@localhost ~]# uname --version
uname (GNU coreutils) 5.97
Copyright (C) 2006 free Software Foundation, Inc.
这是自由软件。您可以按照 GNU GPL 协议 <http://www.gnu.org/licenses/gpl.html> 的条款再发布此软件的副本,但我们无法保证相关法律不对这一情形进行限制。

由 David MacKenzie 编写。

命令说明:可以切换用户的当前的目录,若单独使用cd的话,将切换到当前用户的家目录(home)

   user:rwx  所有者权限

useradd 创建的新的系统用户

useradd命令 用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

语法:useradd(选项)(参数)

选项:
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s<shell>:指定用户登入后所使用的shell;
-u<uid>:指定用户id。
参数
用户名:要创建的用户名。

实例
#新建用户加入组:
useradd –g sales jack –G company,employees    //-g:加入主要组、-G:加入次要组

#建立一个新用户账户,并设置ID:
useradd caojh -u 544
需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。

命令示例:当我在/etc目录下要前往家目录home

   group:r-x  所属组权限

userdel 用于删除给定的用户以及与用户相关的文件

userdel命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。

语法:userdel(选项)(参数)

选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
参数
用户名:要删除的用户名。

实例
userdel命令很简单,比如我们现在有个用户linuxde,其家目录位于/var目录中,现在我们来删除这个用户:

userdel linuxde       //删除用户linuxde,但不删除其家目录及文件;
userdel -r linuxde    //删除用户linuxde,其家目录及文件一并删除;
请不要轻易用-r选项;他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份。

cd /home

   other:r-x  其他人权限

passwd 用于更改自己的密码

passwd命令 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

语法:passwd(选项)(参数)

选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
参数
用户名:需要设置密码的用户名。

知识扩展
与用户、组账户信息相关的文件

存放用户信息:
/etc/passwd
/etc/shadow
存放组信息:
/etc/group
/etc/gshadow

用户信息文件分析(每项用:隔开)
例如:jack:X:503:504:::/home/jack/:/bin/bash
jack  //用户名
X  //口令、密码
503  //用户id(0代表root、普通新建用户从500开始)
504  //所在组
:  //描述
/home/jack/  //用户主目录
/bin/bash  //用户缺省Shell
组信息文件分析
例如:jack:$!$:???:13801:0:99999:7:*:*:
jack  //组名
$!$  //被加密的口令
13801  //创建日期与今天相隔的天数
0  //口令最短位数
99999  //用户口令
7  //到7天时提醒
*  //禁用天数
*  //过期天数

实例:
如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。

[root@localhost ~]# passwd linuxde    //更改或创建linuxde用户的密码;
Changing password for user linuxde.
New UNIX password:          //请输入新密码;
Retype new UNIX password:   //再输入一次;
passwd: all authentication tokens updated successfully. //成功;
普通用户如果想更改自己的密码,直接运行passwd即可,比如当前操作的用户是linuxde。

[linuxde@localhost ~]$ passwd
Changing password for user linuxde. //更改linuxde用户的密码;
(current) UNIX password:   //请输入当前密码;
New UNIX password:         //请输入新密码;
Retype new UNIX password:  //确认新密码;
passwd: all authentication tokens updated successfully. //更改成功;
比如我们让某个用户不能修改密码,可以用-l选项来锁定:

[root@localhost ~]# passwd -l linuxde    //锁定用户linuxde不能更改密码;
Locking password for user linuxde.
passwd: Success           //锁定成功;

[linuxde@localhost ~]# su linuxde   //通过su切换到linuxde用户;
[linuxde@localhost ~]$ passwd      //linuxde来更改密码;
Changing password for user linuxde.
Changing password for linuxde
(current) UNIX password:          //输入linuxde的当前密码;
passwd: Authentication token manipulation error     //失败,不能更改密码;

再来一例:
[root@localhost ~]# passwd -d linuxde  //清除linuxde用户密码;
Removing password for user linuxde.
passwd: Success                         //清除成功;

[root@localhost ~]# passwd -S linuxde    //查询linuxde用户密码状态;
Empty password.                         //空密码,也就是没有密码;
注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。

这时候再用pwd就会显示/home,这里要单独说cd . 表示切换当前  cd ..表示切换到上一层,也就是说一个.代表当前 两个.代表上一级所在

 

top 显示或管理执行中的程序

top命令 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。

语法:top(选项)

选项:
-a: 按内存使用排序显示
-b:以批处理模式操作;
-c:显示完整的命令路径;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。

#top交互命令
#在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。

h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;按每列字段 开头代表字母 切换到大写显示 再按切换到小写不显示
o或者O:改变显示项目的顺序;按每列字段 开头代表字母 小写往下移 大写往上移
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。

实例
top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
Tasks: 145 total,   2 running, 143 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.8%us,  0.1%sy,  0.0%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4147888k total,  2493092k used,  1654796k free,   158188k buffers
Swap:  5144568k total,       56k used,  5144512k free,  2013180k cached
解释:
top - 09:44:56[当前系统时间],
16 days[系统已经运行了16天],
1 user[个用户当前登录],
load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
Tasks: 145 total[总进程数],
2 running[正在运行的进程数],
143 sleeping[睡眠的进程数],
0 stopped[停止的进程数],
0 zombie[冻结进程数],
Cpu(s): 99.8%us[用户空间占用CPU百分比],
0.1%sy[内核空间占用CPU百分比],
0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
0.0%hi[],
0.0%st[],
Mem: 4147888k total[物理内存总量],
2493092k used[使用的物理内存总量],
1654796k free[空闲内存总量],
158188k buffers[用作内核缓存的内存量]
Swap: 5144568k total[交换区总量],
56k used[使用的交换区总量],
5144512k free[空闲交换区总量],
2013180k cached[缓冲的交换区总量],

所以当我们用cd ..的时候,因为当前在/home下,那么我们就会去往/

  1.   setfacl:更改设置文件或目录的访问控制列表  语法:setfacl:[选项][参数]

gcc 基于C/C 的编译器

gcc命令 使用GNU推出的基于C/C 的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C 、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。

语法:gcc(选项)(参数)

选项
-o:指定生成的输出文件;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码;
-wall:显示警告信息;
-c:仅执行编译操作,不进行连接操作。

参数:
C源文件:指定C语言源代码文件。

实例:
常用编译命令选项
假设源程序文件名为test.c
无选项编译链接

#将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。
gcc test.c

#选项 -o
#将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。
gcc test.c -o test


#选项 -E
#将test.c预处理输出test.i文件。
gcc -E test.c -o test.i

#选项 -S
#将预处理输出文件test.i汇编成test.s文件。
gcc -S test.i


#选项 -c
#将汇编输出文件test.s编译输出test.o文件。
gcc -c test.s


#无选项链接
#将编译输出文件test.o链接成最终可执行文件test。
gcc test.o -o test


#选项 -O
#使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。
gcc -O1 test.c -o test


#多源文件的编译方法
#如果有多个源文件,基本上有两种编译方法:
#假设有两个源文件为test.c和testfun.c
#多个文件一起编译
#将testfun.c和test.c分别编译后链接成test可执行文件。
gcc testfun.c test.c -o test


#分别编译各个源文件,之后对编译后输出的目标文件链接。
gcc -c testfun.c    #将testfun.c编译成testfun.o
gcc -c test.c       #将test.c编译成test.o
gcc -o testfun.o test.o -o test    #将testfun.o和test.o链接成test
以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。

 

命令说明:getfacl可以查看访问控制列表的信息,而setfacl可以更改这里面的信息,通常这两个命令一起使用

  1.   touch:创建新的空文件     语法:touch [选项](参数)

常用选项说明:

命令说明:touch实际有两个功能;一是创建新的空文件;二是用来改变文件的时间属性

-m:更改文件的访问控制列表

常用选项说明:

-b:删除所有的访问控制列表条目

-a:将文件的最后访问时间设置为当前的系统时间,其他不变

-x:根据文件中访问控制列表移除条目

参数说明:指定要设置时间属性的文件,创建文件的文件名

-R:递归更改配置目录及之下的所有文件

命令示例:我要在/目录下创建名为123的文件

参数说明:你指定要进行设置的文件或者目录的名字

touch 123

命令示例:当前有一个名为111的文件,可以先用getfacl查看信息,若需要添加信息。可以

再用ls就会发现/目录下已经有123的文件了,如果是在家目录创建,而你当前在/目录的话,就应该写

setfacl -m u zhang3:rwx 111  这样在使用getfacl查看,会发现在user这一项下多了一个user:zhang3:rwx

touch /home/123

这是添加用户,也可以用g,添加组,注意递归的时候,-R一定要在-m的前面

要注意绝对路径和相对路径

 

 

    

  1.   echo:打印变量或字符串    语法:echo [选项][参数]

命令说明:echo用于在shell中打印shell变量的值,或者直接输出指定的字符串

参数说明:指定要打印的变量

命令示例:我要让命令行里输出123

echo 123

就会在屏幕上打印出123,也可以用输出重定向>符号来和echo一起使用,比如在前面我们有一个123的文件夹,里面有一个456的文件,我要把打印的123放到456这个文件里,我们可以这样写

echo 123 > /123/456

或者用追加重定向>>一起用,在打印how are you 追加到456这个文件中

echo how are you >> /123/456

此时456里的内容就是123    how are you

 

  1.   mkdir:创建目录    语法:mkdir[选项](参数)

命令说明:mkdir来用创建目录

参数说明:指定要创建的目录,创建多个目录用空格隔开

命令示例:创建一个名为abc的目录

mkdir abc

这时候用ls就会发现根下多了一个名为abc的目录,注意这里和前面一样,也要注意绝对路径和相对路径,若你本身不在根目录,而在家目录或其他目录则应该

mkdir /home/abc

 

  1.   cp:复制文件或者目录    语法:cp [选项](参数)(参数)

命令说明:cp命令可以用来将一个或者是多个源文件或目录复制到指定的位置,还可以将单个文件复制成一个指定文件名的文件(cp时可以自行改名字)也可以同时复制多个文件,但复制的目标是已经存在的目录

常用选项说明:

-p:复制文件会保持源文件的所有者,权限信息和时间属性

-R:对目录进行复制,这是个递归的操作,将指定目录及其子目录中的所有文件复制到指定的目标目录

-d:复制的源文件是符号链接的话,仅复制符号链接本身,而且会保留符号链接所指向的文件或目录

参数说明:源文件,也就是你要复制的那个文件或者目录,注意,默认是无法复制目录的,要想复制必须加-R选项

                  目标文件,你指定的位置,注意,当”源文件“为”多个文件“时,”目标文件“必须是个目录

命令示例:现在我要把123目录下的456文件复制到家目录下

cp /123/456 /home

这样ls /home就会发现多了一个名为456的文件,我们还可以将这个456文件复制到家目录下并改个名字

cp /home/456 /home/777

这样家目录下有多了一个名为777的文件,实际内容和456是一样的,也就是将456复制到了同样的位置下并改了个名字

 

  1.   mv:移动文件或改名    语法:mv [选项](参数)(参数)

命令说明:mv命令可以移动文件或为文件改名

常用选项说明:

-b:当目标文件存在时,覆盖前为其创建一个备份

参数说明:源文件,你要移动的文件

     目标文件,如果”目标文件“是个文件名,那么在移动文件的同时,会将原文件改名为"目标文件"的文件名,如果”目标文件“是个目录名则将其移动到”目标目录“下

命令示例:我要将家目录下的777文件移动到123目录下并改名为666

mv /home/777 /123/666

这时用ls /123就会发现已经移动并改名成功

或者我们创建一个111的目录,并将其移动到家目录下

mkdir /111    mv /111 /home

这时用ls /home就会发现家目录下已经多了一个名为111的目录

 

  1.   rmdir:删除空目录    语法:rmdir [选项](参数)

命令说明:可以用来删除空目录

常用选项说明:

-p:用递归的方式来删除指定的目录路径中的所有目录,要求路径中的目录中没有普通文件,否则会出错

参数说明:要删除的目录,要删除多个空目录时,目录名字之间要用空格隔开

命令示例:在根目录下创建两个目录,分别名为22,33,然后将其删除

mkdir 22 33     rmdir 22 33

这就删除完成啦

 

  1.   rm:删除文件或目录    语法:rm [选项](参数)

命令说明:可以删除指定的文件或目录,这里要注意,默认情况下rm只能删除普通文件,要删除目录必须用到”-R“或”-r"以递归方式删除

常用选项说明:

-f:强制进行删除,并且不提示确认

-i:用交互的方式,系统会提示是是否删除,“n”表示不删除,“y”表示删除

-R或-r:用递归的方式对目录和目录下的所有内容进行删除

参数说明:要删除的文件,如果包含了目录,则必须加上-R或-r选项

命令示例:删除一个名为123的目录,该目录下还有111和333两个文件

rm -rf 123

有些命令可以组合使用,默认情况下会有交互,提示是否删除,-rf 也就是递归删除和不提示,这样就删除完成了

 

  1.   nano:编辑器    语法:nano

命令说明:这是一个字符终端的文本编辑器

命令示例:

输入nano打开即可,打开后编辑器下方有操作方式

 

  1.   vi/vim:纯文本编辑器    语法:vim [选项](参数)

命令说明:vi是Unix和类Unix操作系统中最通用的文本编译器。Linux中的vi编译器叫vim,与vi完全兼容,并更加强大,vim分为三个模式

默认情况下的一般模式,编辑模式,命令行模式。在一般模式下,只能进行复制,粘贴,删除等的操作,无法编辑文件的内容

编辑模式下需要输入{I,i o,O r,R a,A}任意一个,即可进入编辑模式,退回去按esc即可

命令行模式:在一般模式下输入【:/  ?】,三个中的任意一个,就可以将光标移动到最下面的一行,查找,读取,存盘,替换字符,离开vi,显示行号等动作都在此模式下完成

常用选项说明:    

esc:切换会一般模式

ZZ:在编辑模式下保存当前文件所做的修改后退出vim

:set number:在命令行模式下,用于在最左端显示行号。可用简写”:set nu“

dd:删除光标行的整行内容

Y:复制当前光标所在行的全部文本

p:将文本粘贴到当前光标处的下方

:wq:在命令行模式下,执行保存退出

:q!:在命令行模式下,强制退出,无论是否保存

参数说明:指定要编辑的文件,多个文件用空格来分隔

命令示例:

打开一个名为111的文件并写入hello world

vim 111(注意相对路径与绝对路径) i 进入编辑模式  输入hello world 然后esc返回到一般模式,输入:进入命令行模式,输入wq    就完成了

 

  1.   shred:重复覆盖文件    语法:shred [选项](参数)

命令说明:这是一条终端命令,可以重复的往文件里发送内容,这样覆盖之后,一旦删除,若要恢复,也难以复原到覆盖之前的内容

常用选项说明:

-u:覆盖后截断并删除文件

-z:最后一次覆盖0.进行覆盖并掩藏覆盖动作

参数说明:指定要覆盖的文件

命令示例:

对上面的111的文件进行覆盖操作

shred 111

再打开就是乱码,已完成覆盖

 

  1.   cat:显示文件内容    语法:cat [选项](参数)

命令说明:用于将文件内的信息直接打印输出到屏幕上,而无需进入文本查看

常用选项说明:

-b:在空行前面显示行号

-n:显示所有行的行号,包括空行

参数说明:指定要查看的文件

命令示例:

cat 111

之后就会把结果直接输出到屏幕上

 

  1.   nl:计算文件中的行号    语法:nl [选项](参数)

命令说明:读取内容并显示行号

常用选项说明:

-ba:无论是否有空行,依然显示行号

参数说明:指定要显示的文件

命令示例:

nl 111

之后结果就会输出都屏幕上

 

  1.   tac:反序显示并打印    语法:tac [选项](参数)

命令说明:将文件的内容反序的输出到屏幕上,即第一行最后显示,最后一行先显示

常用选项说明:

-b:在前面显示分隔符

参数说明:指定要反序显示的文件

命令示例:

如果111这个文件中的内容有三行,每行分别是1,2,3,那么用tac命令

tac 111

最后屏幕会打印输出3

         2

         1

 

  1.   more:文件内容查看器    语法:more [选项](参数)

命令说明:more命令是一个基于vi 编辑器文本过滤器,会按页来显示文本文件的内容

常用选项说明:

- <数字>:指定开始显示的行数

-c:不进行滚屏,刷新屏幕

<数字>:从指定数字的行开始显示

参数说明:指定要显示内容的文件

命令示例:

more 111

内容会直接打印到屏幕上

 

 

  1.   less:分屏显示文件内容    语法:less [选项](参数)

命令说明:用来分屏查看文件内容,它的功能与more类似,但比more更加强大

常用选项说明:

-e:文件内容显示后,自动退出

-I:搜索是忽略大小写的差异

-N:每行行首显示行号

参数说明:指定要分屏显示内容的文件

命令示例:

我们要直接查看在屏幕上查看web服务配置文件的内容

less /etc/httpd/conf/httpd.conf

web服务配置配置文件即可直接出现在屏幕上方便查看

 

  1.   head:显示文件的头部内容    语法:[选项](参数)

命令说明:用来显示文件开头部分的内容。默认情况下,会显示头10行内容

常用选项说明:

-n<行数>:指定要显示头部内容的行数

-c<字符数>:指定要显示头部内容的字符数

参数说明:指定要显示的文件

命令示例:

如果我们要查看web配置文件的头六行,我们可以这样

head -6 /etc/httpd/conf/httpd.conf

屏幕输出结果只会出现前六行的内容

 

  1.   tail:显示文件尾部内容    语法:tail [选项](参数)

命令说明:用来显示文件尾部的内容,默认情况下显示尾部的10行内容

常用选项说明:

-n<行数>:指定要显示的尾部内容的行数

-c<字符数>:指定要显示打的尾部内容的字符数

参数说明:指定要显示的文件

命令示例:

如果我们要查看web配置文件的最后10行,我们可以这样

tail /etc/httpd/conf/httpd.conf

屏幕输出结果就会出现最后十行的内容

 

  1.   grep:在文件中搜索符合匹配的行    语法:grep[选项](参数)(参数)

命令说明:搜索指定的文件,并将配合匹配的行输出

常用选项说明:

-i:忽略大小写

-n:显示行号

-v:搜索不含指定字符串的行

-c:统计行数

参数说明:指定要搜索的字符串,指定在那开始搜索的文件

命令示例:

我要在/etc/sysconfig/network中搜索hostname的字符串

grep -i hostname /etc/sysconfig/network

结果会显示

HOSTNAME=xxxxxxxxx(这是你的主机名)

 

  1.   cut:显示文件中的指定字段    语法:cut (选项)(参数)

命令说明:仅显示你做指定的位置之间的内容

常用选项说明:

-b:仅显示指定字节范围的内容,如“-b 2-4”将显示第二个到第四个字节位置的内容,当只有一个数字时,仅显示指定字节位置的内容

-c:仅显示只当范围的字符,如“-c 1-7”将显示第一个到第七个字符位置的内容,当只有一个数字时,仅显示指定字符位置的内容

-f:显示指定的字段内容

参数说明:要进行内容过滤的文件

命令示例:查看/etc/fstab文件,只显示每列的第一个字符

cut -c 1 /etc/fstab

之后结果就会直接打印在屏幕上,每列第一个字符就出来了

 

  1.   sort:对文件进行排序    语法:sort [选项](参数)

命令说明:对文件进行排序,并将结果输出到屏幕上

常用选项说明:

-b:忽略行之间的空白

-n:根据字符串表示的数字值来排序

-r:反向排序(降序,默认是升序)

-o:将排序结果保存到指定文件中

参数说明:指定需要排序的文件

命令示例:

对/etc/fstab进行降序排序

sort -br /etc/fstab    这里可再用sort -b /etc/fstab之后,进行比较

 

  1.   tr:转换和删除字符    语法:tr [选项](参数)(参数)

命令说明:tr是个字符处理工具,只能替换和删除单个的字符,并且要和重定向<结合使用

常用选项说明:

-d:删除文件中的指定字符

参数说明:字符1,指定要转换或删除的字符。字符2,你要转换成的字符集

命令示例:

使用tr命令将/111中的文件内容转化为大写字符

tr a-z A-Z < /111

将小写字符转换为大写字符

 

 

  1.   wc:统计文件的字节数,单词数和行数      语法:wc [选项](参数)

命令说明:用来统计文本文件的字节数,单词数,行数

常用选项说明:

-c:统计字节数

-l:打印行数

-w:打印单词数

参数说明:需要统计的文件

命令示例:统计/etc/sysconfig/network的字节数,单词数和行数

wc /etc/sysconfig/network

结果输出如下

2 2 37 /etc/sysconfig/network

第一个是行数,第二个是单词数,第三个是字节数

 

  1.   uniq:除去文件中的重复行    语法:uniq [选项](参数)

命令说明:用于除去文件中的重复行,uniq仅对有序文件进行去除重复行的操作,如文件无序,可先用sort命令先进行排序

常用选项说明:

-c:在行首显示该行重复出现的次数

-D:打印所有的重复行内容

-u:仅显示不重复的行的内容

参数说明:指定要去除重复行的文件

命令示例:

若有一个名为abc的文件。里面的内容是11111

                      11111

                                22222 

                                                                33333

 uniq -c abc   执行后将会显示在屏幕上的是

                  11111

                  22222

                  33333

 

  1.   tee:将屏幕上的输入内容复制到文件中    语法:tee [选项](参数)

命令说明:从输入读取数据,将其保存到指定的文件中,可以一次保存多个副本

常用选项说明:

-a:将内容追加到文件的末尾

参数说明:指定要保存内容的文件

命令示例:

我们要将/etc/fstab的内容保存多个文件。这里我们需要用到管道” | “

cat /etc/fstab | tee file1 file2

先将fstab的内容显示出来,并用管道送给tee命令进行执行,这样你就会多两个名为file1,file2的文件,并且内容和fstab的内容一模一样

 

  1.   diff:比较两个文件的不同    语法:diff [选项](参数) (参数)

命令说明:diff将两个文件简单的情况下,比较给定的两个文件的不同

常用选项说明:

-i:忽略大小写导致的不同

-r:目录比较时进行递归操作比较目录下的所有文件

-s:仅报告两个文件内容是否相同

-b:忽略空白字符所导致的不同

参数说明:指定第一个要比较的文件,指定第二个要比较的文件

命令示例:我在111目录下有一个a文件,同样有个A文件,对其进行比较

diff /111/a /111/A

 

 

  1.   du:查看文件与目录的磁盘使用空间    语法:du [选项](参数)

命令说明:查看文件与目录的磁盘使用空间的多少

常用选项说明:

-s:只显示最后总计的值

-h:以K,M为单位,增强可读性

参数说明:指定要查看的文件或目录

命令示例:查看/var的磁盘使用情况,只看总计

du -s /var

显示如下

102692  /var    以k为单位

 

  1.   ln:为文件创建链接    语法:ln [选项](参数)(参数)

命令说明:为文件创建链接,链接又分为硬链接与软链接两种,默认的链接类型是硬链接,只能为普通文件创建硬链接,创建硬链接,源文件和目标文件必须在同一硬盘分区下,如果创建符号链接则必须用“-s”选项,

常用选项说明:

-b:为文件创建一个备份文件

-s:创建符号链接,如果系统不支持,会导致命令出错

-i:创建链接时。若目标文件已经存在,则提示用户确实覆盖

参数说明:源文件,被链接的文件。链接文件,指定源文件的目标链接文件。

命令示例:为/etc/fstab创建一个硬链接

ln /etc/fstab /myfstab

为111目录创建一个名为999的符号链接

ln -s /111 /999

最后用ls-l查看

 

 

  1.   type:判断命令的区别    语法:type [选项](参数)

命令说明:可以判断给出的命令是内部指令还是外部指令

常用选项说明:

-t:会输出”file“,”alias“ ,”builtin“,分别表示给定的指定为”外部指令“,”命令别名“,”内部指令“;

-p:如果指令为外部指令,则显示其绝对路径

参数说明:需要显示类型的命令

命令示例:查看mkdir命令的类型

type -t mkdir

输出结果

file

 

 

  1.   file:显示文件类型    语法:file [选项](参数)

命令说明:file指令用来检查给定文件的类型,如果文件系统检查成功。则输出文件类型,输出的文件类型如下:

text :文件中只有ASCII码字符,可以将字符终端显示文件内容

executable:文件可以运行

data:其他类型文件,此类文件一般是二进制文件或不能再字符终端上直接显示的文件

常用选项说明:

-L:显示符号链接所指向的源文件

-f:从指定文件中批量检查文件(将要检查的文件保存一份到一个文件中,通过-f执行批量检查)

参数说明:要检查显示的文件,多个文件之间用空格分开,可以用通配符匹配多个文件

命令示例:我要查看/etc/passwd的类型

file /etc/passwd

输出结果如下

/etc/passwd:ASCII text

 

 

  1.   stat:显示文件状态    语法:[选项](参数)

命令说明:显示文件的状态信息

常用选项说明:

-L:支持符号链接

-f:显示文件系统状态

参数说明:指定要显示信息的的文件或文件系统对应的设备文件名

命令示例:查看/etc的信息

stat /etc

关于etc的状态信息会输出到屏幕上

 

 

  1.   which:显示命令的绝对路径    语法:[选项](参数)

命令说明:查找并显示指定命令的绝对路径,环境变量PATH中查找命令的目录。如果PATH设置有问题,可能出现命令找不到的错误信息

 

参数说明:要查看的命令名称

命令示例:查看cp命令

which cp

结果输出如下

alias cp=‘cp -i’

    /bin/cp

 

 

  1.   whatis:从数据库查询命令    语法:whatis[参数]

命令说明:从whatis数据库中查询命令,并将查询的结果打印在终端上。

whatis数据库使用makewhatis命令创建

参数说明:要查询的命令

命令示例:查询pwd

whatis pwd  输出结果会直接打印在屏幕上

 

 

  1.   whereis:显示命令及相关文件的路径    语法:whereis[选项](参数)

命令说明:可以显示命令的二进制程序,源代码文件和man手册等相关文件的路径

常用选项说明:

-m :仅查找man手册文件

-s:只查找源代码文件

-b:只查找二进制程序和命令

参数说明:要查看的命令名

命令示例:查看rm命令及相关文件的路径

whereis rm

输出结果如下

rm:/bin/rm  /usr/share/man/manlp/rm.1p.gz  /usr/share/man/man1/rm.1.gz

 

 

  1.   locate:快速定位文件的路径    语法:locate [选项](参数)

命令说明:locate命令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位,无需查询整个文件系统,速度较快,但为了保证查询的准确度,必须定时更新locate数据库

常用选项说明:

-d<目录>:指定存放locate数据库的目录

-i:忽略文件名大小写差异

参数说明:要查找的文件或目录名字

命令示例:查找/etc/httpd/conf

locate /etc/httpd/conf

输出结果如下

/etc/httpd/conf/httpd.conf

/etc/httpd/conf/magic

 

 

  1.   find:在指定目录下查找文件    语法:find [选项](参数)

命令说明:find会在指定目录下查找文件。还能对查找到的文件执行指定的操作,这种功能通过调用其他的linux命令来实现的

常用选项说明:

-name<名字>:按照指定的文件名查找文件

-lname<名字>:按照指定的文件名查找符号链接

-group:查找属于指定组名的所有文件

-user:查找属于指定用户的所有文件

参数说明:要查找的起始目录,查找的名称

命令示例:用find在etc下查找passwd

find /etc -name passwd

输出结果如下

/etc/passwd

/etc/pam.d/passwd

 

 

  1.   help:显示内部命令的帮助信息    语法:help [选项][参数]

命令说明:用来显示shell内部命令的帮助信息.可以单独使用help查看help命令为那些命令提供帮助信息

参数说明:指定显示帮助信息的命令

命令示例:显示pwd的帮助信息

help pwd

即可显示出pwd的帮助信息

 

 

  1.   man:帮助手册      语法:man [章节](参数)

命令说明:man命令是linux下的帮助手册命令,通过man命令可以查看linux中的命令帮助,配置文件帮助和编程帮助等信息。

man手册包含的章节内容为:

1.用户可操作指令或可执行文件的帮助

2.系统调用函数与工具帮助

3.常用的c语言函数与函数库帮助

4.设备文件说明

5.配备文件或配置文件格式说明

6.游戏说明

7.惯例与协议说明

8.系统管理员操作指令帮助

 常用选项说明:

-a:在所有的man帮助手册中搜索

参数说明:指定要搜索帮助的关键字

命令示例:查看ls的帮助手册

man 1 ls 或者直接 man ls

输出会直接在终端显示帮助手册的信息

name介绍功能

synopsis介绍语法

description介绍选项

 

  1.   useradd:创建新用户    语法:useradd [选项](参数) 

命令说明:用于在系统中创建新的用户

常用选项说明:

-g:指定用户的主要组,默认情况下组名与用户名同名

-G:指定用户的附加组

-u:指定用户的id号(设置时尽量要大于500,以免冲突,linux安装后会建立一些特别的用户,一般0到499之间的值是留给bin,mail这样的系统账号)

参数说明:要创建的用户名

命令示例:创建一个名为zhang3的账户

useradd zhang3

这是去默认家目录/home下,zhang3目录已经出现

 

  1.   groupadd:创建新的工作组    语法:groupadd [选项](参数)

命令说明:创建新的工作组,而新工作组的信息也会被添加到系统文件中

常用选项说明:

-g:指定工作组的新id

-n:制定工作组的新名字

参数说明:指定想要修改的工作组名称

命令示例:创建一个名为www的新组

groupadd www

/etc/group 是用户组的配置文件,你可以在这个文件下查看你所有用户组,当你创建好www之后,www也会自动的被写入到这个配置文件之中

 

  1.   passwd:设置用户的密码    语法:passwd [选项](参数)

命令说明:设置用户的认证信息,,包括密码,密码过期时间等

常用选项说明:

-l:锁定用户,被锁定的用户无法登陆(仅root用户使用)

-u:解除锁定,同样仅限root用户使用

 -d:删除密码,使密码为空(仅限root用户使用)

参数说明:需要设置密码的用户名

命令示例:此命令可以和useradd一起使用,在上面我们用useradd命令已经创建了一个zhang3的用户,那我们现在给zhang3这只一个密码

passwd zhang3

之后系统会提示你输入想要设置的密码

NEW password:输入要设置的密码

Retype new password:再输一遍密码

这样zhang3的密码设置就完成了

 

  1.   gpasswd:工作组文件管理工具    语法:gpasswd [选项](参数)

命令说明:linux下工作组文件(/etc/group和/etc/gshadow)管理工具

常用选项说明:

-a:向组中添加用户

-d:从组中删除用户

参数说明:指定要管理的工作组

命令示例:我们想让创建好的zhang3加入到www工作组中

gpasswd -a zhang3 www

屏幕终端会输出 Adding user zhang3 to group www

 

  1.   usermod:修改用户    语法:usermod [选项](参数)

命令说明:修改用户的基本信息,创建用户时,不明确指定用户的相关信息,则使用系统的默认值,usermod则可以修改用户的基本信息

常用选项说明:

-a:向组中追加用户,要与-G一起用

-e:修改账户的有效期限

-g:修改用户的组,给定的组必须存在

-G:修改用户的附加组,与-a一起用

-L:锁定用户的密码

-U:解除用户密码的锁定

参数说明:要修改信息的用户名

命令示例:将li4也添加到zhang3的附属组中

usermod -aG li4 zhang3

这样就完成了添加

 

  1.   groupmod:修改工作组的信息    语法:groupmod [选项](参数)

命令说明:指定修改用的工作组的组id和组名

常用选项说明:

-g:指定工作组的新组id

-n:指定工作组的新组名

参数说明:要修改工作组的组名

命令示例:将www工作组的组id改为10000

groumod -g 10000 www

这样就变更了组id

 

  1.   userdel:删除用户及相关文件    语法:userdel [选项](参数)

命令说明:删除指定的用户,以及与用户相关的文件

常用命令选项:

-f:强制删除用户,即使用户当前登陆

-r:删除用户的同时,删除与用户相关的所有文件

参数说明:要删除的用户

命令示例:我们要把zhang3这个用户彻底删除

userdel -r zhang3

这样就完成了zhang3用户的删除操作

 

  1.   groupdel:删除工作组    语法:groupdel [选项](参数)

命令说明:删除指定的工作组,这条指令要修改的文件包括”/etc/group“和”/etc/gshadow“,groupdel命令无法删除用户的主要组,也就是无法删除创建用户时自动为用户创建的组(如果此用户还存在)

参数说明:想要删除的工作组名

命令示例:新创建的一个abc组,发现并不需要,要删除它

groupdel abc

这样就删除成功

 

  1.   id:显示用户的id信息    语法:id [选项](参数)

命令说明:显示用过户的uid,gid,附加组id

参数说明:要显示的用户名

命令示例:查看root的id信息

id root

会显示:uid=0(root) gid=0(root) groups=0(root)

 

  1.   newgrp:切换用户所在组    语法:newgrp (组群名称)

命令说明:一个用户隶属于两个或多个组,需要切换到其他组来执行一些操作,就要用到newgrp命令切换当前组

参数说明:需要切换的组名

命令示例:创建一个名为wang5的账户,创建一个test的组,添加用户到test组中

useradd -G test wang5

id wang5

会显示uid=505(wang5) gid=509(wang5) groups=509(wang5),508(test) //当前为默认wang5组

su - wang5

切换到wang5 依然会显示上面的内容,这是需要用到newgrp命令

newgrp test

id 

这时因为组切换到了test,所以显示为

uid=505(wang5) gid=508(test) groups=508(test),509(wang5) //切换后为test组

 

  1.   su:切换用户身份    语法:su [选项](参数)

命令说明:切换当前的用户身份到其他的用户身份,用su不加参数的话,则默认切换到root身份,root切换到普通用户不需要密码,普通用户切换必须输入密码

常用选项说明:

-:把shell作为登陆shell,当用户用 - 切换到新用户时,相当于新用户直接从控制台登陆

参数说明:指定要切换身份的目标用户

命令示例:在root的身份上,我们切换到普通用户zhang3

直接 su zhang3  就切换到了zhang3的身份

而这时要从zhang3切回root,就需要输入root的密码

 

  1.   finger:查询用户信息    语法:finger [选项](参数)

命令说明:显示登陆系统的用户信息,注意此命令默认可能并没有安装,可以使用yum install finger来安装(当前你必须先搭好自己的yum仓库)或者使用rpm之间装gdm-plugin-fingerprint这个安装包(建议使用yum)

常用选项说明:

-s:显示用户登录名,真实名字,终端名和写状态

-l:多行方式显示用户信息

参数说明:指定要查询的用户

命令示例:查询root用户

finger root

用户的信息就会显示在屏幕终端下方

 

  1.   chfn:改变用户的finger信息    语法:chfn [选项](参数)

命令说明:用来改变用户的finger信息,这些信息被保存在密码文件”/etc/passwd“中

常用选项说明:

-f:设置用户的全名

-o:设置办公地址

-p:设置办公电话

-h:设置住宅电话

参数说明:指定要改变的finger信息的用户名

命令示例:输入chfn root(你要修信息的用户名)

会直接进入交互模式,在输入

finger

会让你填办公地址

会让你填办公电话

会让你填住宅电话

最后结束

也可以直接chfn -f xxx -p xxx -h xxx -o xxx root  (x为所要填的信息) 

 

  1.   chsh:改变用户的登陆shell    语法:chsh [选项](参数)

命令说明:修改用户登陆系统后的默认使用的shell程序,系统中默认的shell程序为“/bin/bash”

常用选项说明:

-l:打印出当前linux系统支持的shell程序

-s:指定新的默认shell程序

-u:打印使用帮助并退出

参数说明:要改变默认shell的用户

命令示例:显示出当前系统可用的全部shell程序

chsh -l

结果会打印在屏幕终端下方

 

  1.   chage:·负责管理用户密码时效问题    语法:chage [选项](参数)

命令说明:用来修改账号和密码的有效期限

常用选项说明:

-m:密码可更改的最小天数

-M:密码保持有效的最大天数

-E:账号到期的日期

-l:查看用户的当前设置信息

参数说明:你要查看或修改的用户

命令示例:查看root的设置信息

chage -l root

从上到下依次显示

最后一次密码修改时间

密码过期时间

密码失效时间

账户过期时间

当前密码保持的最小天数

当前密码保持的最大天数

在密码过期之前警告的天数

 

  1.   whoami:打印当前用户名    语法:whoami

命令说明:将当前的用户名打印到终端屏幕上

命令示例:想知道当前登陆用户的名称

whoami

显示root,说明当前用户为root用户

 

  1.   hostname:显示和设置系统的主机名    语法:hostname [选项](参数)

命令说明:可以将主机名打印到终端屏幕上,也可以暂时的修改主机名(重启后修改的主机名失效)

常用命令选项:

-a:显示主机别名

-d:显示DNS的域名

-i:显示IP地址

参数说明:可单独用hostname加命令选项,也可在hostname后加参数以暂时更改主机名

命令示例:当前主机名若为abc,要将他暂时改为qwe

hostname qwe

再用hostname命令可发现现在主机名为qwe,重启系统后修改失效

 

  1.   uname:打印系统信息    语法:uname [选项]

命令说明:打印当前系统的相关信息(内核版本号,硬件架构,主机名称和操作系统类型)

常用命令选项:

-a:打印系统的所有信息

命令示例:显示当前系统的所有信息

uname -a

屏幕终端会显示

linux xxx(域名)  内核发行版本号  内核版本  硬件名称  处理器类型  硬件平台  操作系统名称

 

  1.   date:显示和设置系统日期时间    语法:date [选项](参数)

命令说明:显示当前的系统的日期时间,-s可设置系统的时间

常用命令选项:

-s:可设置系统的日期时间

-u:显示或设置utc时间

-r:显示文件的最后修改时间

参数说明:要查看最后修改时间的文件

命令示例:先查看昨天创建的abc文件的最后修改时间

date -r abc

结果会直接显示在屏幕终端上

 

  1.   clear:清屏命令    语法:clear 

命令说明:当屏幕杂乱时,可用clear命令,清除屏幕

命令示例:clear  直接清空当前屏幕

 

  1.   users:显示当前系统登陆的用户    语法:users

命令说明:打印当前系统登陆的所有用户,每个显示的用户对应一个登陆会话

命令示例:users     直接打印当前系统登陆用户

 

  1.   groups:显示指定用户的所属组的成员信息   语法:groups [参数]

命令说明:在标准输入输出上输出指定用户的所属组的所有成员

参数说明:要显示的用户名

命令示例:显示root用户的所属组的成员

groups root

显示  root  :root

 

 

  1.   who:显示当前谁在登陆    语法:who [选项]

命令说明:打印当前正在登陆用户的信息

常用命令选项:

-a:显示所有信息

-b:最后一次系统登陆时间

-H:打印每列的表头信息

-q:所有登陆的用户名和数量

-r:打印当前主机的运行级别

命令示例:显示当前主机的运行级别

who -r

显示 run-level 5     当前主机运行级别为5,开机进入桌面模式

 

  1.   w:显示用户正在执行的指令    语法:w [选项][参数]

命令说明:显示已经登陆的用户列表,并显示用户正在执行的指令,w可单独使用

常用命令选项:

-f:显示用户从哪登陆

参数说明:显示指定的用户

命令示例:查看root用户,若当前就是root用户在登陆,直接w即可或

w root

 

  1.   uptime:显示系统运行时长和平均负载    语法:uptime 

命令说明:显示系统运行了多长时间,用户的链接数还有平均负载

命令示例:直接输入 uptime 

会显示:系统当前时间;主机已运行的时间;用户的链接数;系统的平均负载

 

  1.   sudo:以另一个身份来执行命令    语法:[选项](参数)

命令说明:允许当前用户用超级用户或其他用户的权限来执行命令(预设的身份为root用户)

常用命令选项:

-b:在后台执行命令

-u:以指定的用户作为新的身份

-v:延长密码有效期限5分钟

-k:结束密码的有限期限,也就是下次在执行sudo时便要输入密码

参数说明:要执行的命令和相应的参数

命令示例:用sudo命令查看家目录

sudo ls /home

 

  1.   exit:退出shell    语法:exit (参数)

命令说明:退出shell,并给定返回值,若在文本文件里或交互模式下,exit为退出

参数说明:指定shell返回的值

命令示例:exit 单独使用

直接退出当前shell

 

  1.   reboot:重启系统    语法:reboot [选项]

命令说明:重新启动当前的系统

常用选项说明:

-w:仅作测试,并不真正重新启动,会把重启的数据写入到/var/log目录下的wtmp记录文件

-f:强制重新开机

-i:重新启动之前先关闭所有的网络界面

命令示例:重启当前系统,单独输入reboot即可

 

  1.   poweroff:关闭计算机并切断电源    语法:poweroff [选项]

命令说明:用来关闭计算机操作系统并直接切断系统电源

常用选项说明:

-w:仅作测试,并不真正的关闭,在日志的/var/log/wtmp文件可以查看

-f:强制关机

-h:关闭操作系统之前将系统中的所有的硬件设置为备用模式

-i:关闭操作系统之前关闭所有的网络接口

命令示例:安全的完全关闭计算机

poweroff -h

这样就是安全的关闭计算机了

 

 

  1.   halt:关闭计算机    语法: [选项]

命令说明:用来关闭正在运行的Linux操作系统

常用选项说明:

-h:关闭操作系统之前将系统中的所有的硬件设备设置为备用模式

-p:关闭操作系统时执行关闭电源的操作

命令示例:如果希望关闭操作系统并切断电源

halt -p

这样就完成了

 

 

  1.   shutdown:关闭计算机    语法:[选项](参数)

命令说明:最常用的系统关机或重启指令,也是最安全的系统关机或重启指令,关机之前所有进程都会收到shutdown发送的关闭进程信息,并与其他传统的unix系统兼容,如果要立即重启或关闭,参数要写“now”

常用选项说明:

-h:关闭计算机

-r:重启计算机

-c:取消关机操作

 参数说明:写明时间,可以是时间点(如在20点20分关闭系统 ;“20:20”)也可以是相对时间,如10分钟后关闭系统(“ 10”)

警告信息:向所有用户发送警告信心,警告信息用引号括起来

命令示例:将计算机设置为20分钟后关机,并输入警告信息

shutdown -h 20 “good night”

 

 

  1.   init:初始化linux进程    语法:init (参数)

命令说明:init是Linux下的进程初始化工具,init进程是所有进程的父进程,进程号为1,init命令主要依据配置文件“/etc/inittab”

常用选项说明:init有7个运行级别,分别用数字0到6

0:关闭操作系统

1:单用户模式

2:多用户模式,但没有nfs服务

3:完全多用户模式:命令行界面

4:自定义,通常不会使用此运行级别,默认没有意义

5:x-Window模式:也就是桌面界面

6:重启系统

参数说明:要选择的运行级别

命令示例:我们要关闭计算机,可以用init命令

init 0

这样也可以达到关闭计算机的作用

 

 

  1.   alias:设置命令别名    语法:alias [选项] (参数)

命令说明:定义命令的别名,命令别名在执行时就好像shell中的内部指令一样

常用选项说明:

-p:打印出已经存在的命令别名

参数说明:定义别名,格式为”命令别名 = ‘实际命令’ “ 例如。”la=ls -a“,表示输入命令别名”la“时实际执行的是”ls -a“

命令示例:我们要显示当前已存在的命令别名

alias -p

输入后会打印当前已存在的命令别名

 

 

  1.   unalias:取消命令别名    语法:unalias [选项](参数)

命令说明:取消命令别名 

常用选项说明:

-a:取消所有的命令别名

参数说明:指定想要取消的命令别名

命令示例:比如我设置了一个la的命令别名

unalias la

取消了名为la的命令别名,也可以使用 unalias -a 取消所有的命令别名

 

 

  1.   history:显示历史命令    语法:history [选项](参数)

命令说明:可以用来显示指定数目的历史命令

常用选项说明:

-c:清空当前历史命令

参数说明:打印出最近的n条历史命令

命令示例:打印出最近使用的10条命令

history 10

最近的10条命令就会打印到屏幕终端上

 

 

  1.   runlevel:打印当前运行级别    语法:runlevel

命令说明:在屏幕终端上打印出当前系统的运行级别

运行级别的划分参考第72条命令init

命令示例:直接单独使用runlevel命令即可

输入结果如下

N 3  N表示没有上一次,3表示当前为命令行模式

若输出结果为 5  3  则表示上一次运行级别为桌面模式,当前为命令行模式

 

 

  1.   chkconfig:管理不同运行级别下的服务    语法:chkconfig [选项](参数)

命令说明:chkconfig可以查询和更新不同的运行级别下的服务的启动状态,on代表开启,off代表关闭,reset代表重置

常用选项说明:

--list<服务名>:显示服务的启动状态

 --level<运行级别><服务名><启动选项>:可以指定某一个服务在某种运行级别下开机的启动状态,支持的选项有:”no“,”off“和”reset“

--add<服务名>:添加一个系统服务

--del<服务名>:删除一个系统服务

参数说明:你指定要的服务名

命令示例:我们使用chkconfig命令把”sshd“服务设置成在运行级别3下开机自启

chkconfig --level 3 sshd on

 这样就完成了

 

 

  1.   write:向指定用户的终端发送信息    语法:write [参数]

命令说明:向指定登陆用户的指定终端上发送信息,如果省略登陆终端的参数,则向指定用户的所有登陆终端发送消息

参数说明:指定接受信息的登陆用户

     指定接受信息的用户的登陆终端

命令示例:向登陆用户zhang3发送消息

write zhang3

向用户”zhang3“的所有登陆终端发送消息

 

 

  1.   last:显示用户的最近登陆列表    语法:last [选项](参数)

命令说明:显示用户的最近登陆列表,默认情况下,last命令读取”/var/log/wtmp“显示文件中记录的所有用户的登陆与退出信息

常用选项说明:

-n:显示行数

-d:显示非本地登陆的主机的主机名

-i:显示非本地登陆的主机的ip地址

-x:显示系统关闭和运行级别的等级改变记录

参数说明:显示指定用户的登陆列表

     显示从指定终端登陆的用户

命令示例:显示用户zhang3的登陆信息

last zhang3  (注意在输入后,在输出的信息中,第一列表示用户名,第二列表示登陆的终端,第三列表示登陆ip地址。第四列表示登陆日期时间和退出日期时间,第五列表示登陆的时长)

 

 

  1.   lastlog:显示用户最近一次登陆信息    语法:lastlog[选项](参数)

命令说明:用于显示系统中所有用户最近一次的登陆信息,lastlog命令会读取的日志文件为”/var/log/lastlog“,此文件内记录了用户上一次登陆和退出系统的信息

常用选项说明:

-b<天数>:显示指定的天数前的登陆信息

-u:显示指定用户的最近登陆信息

参数说明:指定要显示的用户

命令示例:显示root用户的最近登陆信息

lastlog -u root

 

本文由澳门新浦京娱乐场网站发布于澳门新浦京娱乐场网站,转载请注明出处:命令行的基本认识,linux命令之文件系统权限操作