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

初识linux 下

2016-05-15 16:04 246 查看
一.用户登录
UID,是系统自动为用户分配的,用来证明用户身份的数字,基本上是0-60000这个区间内的数字
管理员 :UID=0

普通用户 :UID=500(CENTOS6) UID=1000(CENTOS7)
普通用户又分为系统用户和登录用户,所谓的系统用户是指nologin的那些用户,用来运行 后台服务或进程的用户,不需要登录

决定是不是管理员的是用户的UID,而非用户的名字,root也可以不是管理员

查看UID的命令:id -u

二.终端
1.物理终端:直接接入本机的显示器及鼠标键盘
/dev/console

2.虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端
centos默认有6个,Ctrl+Alt+F1-6切换
/dev/tty#

3.模拟终端:
a.图形界面中打开的命令行(Windows的cmd,Linux图形桌面的终端)
b.基于ssh协议或者Telnet协议等远程打开的界面(例如XSHELL等)
/dev/pts/#

查看当前终端 tty

二.交互式接口

启动终端后,在终端设备附加的一个交互式应用程序

1.GUI:X protocol,window manager,desktop

2.CLI:shell程序

三.SHELL

shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口,接受用户输入的命 令并送入内核去执行

shell也是一种高级程序设计语言 (脚本语言)

查看shell版本

echo $SHELL

查看系统内存在多少种shell

cat /etc/shells

查看用户命名个是

echo $PS1

shell中命令有两种

内部命令:shell本身是个外部程序,但是它内置了很多的命令,这些命令称之为内部命令

外部命令:当前系统下其他路径下的可执行程序文件

这里注意,内部命令并不是文件,但是shell本身是文件,有的时候,一个命令是shell自带 的命令,但是,在/目录下却又有相同名字的文件,这个时候想要运行该文件,要将该文件 的绝对路径写清楚

查看是否为内部命令:type

type COMMAND

三个命令:type which whereis

type:查看是为内部命令还是外部命令,当为外部命令时将其路径显示出来,并将hash给 出,当命令具有命令别名时,只会将命令别名显示出来

which:给出命令的路径,并当命令具有命令别名的时候一起将命令别名显示出来

whereis:显示命令路径,并且将其说明文件手册一同显示出来

hash命令:当在首次执行外部命令的时候,系统会去命令的位置去读取该命令,并将之写入缓存 中一遍下次能够迅速启动

查看hash命令: hash

删除所有hash命令: hash -r

删除hash下的指定的某条命令用hash -d COMMAND,后面接的是命令的名字

注意:当命令在hash进缓存后,下次执行此命令是,系统是进入缓存中读取改命令的,因此在命 令有hash缓存时,更改了该命令的原路径,在此执行该命令的时候,系统是去缓存中的地址去读 取命令,所以会报错

四.命令格式

# COMMAND [OPTIONS..] [ARGUMENTS]

command:命令,必须在#后边,即最左侧

options:选项,用于启动或关闭命令的某个功能

短选项: -c,例如ls -a ,cp -a

长选项:--word,例如cp命令中的--preserv=all

arguments:参数,命令的作用对象

注意: 1.命令,多选项,多参数之间必须用空白符号隔开

2.取消命令和结束命令为 Ctrl+c Ctrl+d

3.多个命令共同执行,命令与命令之间必须以;隔开,例如:ls -al;cd /

4.一个命令太长时,可以用\分成多行

此处;将多个任务共同执行,前后的命令是没有逻辑关系的,和后边用到的|不同,|前后的命令 是有联系的,前一条命令的输出数据是后一条命令的输入程序

五.简单命令

1.date命令:显示日期

date [OPTION]... [+FORMAT]

date +%a-%F :两个选项之间需要用减号-链接
常见的选项:
%a:星期缩写
%A:星期的全拼
%Y:年
%m:月
%d:日
%H:小时
%M:分钟
date -d “# days” +% :显示#天的信息,#等于负数时,显示#天前的信息,#是正数时, 显示几天后的信息

-d “# days” :两者要写在一起,“# days”可以换成一些简单的单词如now,yesterday 等

date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

date 月日时分世纪年.秒
如 20160511 14:23:45 date 051114232016.45

2.cal命令:查看日历

cal 月 年

3.nano:nano文本编辑器

nano file

4. echo命令:回显

echo [-ne] [字符]

-n:不显示换行
-e:实现转义字符
\a:警告音
\b:退格键
\c:不加上换行符号
\n:换行,光标移到首行
\r:光标移到首行,但不换行
\t:插入tab
\\:插入\

echo中单双引号

“”中的内容,会显示出来,例如echo “$PATH”会显示PATH变量中的内容

‘’中的内容,会以纯文本的形势显示出来

echo反引号或$()

echo中可以引用命令,但该命令必须用``或者$()

使用echo可以再终端之间发送消息

echo i am wuyanzu >(句号) /dev/pts/2

echo也是变量相关的一个命令

5.history历史命令

history的命令记录在文件.bash_history中

history #:显示最近的#条历史命令,当不写#时,则显示全部的历史命令

history -c:删除全部的历史命令(指示清空shell中的数据,仍旧可以从.bash_history中读取)

history -d 偏移量 :在偏移量的那条命令

history -w:将shell中的历史命令写入到文件中

history -r:将文件中的历史命令读取到shell中

!#:执行历史文件列表第#条命令
!!:执行上一条命令
!STRING:执行以STRING打头的命令
!?abc:执行包含abc的命令

!^:上一个命令的第一个参数

!$:上一个命令的最后一个参数

!:n:上一个命令的第N个参数

!*:上一个命令的全部参数

!n:^:第n个命令的第一个参数
!n:$:第n个命令的最后一个参数
!n:n:第n个命令的第N个参数
!n:*:第n个命令的全部参数

!STR:^:最近的以STR打头的命令的第一个参数
!STR:$:最近的以STR大头的命令的最后一个参数
!STR:*:最近的 以STR打头的命令的全部参数
!STR:n:最近的以STR打头的命令的第n个参数

Ctrl+r:搜索命令
ESC+.:上一个参数,同!$

echo $HISTSIZE:命令列表能保存的最大历史命令条数
$HISTFILE:显示保存文件
$HISTFILESIZE:显示历史文件能保存的最大历史命令条数

环境变量:$HISTCONTORL:显示历史文件保存规则
ignoredups:忽略重复命令
ignorespace:忽略空白开头的命令
ignoreboth:以上全部生效

$HISTTIMEFORMAT:在history中显示时间
使用export更改
export HISTTIMEFORMAT=“%F %T”
HISTTIMEFORMAT的值中也可以加入反引号植入命令,例如显示使用命令的 用户可以加入`whoami`

$HISTIGNORE=“str1:str2:...”:history中将不再显示包含 str1,str2的命令

修改环境变量: export HISTCONTROL=值
修改变量: 变量=值

以上,环境变量的内容虽然可以再所有的shell中成立,但是和变量一样,重启后设 置消失,只是针对内存。如果想修改,应该通过修改配置文件的方式
/etc/profile:这个文件是针对全局的配置文件 修改危险程度较高
~/.bash_profile:这个是针对当前用户的配置文件

6.screen

额外安装的同屏工具

screen -S 名字:建立
screen -x 名字:加入
screen -ls:显示当前所有screen
screen -r:转回当前screen
screen -d:退出

六.一些快捷键

1.命令补全

TAB:在输入命令时可以按TAB来补全命令

TABTAB:当命令不是唯一的时候,按一次tab会没有反应,这时候按2次会将所有的可能补全 命令显示出来

2.Ctrl+l:清屏

3.Ctrl+c:取消命令

4.ESC+.:写入以一条命令的参数

七.帮助命令

1.whatis COMMAND:显示命令在man手册中第几个手册,并将命令的作用简要表达出来

whatis是一个数据库,当系统刚安装时,可能需要手动安装,手动安装命令: makewhatis(centos6)和mandb(centos7)

2.COMMAND -help:内部命令专用帮助

3.COMMAND --help:外部命令用帮助

4.man # COMMAND

man手册:
1.用户命令 2.系统调用 3.C库调用 4.设备文件

5.配置文件格式 6.游戏 7.杂项 8.管理工具(管理员用来管理的工具)

9.linux内核相关

查看命令在哪个手册,可以用whatis COMMAND

man -k keyword :搜索man中有keyword的,使用的是whatis数据库

/keyword或者?keyword:搜索命令的man手册中的关键字
n:下一个 N:上一个

此处应该注意的时,man 5 下的手册全是用户的配置相关的文件,因此,在使用man 5 时后边的参 数应该是文件名即FILE而不是COMMAND
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LINUX