命令记不住

登陆

Linux 终端系统操作

Linux终端系统操作

1.alias别名

1.alias 命令 查看系统下的所有别名

[root@oldboyedu-48 ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

2.设置别名 alias 小名=’命令 其他’

alias  cp=’cp -i’ 

3.永久生效: /etc/profile

unset -f pathmunge
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias rm='echo rm command bny'

4.生效

source /etc/profile
5.坑
只针对 rm cp mv --这三个命令需要修改一下文件.bashrc

vim /root.bashrc  
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

命令别名将用户经常使用的复杂命令简单化, 可以用"alias 别名名称=命令"命令创建属于自己的命令别名, 若要取消一个命令别名,则是用unalias 别名名称命令。

//1.定义临时别名, if1为查看eth0网卡别名
[root@x86cloud ~]# alias if0='ifconfig eth0'
[root@x86cloud ~]# if0

//如果定义命令本身, 会执行什么?
[root@x86cloud ~]# alias ifconfig='ifconfig eth0'
//绝对路径执行, 调用命令本身
[root@x86cloud ~]# /sbin/ifconfig
//通过\转义字符, 调用命令本身
[root@WebServer ~]# \ifconfig

//2.定义系统永久生效别名, 将命令别名添加至当前用户环境配置文件 
[root@x86cloud ~]# echo "alias ifconfig='ifconfig eth0'" >> ~/.bashrc
//如将别名命令添加至/etc/bashrc , 对所有用户生效

//3.取消临时别名
[root@x86cloud ~]# unalias ifconfig 

2.网卡的配置文件

1.网卡配置文件 /etc/sysconfig/network-scripts/

DEVICE=etho               设备名字:网卡名字
HWADDR=00:0C                网卡地址
TYPE                    网络类型
UUID                    系统设备标识号
ONBOOT=yes                在开机和重启网络的时候重启动
NM_CONTROLLED             是否受系统network控制
BOOTPROTO=none/static/dhcP        网卡获取IP的方法
IPADDR                    网卡的IP地址
NETMASK                 子网掩码  
GATWAY                    默认网关
DNS1
DNS2

3.fstab开机自动挂载

1./etc/fstab 开机自动挂载

[root@oldboyedu-48 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Mon Jun 11 23:33:47 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=80a93f6f-2eb0-4552-961d-2f3060a32638 /                       ext4    defaults        1 1
UUID=681b4cb3-8a06-4d06-9617-979f09cea031 /boot                   ext4    defaults        1 2
UUID=ddd933bb-86cc-445a-b0c8-028e9c7987d2 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

1.第一列 设备名称(磁盘分区名称)
2.第二列 挂载点(设备入口)
3.blkid 命令

4.开机自启动的程序/命令存放位置

1./etc/rc.local 开机自启动的程序/命令存放位置
2.chkconfig 命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
让一个服务/脚本开机自启动
1./etc/rc.local
2.chkconfig
运行级别
/etc/inittab init table ---linux运行级别的配置文件

运行级别
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)

0.  关机
1.  单用户模式
2.  多用户模式,没有NFS
3.  命令行,文本模式
4.  未使用
5.  桌面模式  图形化界面模式
6.  重启

命令 runlevel ---查看运行级别
切换运行级别
1.init 切换运行级别
2.runlevel 查看运行级别

5.Linux系统终端切换

服务器终端切换: Ctrl + Alt + F1 … F6
虚拟机终端切换: Ctrl +Shift +Alt +F1 … F6

6.终端命令快捷键

终端快捷键的使用可以帮助我们大大提升效率

Ctrl + A    //光标跳转至正在输入的命令行的首部
Ctrl + E    //光标跳转至正在输入的命令行的尾部
Ctrl + C    //终止前台运行的程序
Ctrl + D    //删除光标所在的位置字符ctrl-d表示推出当前shell。
Ctrl + Z    //将任务暂停,挂至后台
Ctrl + L    //清屏,和clear命令等效。
Ctrl + K    //删除从光标到行末的所有字符
Ctrl + U    //删除从光标到行首的所有字符
Ctrl + R    //搜索历史命令, 利用关键字
ctrl + s    锁上
ctrl + q    解锁
ctrl + w    光标左边的单词剪切掉
ctrl + ←    依据单词位置移动
ctrl + →    依据单词位置移动
ctrl+f      依据单个字符位置移动  → 
ctrl+b      依据单个字符位置移动  ← 

//在命令行前加面加 "#" 则该命令不会被执行

History查看系统命令历史, 追溯之前发生情况

命令选项
-w 保存命令历史到历史文件
-c 清空命令历史记录, 不会情况文件
-d 删除命令历史的第 N 条行

history命令历史相关快捷键

//使用双 !! 可执行上一条命令
[root@x86cloud ~]# ls
x86cloud.com
[root@x86cloud ~]# !!
ls
x86cloud.com

//输入!6, 执行history命令历史中第 6 行命令
[root@x86cloud ~]# !6
touch x86cloud.com

//使用!cat, 调用history命令历史最近一次执行过的cat命令
[root@x86cloud ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
[root@x86cloud ~]# !cat
cat /etc/sysconfig/network-scripts/ifcfg-eth0

[root@x86cloud ~]# ls /etc/passwd
//调用上一条命令的最后参数或选项, 按下ESC松开, 然后按下 "."
[root@x86cloud ~]# cat
[root@x86cloud ~]# cat /etc/passwd
//第二种方式, 输入!$
[root@x86cloud ~]# ls !$
ls /etc/passwd
/etc/passwd

7.修改PATH变量

打印当前环境变量目录
[root@x86cloud ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

PATH由多个路径组成,每个路径值之间用冒号间隔,对这些路径的增加和删除操作都将影响到Bash解释器对Linux命令的查找。

修改PATH变量
[root@x86cloud ~]# PATH=/soft/bin:$PATH
写入/etc/profile配置文件永久生效
echo 'export PATH=/soft/bin:$PATH' >> /etc/profile


8.终端转义字符

Shell解释器提供了非常丰富的转义字符, 来实现字符处理以及命令替换。
4类常用转义字符

反斜杠(\):使反斜杠后面的一个变量变为字符串。
单引号(''):转义其中所有的变量为单纯的字符串。
双引号(""):保留其中的变量属性,不进行转义处理。
反引号(``):把其中的命令执行后返回结果。

//将特殊字符转换为正常字符
[root@x86cloud ~]# echo "shoping is $500"
shoping is 00
[root@x86cloud ~]# echo "shoping is \$500"
shoping is $500
//转义其中特殊字符为普通字符串
[root@x86cloud ~]# echo 'shoping is $500'
shoping is $500


//使用$()实现命令替换
[root@x86cloud ~]# echo "The Directory is $(pwd)"
The Directory is /root
//使用``实现命令替换
[root@x86cloud ~]# echo "The Directory is `pwd`"
The Directory is /root

//转义其中所有的变量为单纯的字符串
[root@x86cloud ~]# touch file-`date +%F-%H-%S`
[root@x86cloud ~]# ls
file-2017-12-03-04-18

[root@x86cloud ~]# touch 'file-`date +%F-%H-%S`'
[root@x86cloud ~]# ls
file-2017-12-03-04-18  file-`date +%F-%H-%S`

date命令

+   根据指定的格式显示日期 
date +%F  +%Y-%m-%d  年月日
date +%T  +%H:%M:%S  时分秒
date +%w          周
-d  根据描述显示日期
-s  修改时间 

9.系统目录结构

目录结构

/etc        系统重要配置文件, 以及常用服务配置文件
/var        存放系统引导启动时产生的可变文件,文件通常动态更改的,例如: 缓存目录,日志文件
/run        系统启动后, 运行的程序产生的运行时数据, 包括进程的pid文件,锁文件等
/home       普通用户的主目录, 普通用户的家目录默认为/HOME/USERNAME
/root       超级管理员的主目录, 普通用户无权操作
/tmp        存放临时文件, 一般存放超过10天以上都会自动删除,可以更改删除临时文件的期限
/boot       存放系统引导时候需要的文件
/dev        存放设备文件
/usr        安装的软件, 共享库, 重要的子目录有
/usr/bin    用户命令目录
/usr/sbin   管理员命令目录
/usr/local  本地自定义安装的软件

//注意:在Linux7系统中, /bin, /sbin, /lib, /lib64都以软链接的形式链接到/usr/目录下,例如:
/bin  --> /usr/bin
/sbin --> /usr/sbin
lib -> usr/lib
lib64 -> usr/lib64
(1)/bin  --一般用户可用,启动时会用到的命令,既在文件系统还没有被挂载时,也能够使用的命令.
(2)/boot  --[grub--开机设置相关文件];内核文件(vmlinuz)
(3)/dev --设备文件
(4)/etc --[rc.d];[x11]--用于存放不同运行级别的启动脚本的链接文件
(5)/home --用户的家目录
(6)/lib --用于存放程序的动态库和模块文件
(7)/mdeia --[cdrom,floppy,u盘]用于挂载本地磁盘和其他储存设备
(8)/mnt --用于挂载其他临时文件系统
(9)/opt --发行版附加的一些软件包安装目录
(10)/root --root的家目录
(11)/sbin --很多只能是root运行的命令 一些系统的更新备份还原和开关机
(12)/srv --存放服务进程所需的数据文件和一些服务的执行脚本
(13)/tmp --各种临时文件

/usr 下的目录

(1)/bin --非必要可执行文件(在单用户模式中不需要),面向所有用户
(2)/include --标准包含头文件
(3)/lib --/usr/bin和/usr/sbin 中二进制文件
(4)/local --[/bin,/etc,/include,/lib,/share,/src] 本地数据的第三层次,具体到本台主机
(5)/share --体系结构无关(共享)数据
(6)/sbin --非必要的系统二进制文件,例如:大量网络服务的守护进程
(7)/src  --源代码

/var 下的目录

(1)/account
(2)/cache
(3)/lib
(4)/lock
(5)/log
(6)/run
(7)/tmp
(8)/spool
(9)/mail 
都是变量文件

/etc 目录下面的文件

1./etc/sysconfig/network-scripts/ifcfg-eth0
2./etc/resolv.conf              DNS客户端
3./etc/hosts
4./etc/sysconfig/network
5./etc/fstab                开机自动挂载列表
6./etc/inittab
7./etc/rc.local
8./etc/profile                别名  环境变量  
9./etc/bashrc
10./etc/issue       登陆前的信息
11./etc/motd      登陆后的信息
12./usr/local   编译安装默认的目录

/process 虚拟目录 进程 程序 内核信息

1./proc/cpuinfo
2./proc/meminfo
3./proc/loadavg
4./proc/mounts
/proc   process 虚拟目录   进程 程序 内核信息
/proc/cpuinfo
processor :0    第一颗cpu的第一个核心
physical id : 1   第一颗CPU
core per socket 每颗CPU有多少核心
Socket      有多少个CPU
/proc/meminfo
/proc/loadavg       平均负载
负载:系统的繁忙程度   uptime    w
/proc/mounts

黑洞文件

/dev/null 黑洞 
/dev/zero 不断的向外发出数据

10.文件时间stat

[root@test-example ~]# stat test.txt
  File: 'test.txt'
  Size: 2           Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 67335626    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2018-01-21 12:12:48.949097044 +0800
Modify: 2018-01-21 12:12:35.243302963 +0800
Change: 2018-01-21 12:12:35.243302963 +0800
 Birth: -
 
访问时间:atime,查看内容 
修改时间:mtime,修改内容 
改变时间:ctime,文件属性,比如权限 
删除时间:dtime,文件被删除的时间

11.删除和花式查看

文件目录删除命令rm

rm [OPTION]... FILE...
-r 递归
-f 强制删除
-v 详细过程
   

//删除文件, 默认会提醒是否删除文件
# rm  anan

//强制删除文件, 不提醒
# rm  anan -f

//删除目录,会提醒
# rm -r dir/

//强制删除目录,不提醒
# rm -rf dir/

文件查看命令

cat     //查看文件内容
示例:cat /etc/passwd
示例:cat -n /etc/passwd   //-n参数行号 
示例:cat >> x86cloud.txt <<EOF  //追加数据
     test
     EOF

head    //查看文件头部内容,默认前十行
示例:head /etc/passwd  
示例:head -n5  /etc/passwd    //-n参数指定查看头几行


tail    //查看文件尾部内容,默认最后十行
示例:tail /etc/passwd  
示例:tail -f /var/log/messages   // -f参数跟随尾部输出而变化


more    //按空格可翻页查看文件内容,按q可推出
示例:more /etc/passwd


less    //和more类似
示例:less /etc/passwd

12.下载和查找

文件下载命令

wget    //文件下载
-O   //指定下载地址,更改名称  
-T   //超时时间
-q   //安静下载(关闭wget输出)
--spider //网络爬虫  

示例:wget http://www.baidu.com

curl    //文件下载
示例:curl -o http://www.baidu.com

命令查找命令

locate //查找文件或者目录
示例:locate /etc/sh //搜索etc目录下所有以sh开头的文件
示例:locate -i /etc/sh //搜索etc目录下,所有以sh开头的文件,忽略大小写

which //查找系统PATH变量目录下的命令(绝对路径)
示例:which ls

whereis //查找文件索引数据库下的命令、源文件、man文件。非PATH变量查找,所以查找的面比which要广 -b,-m
示例:whereis ls
示例:whereis -b ls

13.yum和rpm

yum 介绍

1.-y   默认yes
2.yum grouplist         --显示系统安装了什么包组
3.yum install tree  -y
4.yum  groupinstall  -y “  ”  --安装包组
1.yum install tree -y
2.yum  groupinstall  “ ”  “ “ 
3.yum  grouplist

1.开启yum缓存

设置 /etc/yum.conf 中的 keepcache 选项为 1:

打开缓存后,每个 yum 操作都可能从仓库下载软件包数据

keepcache=1
根据命令查找yum包
yum  provides showmount

rpm 介绍
1.查看已安装的RPM包

运行rpm -qa | grep [package] , 比如:
rpm -qa | grep docker
运行yum list installed | grep [package] 比如:
yum list installed | grep docker

rpm参数

-qa  查询是否安装
-ql  显示安装包的内容
-ivh 安装
-e  删除

14.buffer和cache

1.memcached / redis

1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等;
2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储;
3、虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘;
4、过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10;
5、分布式--设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从;
6、存储数据安全--memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化);
7、灾难恢复--memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复;
8、Redis支持数据的备份,即master-slave模式的数据备份;

2.buffer和cache什么区别?

写入数据到内存里,这个数据的内存空间称为缓冲区(buffer),写入到内存buffer 缓冲区, 写缓冲。
从内存读取数据,这个存数据的内存空间称为缓存区(cache),从内存cache读取 缓存区,读缓存。

推荐阅读