Linux终端的输入输出设备的一个接口
虚拟控制台
一台计算机的输入输出设备就是一个数学的控制台;
假如在一台计算机上用软件的方式实现了多个互不干扰独立工作的控制台界面,就是实现了多个虚拟控制台;
Linux终端的工作方法是字符命令行形式,用户通过鼠标输入命令进行操作,可以通过Linux终端对系统进行控制。
Linux终端
Linux终端似乎就是用户与操作系统之间的一个插口,用户通过终端与操作系统进行交互.Linux终端包括Shell字符界面终端、图形界面终端及其他用户界面的终端;
shell哪些是shell
Shell是一个作为用户与linux系统间插口的程序,它容许用户向操作系统输入须要执行的命令,返回执行结果
。在Linux中可有多种Shelllinux命令vi,可用多个Shell,一个用户同一时刻只能用一个Shell。
Shell的种类:
GNU工具中的使用的是:bash。bash作为/bin/sh被默认安装。大多数Linux发行版中红帽linux系统下载,Shell程序/bin/sh实际上是对程序/bin/bash的一个链接
echo $SHELL #查看当前使用Shell
chsh -l #查看系统支持的Shell列表
chsh -s /path/to/shell username #更改Shell
/bin/bash --version #查看bash版本
Shell命令的基本格式是:
命令名[选项]……
功能&特征
$:其他用户的命令提示符
…<文件
输入重定向wc-l<list.txt
…>文件
输出重定向覆盖原有内容ls>out.txt
…>>文件
追加重定向文件末尾添加echoabc>>out.txt
中级重定向
ls /usr /abc >ok.txt
ls /usr /abc 1>ok.txt 2>error.txt
ls /usr /abc 2>/dev/null
作用:把前一个命令的输出作为下一个命令的输入
符号:|
事例:
ls/var/log|greplog|wc-l
Linux文件命令文件概述
文件是Linux拿来储存信息的基本结构,它是被命名的存贮在某种介质上的一组信息的集合。
Linux中所有内容都以文件的方式保存,分为:
文件的成份:无论文件是一个程序、一个文档、一个数据库、一个目录,都有以下同样的结构
名子索引节点,又称i节点,储存文件的状态信息的一个数据结构。包含文件的厚度、创建及更改时间、权限、所属关系、磁盘位置等。数据Linux目录
目录文件也包含数据linux 字符串命令,它与普通文件的差异是:内核对那些数据进行结构化处理,它是由成对的“i节点号/文件名”构成的列表。
工作目录:用户登入到Linux系统后,每时每刻都处在某个目录之中,此目录被称为“工作目录”或“当前目录”
用房主目录(HomeDirectory):是系统管理员在降低用户时为该用户构建上去的目录,每位用户都有自己的主目录。使用符号~表示
绝对路径是指从“根”开始的路径,亦称为完全路径;
cd/usr/local/bin
相对路径是指从用户工作目录开始的路径。
cd/usr
cdlocal/bin
特殊目录隐藏文件
以.开头的都是隐藏文件
Linux文件属性
Linux文件种类
字符(character)设备文件:[c]。
ls
显示目录与文件操作命令
ls[-a][-l][-i][-t][-S][-d][-R]
cd
切换工作目录命令cd
cd
pwd
显示当前路径命令pwd
cp
mv
cat
文件查看和联接命令
cat[选项]…
[-n]:给每行编号
[-b]:给每行编号,不仅空白行
cat-nfile1/usr/local/file2
more
less
head
tail
mkdir
创建目录命令
mkdir[-p]…
-p中间路径不存在,会手动创建
rmdir
删掉空目录命令
rmdir[-p]
-p删掉路径中的空目录
touch
rm
locate/slocate
文件定位命令
locate[选项]
构建所有文件以及路径的数据库,快速从系统数据库中查找指定的内容
先要更新数据库updatedb
find
查找文件或则目录命令
find[path…][expression][-name][-perm][-size][-user][-type][-exec]
find /etc -name “*.conf”
find . -type f -exec ls -l ‘{}’ ;
ln
ln[选项]
[-s]软链接
chmod字符形式:[ugoa…][±=][rwxX]…][,…]数字形式:rwx4210[-R]:递归遍历
chmod a=rwx,u-x,g-wx,o-rwx test.txt
chmod 640 test.txt
chmod -R 764 DirectoryPath
chownchgrpcut
cut -d: -f1,3,5 /etc/passwd
cut -d: -f 1-5 /etc/passwd
cut -c2-5 /etc/passwd
cut -c2,5,7 /etc/passwd
wc
默认统计文件内的行/字和字节数
wc[-l](lines)[-w](words)[-m](chars)[-c](bytes)文件路径
可以与管线结合使用
sort
排序
sort[-r](reverse)[-u](unique)[-f](nocase)文件路径
可以与管线结合使用
tr
文件处理工具
tr[选项][字符串1][字符串2]
常用选项/参数涵义如下。
-d:删掉字符串1中所有输入字符。
cat /etc/passwd | tr ‘a-z’ ‘A-Z’ #替换
tr -d ‘a-b’ < test.txt #删除
tr ‘a-z’ ‘A-Z’ < /etc/passwd #重定向
tar
tar[选项]压缩文件名文件或目录
tar后缀:cvfxvf(c:createv:viewf:file)
tar.gz后缀:zcvfzxvfz:gzip
tar cvf/zcvf a.tar /tmp/a
tar xvf/zxvf a.tar -C /tmp/b (指定目录解压,默认解压路径为当前目录)
gzip
打包文件(文件夹不行)[gz后缀]
[-d](解压)[-r](递归)[-v](view)[-t](test)
gzip -rv /tmp/a
unzip
zip后缀
[-x](解压)[-v][-t][-d](指定目录)
unzip -x /tmp/a.zip -d /tmp/bb
echo
cal
可以用户显示旧历(农历)月历如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份:
常用参数:
-3 显示前一月,当前月,后一月三个月的日历
-m 显示星期一为第一列
-j 显示在当前年第几天
-y [year]显示当前年[year]份的日历
date
显示或设定系统的日期与时间。
date+%Y-%m-%d
-d<字符串> 显示字符串所指的日期与时间。字符串前后必须加上双引号。
-s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上双引号。
-u 显示GMT。
%H 小时(00-23)
%I 小时(00-12)
%M 分钟(以00-59来表示)
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%S 秒(以本地的惯用法来表示)
%a 星期的缩写。
%A 星期的完整名称。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%m 月份(以01-12来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
which#查看命令路径
which是在PATH就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用which命令,就可以看见某个系统命令是否存在,以及执行的究竟是哪一个位置的命令。
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
whereis#查看命令路径
whereis命令只能用于程序名的搜索,并且只搜索二补码文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。假如省略参数,则返回所有信息。whereis及locate都是基于系统内建的数据库进行搜索,因而效率很高,而find则是遍历硬碟查找文件。
- b 定位可执行文件。
- m 定位帮助文件。
- s 定位源代码文件。
- u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
grep
强悍的文本搜索命令,grep(GlobalRegularExpressionPrint)全局正则表达式搜索。
grep的工作方法是这样的,它在一个或多个文件中搜索字符串模板。假如模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
命令格式:
grep[option]patternfile|dir
常用参数:
-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n --context 显示匹配字符前后n行
-c --count 计算符合样式的列数
-i 忽略大小写
-l 只列出文件内容符合指定的样式的文件名称
-f 从文件中读取关键词
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹
awk
AWK是一种处理文本文件的语言,是一个强悍的文本剖析工具。
awk[选项]'脚本命令'文件名
cat filename | awk -F: ‘{print $n}’
cat /etc/passwd | awk -F: ‘{pirnt $1}’
awk -F: ‘{print $n}’ /etc/passwd
seq
sed借助脚本来处理文本文件
直接编辑文件选项-i,会匹配file文件中每一行的第一个old_str替换为new_str
yum
yum(YellowdogUpdater,Modified)是一个在Fedora和RedHat以及SUSE中的Shell后端软件包管理器。
基于RPM包管理linux 字符串命令,才能从指定的服务器手动下载RPM包而且安装,可以手动处理依赖性关系,而且一次安装所有依赖的软件包,无须冗长地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,并且命令简练而又好记。
yuminstall|remove|list|search
Linux用户用户分类
超级用户
root,根用户,类似Windows中的超级管理员帐户,有最高的权限,可以对Linux做任何操作。
普通用户
受限的权限,普通用户没有对系统的完全控制权,并且用户之间私人的资源是互相隔离的。
特殊用户
与系统和程序服务相关的用户(shutdown、mail、mysql……)。
默认情况下,这种特殊用户是难以登陆的,假如给那些用户授权登录口令后,就可以使用这种用户登入系统。(为了安全,通常不授权口令)
通常shell被设定为:/sbin/nologin未能登录shell
用户信息文件
/etc/passwd
每一行储存一个用户的帐号信息
#用户名:加密密码:用户ID:用户组ID:用户信息:用户主目录: 登录Shell
tak:x:1000:1000::/home/tak:/bin/bash
超级用户root的UID是0,系统用户的UID在100以内,而普通用户的UID从500开始往上编号(CentOS7是1000开始)
口令文件
/etc/shadow
每一行储存一个用户的登陆密码信息,加密。只有root用户能够读取这个文件
用户名:加密口令:先前更新时间:准许修改时间:要求修改时间:取消口令之前的警告时间:取消和停用之间的时间:帐户口令的天数:帐户中止时间:特殊标志
组信息
/etc/group
每一行记录系统中的用户组信息
组名:密码数组:用户组ID:用户名列表
用户名列表用冒号分隔多个用户名(只显示附加用户)
用户管理/命令
降低用户:useradd[选项]
更改密码
设置和更改口令:passwd[用户名]
只有超级用户可以使用“passwd用户名”修改其他用户的口令,普通用户只能用不带参数的passwd命令更改自己的口令
删掉用户
删掉用户的命令为userdel,该命令的格式为:userdel
更改用户属性
usermod[-g-G-d-s]
降低用户组
groupadd
删掉用户组
groupdel(没有用户作为主组时)
更改组成员
直接编辑/etc/group文件,将用户名讲到对应的组名的前面。