您的位置:首页 > 运维架构 > Linux

linux常见指令以及权限理解

2017-05-18 13:56 411 查看
1、计算机的五大单元:

输入单元:包括键盘,鼠标,扫描仪,手写板等。

中央处理器(CPU):含有算术逻辑,控制,记忆等单元。

输出单元:显示器,打印机。



注意:存储器☞内存,CPU只能与内存打交道

2、环境变量的概念

PATH指定命令的搜索路径

HOME:指定用户的主工作目录

LOGNAME:☞当前用户的登录名

SHELL:☞当前用户用的哪种shell

修改和查看环境变量的命令:

echo:显示某个环境变量的值
echo $PATH




export:设置一个新的环境变量
HELLO="hello"
(可以无引号)



env:显示所有环境变量

set:显示本地定义的shell变量

unset:清除环境变量
unset HELLO




readonly 设置只读环境变量
readonly HELLO


3、Linux文件类型(Linux下一切皆文件)

1》普通文件(regular file):第一个字符为[ - ]

包括:①纯文本档(ASCII):文件内容为人类直接可以读到的数据

②二进制文件(binary):只包含0 1代码的文件,如Linux中的可执行文件

③数据格式文件(data):某些特定格式的档案可以被称为数据文件,一般用cat命令看到的都是乱码

2》目录(directory): 第一个字符为[ d ]

3》连接文件(link):第一个字符为[ l ]

4》设备和设备文件

包括:块设备文件,即一些存储文件,如硬盘、软盘等,第一个字符为[ b ]

字符设备文件,即一些串行端口的接口文件,如键盘、鼠标等,第一个字符为[ c ]

5》套接字(sockets)第一个字符为[ s ]

还被称为数据接口文件,这种类型的文件通常被用在网络上的数 据连接

6》管道(FIFO,pipe)第一个字符为[ p ]

FIFO也是一种特殊的文件类型,他主要的目的解决多个程序同时 访问一个文件所造成的错误问题,first-in-first-out。

4、Linux的扩展名

Linux同Windows不同,在Windows下,能被执行的档案扩展名通常是 .com .exe .bat 等,而Linux是没有扩展名的,判断一个文件是否可以执行的依据是看它的执行权限中是否包含x,包含x就可以被执行。

在Linux下,

.sh : 脚本或者批处理文件(scripts)

.Z .tar .tar.gz .zip .tgz : 经过打包的压缩文件。

.html .php :网页相关文件。

5、Linux的目录结构



6、shell的运行原理

从技术角度,Shell的最简单定义: 命令行解释器(command Interpreter)

主要包含:

a. 将使用者的命令翻译给核心(kernel)处理。

b. 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作 windows内核,而是通过图形接口,点击,从而完成我们的操作。

shell 对于Linux,有相同的作用,主要是对我们的指令进 行解析,解析指令给Linux内核。反馈结果在通过内核运行出结

果,通过shell解析给用户。

shell的普遍作用:

除了向内核传送命令之外,shell的主要任务是提供一个可单独配置的使用shell资源配置文件的用户环境。

shell任务的一个重要部分是搜索命令。

shell如何运行程序 ?

shell用fork建立新进程,用execv函数簇在新进程中运行用户指 定的程序,最后shell用wait命令等待新进程结束。wait系统调 用同时从内核取得退出状态或者信号序号以告知子进程是如何结束 的。

7、Linux的权限管理(一件事情允许被谁做?人, 事物属性)

文件访问者(人):

文件或目录的拥有者:u—User

文件或目录的所属组:g—Group

其他用户:o—Others

文件访问权限的种类(事物属性):

基本权限:

i.读(r/4):Read

ii.写(w/2):Write

iii.执行(x/1):execute

iv.“-”表示不具有该项权限

特殊权限:

i.suid (s/4)只能应用在可执行文件上,允许任意用户在执行文件时以文件拥有者的身份执行

ii.sgid (s/2)只能应用在可执行文件上,使任意用户在执行可执行文件时,将以拥有组成员的身份执行

iii.粘着位(t/1)只能应用在目录文件上,将使用户在目录中执行删除时,只能删除自己拥有的对象

文件权限值的表示方法:

字符表示: r:可读 w:可写 x:可执行 -:没有该权限

8进制表示:4:可读 2:可写 1:可执行 0:没有该权限

改变文件的权限:

1》chmod:

①用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号:

u:拥有者

g:拥有者同组用户

o:其它用户

a:所有用户



②三位8进制数字



2》chown:改变文件的拥有者

格式:chown [参数] 用户名 文件名

实例:

# chown user1 f1
# chown -R user1 filegroup1


3》charp:修改文件的所属组

格式:chgrp [参数] 用户组名 文件名

参数:-R 递归修改文件或目录的所属组

实例:

# chgrp users /abc/f2


4》umask:查看或修改文件权限

新建文件夹默认权限=0666-权限掩码

新建目录默认权限=0777-权限掩码

超级⽤用户默认掩码值为0022,普通⽤用户默认为0002。

# umask //查看
# umask 044//设置


8、常见命令

1》ls常用指令

ls: 显示当前目录下的文件和目录(隐藏文件除外)

ls -a 列出目录下的所有文件,包括以 . 开头的隐含文件和目录。

ls -A列出目录下的所有文件,但不包括以 . 开头的隐含文件和目录。

ls -l:列举当前目录或指定目录中文件或者子目录的详析信息,不包含隐藏文件。

ls -al:列举当前目录或指定目录中文件或者子目录的详析信息,包含隐藏文件。

ls -ll:同ls -l

2》cd 命令

cd 目录名:进入该目录

cd ~:进入用户目录

cd -:返回最近访问目录

cd .. : 返回上级目录

3》时间相关

date 指定格式显示时间:

date +%Y_%m_%d, date +%Y:%m:%d



在设定时间方面

date -s //设置当前时间,只有root权限才能设置,其他只能查看。

date -s 20080523 //设置成20080523,这样会把具体时间设 置成空00:00:00

date -s 01:01:01 //设置具体时间,不会对日期做更改

date -s “01:01:01 2008-05-23″ //这样可以设置全部时间

date -s “01:01:01 20080523″ //这样可以设置全部时间

date -s “2008-05-23 01:01:01″ //这样可以设置全部时间

date -s “20080523 01:01:01″ //这样可以设置全部时间

时间加减:

date +%=Y%m%d //显示现在天年月日

date +%Y%m%d –date=”+1 day” //显示后一天的日期

date +%Y%m%d –date=”-1 day” //显示前一天的日期

date +%Y%m%d –date=”-1 month” //显示上一月的日期

date +%Y%m%d –date=”+1 month” //显示下一月的日期

date +%Y%m%d –date=”-1 year” //显示前一年的日期

date +%Y%m%d –date=”+1 year” //显示下一年的日期

时间戳

时间->时间戳:date +%s

时间戳->时间: date +%Y:%m:%d -d @1425384141

Unix时间戳(英⽂文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT 的午夜)开始所经过的秒数,不考虑闰秒。

4》cal指令:

cal命令可以用来显示公历(阳历)日历。

命令格式:

cal [参数][月份][年份]

命令功能:

用于查看日历等时间信息,如只有一个参数,则表示年份

(1-9999),如有两个参数,则表示月份和年份

命令参数:

-1 显示一个月的月历

-3 显示系统前一个月,当前月,下一个月的月历

-s 显示星期天为一个星期的第一天,默认的格式

-m 显示星期一为一个星期的第一天

-j 显示在当年中的第几天(一年日期按天算,从1月1号算 起,默认显示当前月在一年中的天数)

-y 显示当前年份的日历





5》其他常用命令

touch:一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。

mkdir(重要):用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

rmdir指令 && rm 指令(重要):mkdir是建立目录,而rmdir是删除命令。rm命令可以同时删除文件或目录。

cp指令(重要): 复制文件或目录。

mv指令(重要):是move的缩写,可以用来移动文件或者将文件改名,经常用来备份文件或者目录。

basename指令(重要):返回一个字符串参数的基本文件名称。

dirname指令(重要) :dirname命令的作用是处理路径,以获取路径的父目录,而且 dirname不会检查路径是否合法。

more指令(重要):功能类似 cat ,cat命令是整个文件的内容从 上到下显示在屏幕上。而more指令是按页显示文本内容。 more内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。

less指令(重要): less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。

head指令(重要):用来显示 开头某个数量的文字区块,head 用来显示档案的开头至标 准输出中。

tail指令(重要 ):用来显示结尾某个数量的文字区块,tail 用来显示档案的结尾。

file指令:辨别文件类型

which指令:(重要)

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的⼀一些命令来搜索:

which 查看可执行文件的位置。

whereis 查看文件的位置。

locate 配合数据库查看文件位置。

find (灰常重要)实际搜寻硬盘查询文件名称。

locate指令:让使用者可以很快速的搜寻档案系统内是否有指定的档 案。其方法是先建立一个包括系统内所有档案名称及路径的资料 库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系 统之中了。

压缩文件:

gzip指令:

-c 将输出写到标准输出上,并保留原有文件。

-d 将压缩文件解压。

-l 对每个压缩文件。

zcat指令:可查看一个gzip格式的压缩文件,也可以解压缩数据,并把解压后的文件内容显示在屏幕上,但是 在运行zcat命令之后,压缩文件的内容并不发生变化,仍然以压缩方式存储在硬盘上。

tar指令(重要): tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。

uname指令:用来获取电脑和操作系统的相关信息。

pwd指令(重要):查看”当前工作目录“的完整路径。

cat指令(重要 ):

主要有三大功能:

1.一次显示整个文件。 cat filename

2.从键盘创建一个文件。 cat > filename

只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件: cat file1 file2 > file

tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示。

Sort指令 (重要) :将文本文件内容加以排序。

uniq指令(重要): uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用。

who指令:显示目前登入系统的用户信息。

kill指令:用来终止指定的进程。

diff:在命令行中打 印每一个行的改动。

更多命令的查询: http://man.linuxde.net/uniq
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: