Shell简介
在Linux系统中,shell是最常用程序,作用侦听用户命令,启动命令所指定的进程并将结果返回给用户。他还是一种程序设计语言,是系统维护时的重要工具。
两部分组成,#为命令行提示符;#为超级用户,$为其它用户;
@前为第一部分,用户的身份
@后为第二部分,你所在的主机名
~位置所展示的内容为当前用户所在的目录
Shell 命令三部分 shell命令、选项、参数;
一般选项都是在前边加 –
一般参数都是在前边加 /
每部分之间都是用空格来分隔的
# 切换 ¥ 所用 su - (user01) 还原 logout
建用户 useradd +用户名
检查主机名是否一致hostname
Id 查看身份 cd / (etc) 换目录
Bash简介
Bash目前是大多数Linux系统默认的Shell.
Bash的命令语法是Bourne Shell命令语法的超集
which 命令,用于查看需要查找的东西在什么地方;
比如 which passwd 搜目录
组合键
Ctrl+L 清屏
Ctrl+D 工作结束,比如两个用户之间的切换。例:root用户和use用户之间的切换;
Ctrl+C 终止命令 终止正在执行的命令
Ctrl+Z 挂起命令
Ctrl+A 光标快速移到行首
Ctrl+E 光标快速移到行尾
特殊字符
~用户主目录
通配符
*代表任意字符
?代表任何单一字符
[ ]在方括号中是或的关系,不管在方括号内添加什么内容
[ ! ]加!是取反,除……之外的;
<tab>键,命令的自动补齐
<tab>键对命令、文件路径、变量自动补齐,按1次<tab>如果未能补齐,说明有多个,需再按一次并进行选择;
历史命令
最简单的就是上箭头回翻查找。
$HISTFILE 可以查看到.bash_history 其中 . 是隐藏文件目录
$HISTSIZE 可以看到在$HISTFILE中存储1000条命令
$HISTFILESIZE 同样可以看到设置的$HISTFILE中存储的命令数
命令排列
;没有逻辑关系,第一个命令执行完闭无论成功与否都会自动执行第二个命令
&& 有逻辑关系,第一个命令执行成功之后才会执行后边的命令
du 命令,查看文件占用空间大小
du -hs /root 查看root目录所有文件占用空间数并用总数的形式展示
命令别名
查看系统预置别名命令:Alias
创建别名:alias la=’ls -a’
取消别名:unalias la
注:一般不建议创建其它的命令别名,过多的命令别名也会增加记忆命令的困难程度。
管道符
复杂的任务不是由大型软件完成,而是运用Shell的机制,组合许多小程序共同完成。管道就在其中发挥重要的作用,他可以将某个命令的输出信息当做某个命令的输入,由管道符号 | 来标识。
who 显示当前连接到系统的终端
wc 单词计数
wc -l 只看行数
more 分页显示
grep 寻找匹配关键字的行,并都显示出来。
Ps -ef 查看系统后台进程信息
rpm -qa 查询所有已经安装的软件包
sort 排序
管道符 | 用来把多个小的命令串联起来
比如:
Ls /etc / | more
重定向
输出重定向:即将某一命令执行的输出保存到文件中,如果已经存在相同的文件,那么覆盖源文件中的内容。
使用输出重定向将/boot目录的内容保存到/root/abc文件中
Ls / boot > /root /abc
使用echo命令和输出重定向创建/root/mm文件,文件内容是Hello。
echo Hello > /root/mm
另外一种特殊的输出重定向是输出追加重定向,即将某一命令执行的输出添加到已经存在的文件中。
先创建touch / root /ao
echo Hello > /root/ao
Cat /root /ao
Echo lkkk >>/root/ao
输入重定向
使用输入重定向将文件/root/mm的内容作为输入让cat命令执行
Cat < /root/mm
使用输入追加重定向创建/root/bc文件
Cat > /root/mm <<EOF
标准错误输出:
ls sfafsfsf 1>/root/test.log 2>/root/error.log
输出正确的结果重定向至/root/test.log 如果输出的是错误的则重定向至/root/error.log如果要把结果存到一起则把目录改成一致。也可以简写成
ls sfafsfsf 1>/root/test.log 2>&1
ls sfafsfsf &> /root/test.log
单一命令一般是二选一,所以不会出现覆盖的情况。但是一般正常用还是>>两个大于号
同时使用输出和错误重定向列出/nn目录内容到/root/00文件中
Ls / nn & >/root/00
Cat /root/ 00
Ls无法访问/nn没有那个文件或目录
因为没有/nn目录,所以最终使用了错误重定向
SSH协议
服务器端
SSH 协议的端口号 22
openssh ssh协议具体的实现
SSH状态命令:
service sshd status
service sshd start
service sshd stop
服务查看命令
netstat -tInp | grep 22
netstat 查看主机网络状态
-t 仅看tcp/ip 协议
l 监听状态
n 数字的形式显示端口号
p 端口
grep 22 匹配有22的每一行信息
客户端
远程连接的创建
远程图形界面的协议 VNC
TigerVNC Redhat oracle 用这个
realVNC
ultraVNC
rpm -qa | grep vnc
检查一下VNC
Tigervnc 安装
vncserver 命令
vncserver -list
vncserver -kill :多余的数值
从图形界面应用程序中找到tigervnc
输入IP以及要连接的服务号:1
输入安装时设置的密码password
vi /etc/selinux/config 把 SELINUX
Linux文件系统
ls -lh 查看某个文件的属性
由10位组成,第一位时文件类型。后边九位代表权限
- 代表普通文件
d 代表目录
b 设备文件 一般存储在 /dev 逗号分隔,一个主设备号一个次设备号,主设备号用来说明这是什么设备,次设备号说明这是第几个。 字母b代表块类型设备,c 代表字符类型设备。
设备转化成设备文件,目的是简化用户对设备的调度。
tty 直连的虚拟设备编号
/dev/pts 目录
终端之间的通信
Echo hello > /dev/pts/1
Who write root pts/1
P 是管道文件 mkfifo mypipe创建管道文件的命令