Linux入门知识

#Linux基础入门

  • 用户登录
  • 终端(terminal)
  • 什么是shell?
  • bash shell是什么?
  • 命令提示符
  • shell内部可执行程序有两类
  • Hash 缓存表
  • alias 命令的别名
  • 命令格式
  • linux常用命令
  • bash 的快捷键

用户登录

  • root 用户
    一个特殊的管理帐户 也被称为超级用户 root 已接近完整的系统控制 对系统损害几乎有无限的能力 除非必要,为 不要登录为 root
  • 普通用户
    权限有限 造成损害的能力比较有限

终端(terminal)

用户和主机或操作系统交互用到的设备

终端的分类

  • 物理终端

显示器、键盘、鼠标等硬件连接到主机接口上的设备称为物理终端
又叫物理控制台(console)表示:/dev/console

  • 虚拟终端

物理终端会自带的6个虚拟终端,可以使用快捷键切换终端 切换方式:Ctrl + Alt + F[1~6] 表示为:/dev/tty[1~6]

  • 图形终端

附加在物理终端上的终端,提供桌面环境,使用简单 切换方式:Ctrl + Alt + F7 表示为:/dev/tty7

  • 伪终端

通过ssh软件远程连接登录到系统打开的命令行终端 表示为:/dev/pts/0

  • 查看当前终端设备的命令:tty

终端交互式接口

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

  • GUI:图形化界面,基于X协议事项的窗口管理器

桌面系统种类:

GNOME (C, gtk(开发库)),
KDE (C++, qt(开发库))
XFCE (轻量级桌面)

  • CLI:命令行界面,与之交互的程序就是shell程序

shell程序种类: Sh、csh、Ksh、Bash、zsh

远程连接

ssh协议:secure shell;

查看系统是否监听于tcp协议的22号端口; ss -tnl

查看IP地址;

ip addr list 或 ifconfig
ping:探测网络的目标主机与当前主机之间的连通性

关闭防火墙:

~]# iptables -L -n

CentOS 7:
~]# systemctl disable firewalld.service 停止防火墙
~]# systemctl stop firewalld.service 关闭防火墙

CentOS 6:
~]# service iptables stop 停止防火墙
~]# chkconfig iptables off 关闭防火墙

什么是shell?

  • Shell 是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种 接口。它接收用户输入的命令并把它送入内核去执行
  • shell 也被称为LINUX 的命令解释器(command interpreter) )
  • shell 是一种高级程序设计语言

bash shell是什么?

是GNU计划中重要的工具软件之一,目前也是 Linux 标准的shell ,
与sh兼容,CentOS 默认使用shell

  • 显示当前使用的shell

echo ${SHELL}

  • 显示当前系统使用的所有shell

cat /etc/shells

命令提示符

命令提示符是在操作系统中,提示进行命令输入的一种工作提示符

  • 格式:[root@localhost ~]#
  • 显示提示符格式格式:

echo $PS1
[\u@\h \w]$
\u:表示用户名
\h:表示主机名缩写
\w:表示当前工作目录
#:表示管理员账号
$:表示普通用户账号

shell内部可执行程序有两类

  • 内建命令:有shell自带,通过命令的形式提供

help 内部命令列表 enable cmd 启用 内部命令 enable –n cmd 禁用 内部 命令 enable –n 查看所有禁用的内部命令

  • 外部命令:在当前文件系统路径下有对应的可执行程序文件

查看方式:which -a|–skip-alias; whereis

  • 如何查看一个命令是内部命令还是外部命令?

type command

Hash 缓存表

系统初始hash表为空,当外部命令执行时,默认会从PATH 路径下寻找该命令,
找到后会将这 条命令的 路径记录到hash表中,当再次使用该命令时,
shell 解释器首先会查看hash表,存在将执行之,
如果不存在,将会去PATH 路径下寻找。
利用hash 缓存表可大大提高命令的调用速度

  • hash 常见用法

hash 显示 hash 缓存
hash –l 显示 hash 缓存,可作为输入使用
hash –p path name 将命令全路径path起别名为name
hash –t name 打印缓存中name 的路径
hash –d name 清除name 缓存
hash –r 清除缓存

alias 命令的别名

alias:显示当前shell进程的所有可用别名

alias name=‘value’ #定义命令别名
例如: alias cdnet=’cd /etc/sysconfig/network-scripts’

unalias name #撤销别名
unalias -a name #撤销所有别名

如果别名和原命令同名,想执行原命令,可以使用:
\command
‘command’

在命令行定义的别名,仅在当前shell进程有效
如果想永久有效,需要定义在配置文件中
仅对当前用户有效: ~/.bashrc
对所有用户有效: /etc/bashrc

编辑配置给出的新配置不会立即生效
需要bash 进程重新读取配置文件
source /path/to/config_file
. /path/to/config_file

命令格式

command [options] [arguments]
选项(options):用于启动或关闭命令的某个功能

短选项: -c 例如: -l, -h 短选项可合并 -lh
长选项: –world 例如: –all,–human

参数(arguments):命令的作用对象,比如文件名,用户名等

注意:
多个选项以及多参数和命令之间使用空白字符分隔
取消和结束命令执行:Ctrl+c ,Ctrl+d
多个命令可以用’;’号分开
一个命令可以用”

linux常用命令

  • pwd: printing working directory 显示工作目录
  • cd:change directory 切换目录

cd [/PATH/TO/SOMEDIR]

cd: 切换回家目录;
注意:bash中, ~表示家目录;
cd ~:切换回自己的家目录
cd ~USERNAME:切换至指定用户的家目录;
cd -:在上一次所在目录与当前目录之间来回切换;
相关的环境变量
$PWD:当前工作目录
$OLDPWD:上一次的工作目录

  • ls: list, 列出指定目录下的内容

ls [OPTION]… [FILE]…

-a: 显示所有文件,包括隐藏文件;
-A:显示除.和..之外的所有文件;
-l: –long, 长格式列表,即显示文件的详细属性信息;
-h, –human-readable:对文件大小单位换算;换算后结果可能会非精确值;
-d:查看目录自身而非其内部的文件列表;
-r: reverse, 逆序显示;
-R: recursive,递归显示;

  • cat:读取文件的内容,将文件的内容按正常的顺序打出;

cat [OPTION]… [FILE]…

-n:给显示的文本行编号;
-E: 显示行结束符$;

  • tac: 读取文件的内容,将文件的内容按逆序打出;

tac [OPTION]… [FILE]…

-n:给显示的文本行编号;
-E: 显示行结束符$;

  • file:查看文件内容类型;
  • echo:回显

echo [SHORT-OPTION]… [STRING]..

-n: 不进行换行;
-e:让转义符生效;
\n:换行
\t:制表符

STRING可以使用双引号,单引号和反向单引号均可用 ;

单引号:强引用,变量引用不执行替换;
~]# echo ‘$SHELL’
双引号:弱引用,变量引用会被替换;
~]# echo “$SHELL”
反向单引号:会将引号内的字符当做命令或变量执行
~]# echo $SHELL
注意:变量引用的正规符号
${name}

  • 关机或重启命令:shutdown

shutdown [OPTIONS…] [TIME] [WALL…]
OPTIONS:

-h: halt
-r:reboot
-c:cancel

TIME:

now:立刻
hh:mm:绝对时间,指定具体时间
+m:相对时间,几分钟后

WALL:发送一条信息到所有的终端

  • 关机:halt,poweroff
  • 重启:reboot

-f:强制
-p:切断电源

  • date: 显示日期时间

date [OPTION]… [+FORMAT]
+FORMAT:格式符

%F– 年月日
%T– 时分秒
%Y– 年
%m– 月
%d– 日
%H– 时
%M– 分
%S– 秒
%s– 时间戳 从1970年1月1号0点0分0秒到命令执行那一刻经过的秒数;

设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]
月日年 时 分 秒

  • hwclock, clock:显示或设定硬件时钟

-s, –hctosys:以硬件为准,把系统调整为与硬件时间相同;
-w, –systohc:以系统为准,把硬件时间调整为与系统时钟相同;

  • cal:显示日历
  • which命令:查看可执行文件的位置
  • whereis命令:查看文件的位置

whereis [options] name…

-b: 仅搜索二进制程序路径;
-m:仅搜索使用手册文件路径;

  • whoami: 显示当前登录有效用户
  • who:显示哪用户连接到本地服务器
  • w:显示哪用户连接到本地服务器,并显示用户正在执行的指令
  • screen:用于命令行终端切换的自由软件

创建新screen 会话
screen –S [SESSION]
加入screen 会话
screen –x [SESSION] 可用于远程帮助
退出并关闭screen 会话
exit
剥离当前screen 会话
Ctrl+a,d
显示所有已经打开的screen 会话
screen -ls
恢复某screen 会话
screen -r [SESSION]

  • history:命令历史,显示shell进程会其会话中保存此前用户提交执行过的命令

-c: 清空命令历史;
-d offset:删除指定命令历史
-r: 从文件读取命令历史至历史列表中;
-w:把历史列表中的命令追加至历史文件中;
history #:显示最近的#条命令;

调用命令历史列表中的命令:

!#:再一次执行历史列表中的第#条命令;
!!:再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;

注意:命令的重复执行有时候需要依赖于幂等性;

定制history的功能,可通过环境变量实现:

HISTSIZE :命令历史记录的条数
HISTFILE :指定历史文件,默认为~/.bash_history
HISTFILESIZE :命令历史文件记录历史的条数
HISTTIMEFORMAT=“%F %T “ 显示时间
HISTIGNORE=“str1:str2*:… “ 忽略str1 命令,str2 开头的历史

.bash_history:命令记录保存文件

控制命令历史记录的方式:
环境变量:HISTCONTROL

ignoredups:忽略重复的命令;
ignorespace:忽略以空白字符开头的命令;
ignoreboth:以上两者同时生效;
erasedups:删除 重复命令

例如:export HISTCONTROL=”ignoreboth”
环境变量存放在 /etc/profile 或 ~/.bash_profile

  • 调用上一条命令的最后一个参数:

快捷键:ESC, .
字符串:!$
字符串:!:n : 利用上一个命令的第n个参数做cmd

bash 的快捷键

Ctrl + l 清屏,相当于clear 命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + xx 光标在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97686

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code