Linux终端、Shell提示符、Bash基础语法,基础命令(上)

root
233
文章
0
评论
2019年12月27日11:06:54 评论 7582字阅读25分16秒
一、两种终端仿真器:(生产环境 都不用)

1、GNOME桌面的GHOME Terminal ;(消耗CPU多,内存少)
2、KDE桌面的Konsole Terminal(类似windows的“开始”键) -- Ubuntu里更常见
远程连接终端工具: Xshell , CRT,Putty(很多网络设备模拟器默认使用,最早的)等

例1:通过tty命令看到当前所属的虚拟终端
[root@thinkmo ~]# tty /dev/pts/0
注:Alt+ctrl+N 快速打开一个终端。 终端字体放大: shift+ctrl+加号。终端字体缩小:ctrl+减号

例2:不同虚拟终端之间通讯
同时打开两终端,第一个终端执行:
[root@thinkmo ~]# echo thinkmo > /dev/pts/1

或:[root@thinkmo ~]# wall " The system will be shut down in 10 minutes " #广播,所有终端都能收到

 

二、认识Shell

Shell俗称壳,它提供了用户与内核进行交互操作的一种接口(API:各种的支付功能 ,为什么美团|饿了么|滴滴--调取支付宝? -- 支付宝写好了一个功能(function)--对公--API),它接收用户输入的命令并把它送入内核去执行
Shell实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

内部命令:在系统启动时就调入内存,是常驻内存的,所以执行效率高

外部命令:是系统软件的功能(后期安装的,类似QQ),用户需要时才从硬盘中读入内存

如何区内外部命令?
使用type命令 ,语法 : type 要检测的命令
[root@thinkmo ~]# type cat

cat 是 /usr/bin/cat
[root@thinkmo ~]# type pwd
pwd 是 shell 内嵌

三、Shell提示符

[root@thinkmo ~]# #表示是root用户登录,管理员账号登陆
[root@thinkmo ~]# su - muquan #切换到muquan普通用户
su 切换用户 : su(空格)-(空格)username 把用户同时切换到自己的家目录(用户在自己家 权限最大)
su username -- 切换了用户(还在别人) (别人的家目录)
[mk@thinkmo ~]$ #表示普通用户登录
上面各位置对应的内容代表的意思如下:
[root @ tinkmo ~ ]#
用户名---@---主机名---当前所在目录(~表示当前用户的家目录)---(# root/$普通用户)

帮助命令

一、命令格式
在LINUX中使用一个命令,命令格式如下:
命令 【命令参数】 【命令对象】
命令:具体执行的命令,比如pwd,head
参数:会影响到命令的一些形为操作,通常以- --实现(才是所谓的重点 | 过多的参数是不需要背诵的)
长格式 --help 短格式 -h : -h == --help 有的命令有-h 有的命令不具备-h 只能用--help
对象:命令作用的对象(文件、目录、用户等)
man命令 --- 有困难找男

 

常用工作命令

1、echo命令详解
echo命令主要用于打印字符或者回显,例如输入echo ok,会显示ok, echo ok > test.txt 则会把ok字符覆盖test.txt内容。>表示覆盖,原内容被覆盖,>>表示追加,原内容不变。
例如echo ok >> test.txt,表示向test.txt文件追加OK字符,不覆盖原文件里的内容

\033[30m 黑色字 \033[0m
\033[31m 红色字 \033[0m
\033[32m 绿色字 \033[0m
\033[33m 黄色字 \033[0m
\033[34m 蓝色字 \033[0m
\033[35m 紫色字 \033[0m
\033[36m 天蓝字 \033[0m
\033[37m 白色字 \033[0m
\033[40;37m 黑底白字 \033[0m
\033[41;37m 红底白字 \033[0m
\033[42;37m 绿底白字 \033[0m
\033[43;37m 黄底白字 \033[0m
\033[44;37m 蓝底白字 \033[0m
\033[45;37m 紫底白字 \033[0m
\033[46;37m 天蓝底白字 \033[0m
\033[47;30m 白底黑字 \033[0m

echo颜色打印扩展,auto_lamp_v2.sh内容如下:
echo -e "\033[36mPlease Select Install Menu follow:\033[0m"
echo -e "\033[32m1)Install Apache Server\033[1m"
echo "2)Install MySQL Server"
echo "3)Install PHP Server"
echo "4)Configuration index.php and start LAMP server"
echo -e "\033[31mUsage: { /bin/sh $0 1|2|3|4|help}\033[0m"

2、ls命令

作用:查看当前目录下有哪些文件(list)
语法:ls 目录/文件 ,如果什么也不加,那么查看的是当前目录下的内容
常用选项:
命令后面不加任何选项
[root@thinkmo ~]# ls
-l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等,长列表

[root@thinkmo ~]# ls -l

-a 列出目录下所有的文件,包括以“.“开头的隐藏文件(linux下隐藏文件是以 . 开头的,如果存在2个点代表存在着父目录,1个点表示当前目录)

[root@thinkmo ~]# ls -a
. .bash_profile .dbus .mozilla (以.开头标识隐藏文件)

-d 查看目录(不查看里面的内容)

[root@thinkmo ~]# ls -ld /root/
dr-xr-x---. 15 root root 4096 11月 15 21:37 /root/

-S 以文件的大小进行排序

[root@thinkmo ~]# ls -lS /root/
总用量 8
-rw-r--r--. 1 root root 1728 9月 19 12:55 initial-setup-ks.cfg
-rw-------. 1 root root 1680 9月 19 12:16 anaconda-ks.cfg

ls -l 和ll 这两个命令是等价的
[root@thinkmo ~]# ll /etc/passwd
-rw-r--r--. 1 root root 2053 9月 19 12:57 /etc/passwd

[root@thinkmo ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2053 9月 19 12:57 /etc/passwd

[root@thinkmo ~]# type ll
ll 是 `ls -l --color=auto' 的别名

3、alisa别名的使用

定义一个别名:
[root@thinkmo ~]# alias vimens33='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@thinkmo ~]# vimens33
删除别名:
[root@thinkmo ~]# unalias vimens33

设置别名永久生效:

==》当前用户
[root@thinkmo ~]# vim /root/.bashrc #插入以一下内容:
8 alias vimenss33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
[root@thinkmo ~]# source /root/.bashrc
[root@thinkmo ~]# vimenss33

==》全局使用
[root@thinkmo ~]# vim /etc/bashrc #在文件最后插入
alias vimenss33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
[root@thinkmo ~]# su - muquan
上一次登录:四 11月 16 10:22:03 CST 2017pts/1 上
[mk@thinkmo ~]$ vimenss33
趣味结合 ls + alias --> sl命令

 

4、cd命令

作用:切换目录(change directory)
语法:cd 目录
说明:直接输入cd表示回到当前用户的宿主(家)目录

[root@thinkmo ~]# cd /etc/sysconfig/network-scripts/
[root@thinkmo network-scripts]# cd

[root@thinkmo ~]# cd ~
cd .. 表示返回到上级目录位置,也就是父目录 (/root的上一级是谁??? / 根)
cd . 表示进入到当前目录

[root@thinkmo ~]# pwd
/root

[root@thinkmo ~]# cd ..

[root@thinkmo /]# pwd
/
[root@thinkmo /]# cd .
[root@thinkmo /]#

cd - #表示返回切换前的目录
[root@thinkmo /]# cd /etc/sysconfig/network-scripts/
[root@thinkmo network-scripts]# cd -
/

5、history命令

执行history命令能显示出当前用户在本地计算机中执行过的最近1000条命令记录。如果觉得1000不够用,还可以自定义/etc/profile文件中的HISTSIZE变量值。在使用history命令时,如果使用-c参数则会清空所有的命令历史记录。-d参数删除某条命令。

 

4个快速查找Linux历史命令的技巧:

方法1: 光标上下键
方法2: ctrl+r -》输入某条命令的关键字-》找出来对应的命令,按右光标键
方法3: !数字 //执行历史命令中第N条命令
方法4:!字符串 //搜索历史命令中最近一个以xxxx字符开头的命令,例如!vim
*/etc/profile下

如果不想让别人利用history看到有些命令

vim /etc/profile

export HISTCONTROL=ignorespace

source /etc/profile

 

6、Linux下快捷键

都是用Ctrl+下面的单词, ^表示Ctrl
^C
终止前台运行的程序 , 如:ping g.cn 后,想停止按下Ctrl+C
^D
退出 等价exit
^L
清屏与clear功能一样
^R
搜索历史命令,可以利用好关键词
!$ 引用上一个命令的最后一个参数
[root@thinkmo network-scripts]# cat /etc/hosts
[root@thinkmo network-scripts]# vim !$ #相当于执行: vim /etc/hosts
补全命令使用tab键,Tab只能补全命令和文件

ctrl + a --- 光标移动到首
ctrl + e --- 末尾
ctrl + w --- 删除光标前一个参数

 

系统时间管理命令

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟;系统时钟则是指kernel中的时钟;所有Linux相关指令与函数都是读取系统时钟的设定
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作

1、两种时间

查看硬件时间:
[root@thinkmo etc]# hwclock

查看系统时间:
[root@thinkmo mnt]# date

时区:
UTC (Universal Time Coordinated):世界标准时间
GMT (Greenwich Mean Time):格林尼治时间
CST (China standard Time):中国标准时间
EDT (Eastern Daylight Timing) :美国东部夏令时间

如何修改时间

date命令相关参数:
date --help
-s, --set=STRING 把时间设为字符串所描述的时间
例: [root@thinkmo ~]# date -s "2018-11-2 22:30"
2018年 11月 02日 星期五 22:30:00 CST

%F 完整日期格式,等价于 %Y-%m-%d
[root@xuegod63 ~]# date "+%F"
2018-11-02

%y 年份最后两位数位 (00-99)
%Y 年份(2009 2019)
%m month (01..12)
%d 按月计的日期(例如:01)
%M minute (00..59)
%H 小时(00-23)
%S 秒(00-60)

[root@thinkmo ~]# date "+%Y%m%d"
20181102

[root@thinkmo ~]# date "+%Y-%m-%d %H:%M:%S" #在年月日之前可以添加自己想要的符号
2018-11-02 22:34:27

[root@thinkmo ~]# date "+%Y/%m/%d %H:%M:%S"
2018/11/02 22:34:38

[root@thinkmo ~]# date "+%Y%m%d %H:%M:%S"
20181102 22:35:03
-d, --date=STRING #显示由字符串描述的时间,而不是“当前时间”

[root@thinkmo ~]# date -d "+1 months" +%F
2018-12-02

Linux更改时区:

第一种修改方法:使用tzselect命令修改(使用root确保有权限),根据提示一步步修改就可以了

第二种方法:直接复制时区文件,覆盖/etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2、使用time命令测试一个命令运行的时间

time 作用:一般用来测量一个命令的运行时间
使用方法:time 在后面直接跟上命令和参数

[root@thinkmo ~]# time ls -l /etc/
real 0m0.056s
user 0m0.016s
sys 0m0.040s
说明:
real:实际使用时间
user:用户状态使用的时间
sys:内核状态使用的时间

 

开关机命令,常用的几个关机,重启命令

shutdown--->会把缓存里的数据在放入磁盘后重启,关机,定时关机
init-------->立即关机,重启
reboot ------>立即重启
poweroff --- 必须root权限(root用户)----->立即关机

1、关机命令之--shutdown

作用:关机,重启,定时关机
语法:shutdown [选项]
参数:
-r => 重新启动计算机
-h => 关机
-h 时间 =>定时关机

例如:

[root@thinkmo ~]# shutdown -h +10 #10分钟之后关机
[root@thinkmo ~]# shutdown -h 23:30 #指定具体的时间点进行关机
[root@thinkmo ~]# shutdown -h now #立即关机
[root@thinkmo ~]#shutdown -r 22:22 #22:22 以后重启

 

2、运行级别命令init

作用:切换系统运行级别
语法:init 0-6

Linux 7个启动级别:

0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的

1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录

2 多用户模式,没有NFS和网络支持

3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式

4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置

5 图形化模式,登陆后进入图形GUI模式,X Window系

6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启

[root@thinkmo ~]# init 0 #关机
[root@thinkmo ~]# init 3 #进入3级别字符界面
[root@thinkmo ~]# init 5 #进入5级别图形界面

修改设置默认的运行级别 CentOS6

centos7不再使用/etc/inittab文件进行默认的启动级别配置,而使用比sysvinit的运行级更为自由的target替代。
第3运行级用multi-user.target替代。
第5运行级用graphical.target替代。

设置默认第三启动级别
[root@thinkmo ~]# systemctl set-default multi-user.target

设置默认第五启动级别
[root@thinkmo ~]# systemctl set-default graphical.target
[root@thinkmo ~]#runlevel

3 5 #表示从3级别切换到了5级别
查看当前默认的启动级别
[root@thinkmo ~]# systemctl get-default
graphical.target

其他命令

1、pwd命令 --- 显示当前路径

2、mkdir命令 -- 创建目录 (-p 递归创建)

3、cp命令 -- 复制 cp 源 目的 (-a 全部 -r文件夹递归)

4、mv命令 -- 剪切 | 文件重命名 mv 源 目的

5、rm命令 -- 删除 -f 强制 -r递归 -- 生产环境只有root可以用 rm -rf /*

6、touch命令 -- 创建空文件

7、查看命令

cat -- 适用于查看纯文本短文件 (一页显示完)

more -- 适用于查看纯文本长文件 -- 只能往前看 不能回翻

less -- 适用于查看纯文本长文件 -- 能前进能后退---像看书一样查看和PS命令结合很好用

head -- 查看文件的头部(默认10行) -nX(查看文件前X行)

tail -- 查看文件的尾部(默认10行) -nX(查看文件尾X行) --> -f 动态查看

-F 和-f的区别:

-F------>实时查看,只要监看文件发生变化立马可以看到

-f------>监看文件发生变化不能立马可以看到,需要重新敲一遍命令

设置服务器来电后自动开机(防止IDC断电)

进入bios,一般是在开机后出现主板画面是按Delete这个键,部分品牌机可能按F2,F1

选择Integrated Peripharals(外围设备设置)中的SuperIO Device

Integrated [ˈɪntɪgreɪtɪd] 集成 ; Peripharals [pəˈrɪfərəl] 外围

进入SuperIO Decice

将其中的Restore On AC Power Loss选项修改:Power On

(若要加电不开机选择Power Off,若要加电之前断电状态选择Last State)

设置了服务器定时开机

Power Management Setup,就进入电源管理设置了

通过回车进入这个设置后,选择Wake Up Event Setup,回车选择Press Enter

找到RTC Alarm([əˈlɑ:m] 报警),将Disabied 更改为Enabled,然后继续回车确定。然后再继续设置时间点和日期

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2019年12月27日11:06:54
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
SElinux 系统管理

SElinux

SElinux SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Contr...
用U盘安装Linux系统 系统管理

用U盘安装Linux系统

这里我用U盘在服务器上安装Centos7系统 还是经典的画面---按F11(进入到选择启动项目)否则会默认通过硬盘启动,我们需要使用U盘 2.一直等就行了,我们选择Hard drive C:(U盘启动...
制作系统U盘 系统管理

制作系统U盘

制作系统U盘 准备工作: 一般选择的U盘大小为 ---8G或者16G,太大了用不到,太小了装不下 windows需要下载软件:ULtraiso(软碟通)用来把系统刻录到U盘里 首先把U盘格式化 1.打...
Dell R710远程配置RAID卡 系统管理

Dell R710远程配置RAID卡

1.在windows主机上登陆远程管理卡IP 2.进入,登陆远程管理界面 3.登陆之后要做一下配置-系统-->控制台介质-->虚拟控制台 先择已启用---插件类型(java) 虚拟介质(可...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: