首页
Linux
云原生
常用bat文件
Maven教程
mongodb
设计模式
Oracle常用知识梳理
更多……
申请加入课程
Linux系统概要说明
Linux 搭建本地yum仓库
Linux 文本处理工具和正则表达式
VM 使用的几个核心关切点
Linux下python2.x升级python3.7
Linux 的Namespace和cgroups
CentOS7下安装Tomcat8
Linux Shell编程基础
Linux shell编程 输入输出
Linux shell编程test命令
Linux shell编程 流程控制
Linux shell编程 函数
Linux shell编程 文件引用与包含
curl 的使用案例
Linux 网络工具
Linux 定时任务 定时同步互联网时间
CentOS 初始化
Linux NFS 网络文件系统离线批量搭建
Linux 工具
Linux 通过服务器代理访问互联网
Linux ftp服务搭建
Linux 服务器配置SSH免密登陆
linux如何下载rpm离线安装包到本机
Linux 命令基础
Linux 文件管理命令和文件结构
Linux 标准I/O重定向和管道
Linux 用户和组以及权限
Linux 文件的权限管理
Linux 磁盘和磁盘分区
Linux 文件系统挂载与RAID
Linux LVM逻辑卷
Linux 服务注册
Linux常用基础指令
Linux 网络
Linux 防火墙
Linux 备份与还原
Linux 命令基础
星辰
2020-02-19
0
0
424
人
0
人评论
0
人举报
# Linux 命令(一) 系统:centos7: Linux命令学习,包含一些配置的知识 查看命令路径如:`whereis cat`或`which cat` 查看命令是干嘛的`whatis cat`,whatis的数据存储在数据库中的,系统刚刚装好时该数据库不一定创建成功需要等一会,或者使用`mandb` 来创建数据库,创建完后则可以使用`whatis`命令。 查看所有内部命令说明`man bash`,查看指定命令帮助说明`help xxx`或者`man xxx`或者`xxx --help` 命令补全`yum install bash-completion` centos7一般自带,如果没带则用刚刚的命令安装,输入命令空格 tab键可以补全命令参数 ## 服务器运维公用设置 * 历史命令格式设置`echo 'HISTTIMEFORMAT=" %F %T "' >> env.sh` * 设置常用命令的别名设置别名`alias`取消别名`unalias` * 设置ssh连接超时时间`vi /etc/profile`注释`export TMOUT=300` * 修改主机名`hostnamectl set-hostname nfs2` * 修改host配置`vi /etc/hosts ` * 网速测试`speedtest`,需要自行安装 * 关闭防火墙和设置开机关闭`systemctl stop firewalld && systemctl disable firewalld.service` ## linux下的常用快捷键 ``` 涉及在linux命令行下进行快速移动光标、命令编辑、编辑后执行历史命令、Bang(!)命令、控制命令等。让basher更有效率。 常用 ctrl+左右键:在单词之间跳转 ctrl+a:跳到本行的行首 ctrl+e:跳到页尾 Ctrl+u:删除当前光标前面的文字 (还有剪切功能) ctrl+k:删除当前光标后面的文字(还有剪切功能) Ctrl+L:进行清屏操作 Ctrl+y:粘贴Ctrl+u或ctrl+k剪切的内容 Ctrl+w:删除光标前面的单词的字符 Alt – d :由光标位置开始,往右删除单词。往行尾删 说明 Ctrl – k: 先按住 Ctrl 键,然后再按 k 键; Alt – k: 先按住 Alt 键,然后再按 k 键; 移动光标 Ctrl – a :移到行首 Ctrl – e :移到行尾 Ctrl – b :往回(左)移动一个字符 Ctrl – f :往后(右)移动一个字符 Alt – b :往回(左)移动一个单词 Alt – f :往后(右)移动一个单词 Ctrl – xx :在命令行尾和光标之间移动 ctrl-向左键 :往回(左)移动一个单词 ctrl-向右键 :往后(右)移动一个单词 编辑命令 Ctrl – h :删除光标左方位置的字符 Ctrl – d :删除光标右方位置的字符(注意:当前命令行没有任何字符时,会注销系统或结束终端) Ctrl – w :由光标位置开始,往左删除单词。往行首删 Alt – d :由光标位置开始,往右删除单词。往行尾删 Ctrl – k :由光标所在位置开始,删除右方所有的字符,直到该行结束。 Ctrl – u :由光标所在位置开始,删除左方所有的字符,直到该行开始。 Ctrl – y :粘贴之前删除的内容到光标后。 ctrl – t :交换光标处和之前两个字符的位置。 Alt + . :使用上一条命令的最后一个参数。 Ctrl – _ :回复之前的状态。撤销操作。 Ctrl -a + Ctrl -k 或 Ctrl -e + Ctrl -u 或 Ctrl -k + Ctrl -u 组合可删除整行。 Bang(!)命令 !! :执行上一条命令。 ^foo^bar :把上一条命令里的foo替换为bar,并执行。 !wget :执行最近的以wget开头的命令。 !wget:p :仅打印最近的以wget开头的命令,不执行。 !$ :上一条命令的最后一个参数, 与 Alt - . 和 $_ 相同。 !* :上一条命令的所有参数 !*:p :打印上一条命令是所有参数,也即 !*的内容。 ^abc :删除上一条命令中的abc。 ^foo^bar :将上一条命令中的 foo 替换为 bar ^foo^bar^ :将上一条命令中的 foo 替换为 bar !-n :执行前n条命令,执行上一条命令: !-1, 执行前5条命令的格式是: !-5 查找历史命令 Ctrl – p :显示当前命令的上一条历史命令 Ctrl – n :显示当前命令的下一条历史命令 Ctrl – r :搜索历史命令,随着输入会显示历史命令中的一条匹配命令,Enter键执行匹配命令;ESC键在命令行显示而不执行匹配命令。 Ctrl – g :从历史搜索模式(Ctrl – r)退出。 控制命令 Ctrl – l :清除屏幕,然后,在最上面重新显示目前光标所在的这一行的内容。 Ctrl – o :执行当前命令,并选择上一条命令。 Ctrl – s :阻止屏幕输出 Ctrl – q :允许屏幕输出 Ctrl – c :终止命令 Ctrl – z :挂起命令 重复执行操作动作 M – 操作次数 操作动作 : 指定操作次数,重复执行指定的操作。 复制=ctrl-shift-c 粘贴=为ctrl-shift-v ``` ## 查看命令进程 * 查看运行中的命令`pstree -p`,找到/bin/bash下挂载的命令 * 查看运行的所有程序`ps -aux` ## 查看历史执行命令和快捷键 `history`列出历史命令 修改历史存放格式,加上执行时间`HISTTIMEFORMAT=" %F %T "`,这个只是临时起作用,我们需要将其写入文件中`vi /etc/profile.d/env.sh`中即可。 `!`命令编号:执行对应的命令 历史命令都存储在一个文件中`cat .bash_history` `!!` 把刚才执行的命令重复执行一遍 以上!执行命令有很多快捷用法 `ctrl + r`在历史中搜索命令  history的设置:  ## 双引号,单引号、反向单引号用法 双引号:内部是命令如`echo "$PATH"`会打印出变量的值,如果是`echo "echo $PATH"`输出结果是echo 变量的值,其中双引号中的echo当成字符串了,双引号只识别变量不识别命令。 单引号:当作字符串处理如`echo '$PATH'`,打印字符串$PATH 反向单引号:反向单引号里面的都是命令如 ``` echo `echo $PATH` # 输出结果是变量的值 touch /data/`date +%F`.log touch `echo file{1..10}` touch /data/file`{1..10}` echo "My hostname is `hostname`" echo "My hostname is $(hostname)" ``` ## 保持窗口后台运行以及linux的窗口远程帮助 * 保持窗口后台运行 当我们做备份时或安装一个需要几个小时才安装完成的软件时,我们希望其不受网络断开影响或者中途卡机影响时我们可以使用到命令`screen`。测试:我们运行`screen`会打开一个新窗口,在该窗口运行ping命令,然后关闭该窗口,我们重新开一个窗口,通过`ps -aux`我们可以看到刚刚的ping命令还在运行中,说明其还在后台运行,如果我们需要恢复进入之前的窗口,可以使用`screen -ls`查看窗口列表,使用`screen -r`即可恢复之前的窗口看到还在ping的过程中。 screen工具安装`yum install screen -y` * 通过screen来远程协助: 场景:xiaoming和xiaohong都通过xshell远程机器A,假如xiaohong需要xiaoming远程协助其排查一个问题,此时xiaoming需要看到xiaohong的操作,这个时候就可以让xiaohong通过screen开窗口`screen -S xiaohong`,然后小红在该窗口下操作,此时xiaoming可以通过`screen -ls`查看到小红的操作界面,然后通过`screen -x xiaohong`加入到xiaohong的窗口,这个时候窗口信息会同步。在帮助的过程中如果要临时退出同步窗口不能使用`exit`因为这样会两边都退出,可以使用快捷键`ctrl + a , d`来临时退出远程协助。 * 关闭卡死的screen`screen -X -S master quit` ## echo的妙用 * echo可以按各种格式输出结果,比如字符串需要换行等,比如输出结果颜色控制闪烁灯提醒 * 可以输出报警声音 * 可以打印笛卡尔积`echo {a,c,f}.{1,2,3}` * 可以输出序列如:倒序按步长为2输出`echo {20..10..2}`或者`echo {0000..20..2}`;输出连续序列`echo {a..z}或者echo {1..10}` 其他强大功能,请查看帮助文档,echo是个重要的常用命令。 # shell下文件传输 安装`yum install -y lrzsz` windows文件传输到linux`sz` linux文件传到windows`rz xxx` ## 显示当前终端 显示当前终端`tty` # 命令设置别名 设置别名`alias` 取消别名`unalias` 永久生效`.bashrc` ## 睡眠命令 睡10秒`sleep 10` 睡眠3秒报个警告`sleep 3 ; echo -e "\a"` ## Linux的shell支持情况 查看linux的shell支持情况`cat /etc/shells` 查看linux默认的shell类型`echo $SHELL` 切换shell如`/bin/csh`切换到csh,还原到默认shell只需要exit即可 ## 时间命令 Linux时间分为系统时间和硬件时间(靠服务器上的电池来维持) 系统时间查看命令`date` 硬件时间查看命令`clock` 设置系统时间 `date 2020-02-18` 把硬件时间写入系统时间`clock -s` 把系统时间写入硬件时间`clock -w` 同步远程服务器的时间到本机的软件时间`ntpdate 192.168.100.57`,然后用`clock -w`修改硬件时间 同步时间 ``` # rm -rf /etc/localtimeln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && yum -y install ntpdate ntp && ntpdate -u 120.24.81.91 && /sbin/hwclock --systohc ``` ## 内部命令和外部命令 内部命令是在系统启动时加载在内存中的命令 外部命令是在使用时根据环境变量来寻找对应的文件来进行执行的命令 查看所有内部命令可以使用`help`列出 判断命令是内部命令还是外部命令,除了使用上面的`help`外,还可以使用type查看,如`type cat` 显示了命令路径则表示是外部命令,如`type cd`不显示命令路径则为内部命令。 `type -a cd`可以发现`cd`既有内部命令又存在外部命令,此时内部命令优先级高于外部命令,如果要使用外部命令可以写上绝对路径来调用,或者可以通过禁用内部命令cd来实现。具体命令为`enable -n cd`,再次查看`type -a cd`发现已经不显示内部命令,使用`enable cd`可以重新启用被禁用的内部命令。 外部命令被执行后会被缓存起来,查看缓存`hash`,如果外部命令路径修改了,需要从hash里面将缓存删除,否则会报错。清理缓存`hash -d xxx` ## 环境变量 查看环境变量`echo $PATH` ## 查看系统名称 查看系统名称hostname 设置系统名称:`hostnamectl set-hostname nfs2` 修改系统名称`/etc/hostname` 修改域名配置`vi /etc/hosts` ## 查看系统内核 查看内核`uname -a` 查看linux版本centos`cat /etc/redhat-release` ## 二进制文件查看工具 hexdump是Linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII、八进制、十进制、十六进制格式进行查看 `hexdump -C hello.txt`  另外一个工具也可以查看`xxd hello.txt` 查看ascii编码`man 7 ascii` 查看unicode帮助`man unicode` ## 字符串操作命令 ``` # 定义变量 [root@node7 home]# attr="I love you" [root@node7 home]# echo $attr I love you # 获取字符串长度 [root@node7 home]# echo ${#attr} 10 # 截取字符串 [root@node7 home]# echo ${attr:1:4} lov [root@node7 home]# echo ${attr:0:4} I lo # 打印变量 [root@node7 home]# echo ${attr} I love you # 查找字符出现的位置 [root@node7 home]# echo ${attr} I love you # 查找l或o出现的位置(哪个字母先出现就计算哪个) [root@node7 home]# echo `expr index "$attr" lo` 3 [root@node7 home]# echo `expr index "$attr" ol` 3 ``` ## 数组操作 ``` # 定义数组 [root@node7 home]# arr=(a b c) # 遍历数组 [root@node7 home]# for item in ${arr[@]};do > echo $item > done a b c # 打印数组 [root@node7 home]# echo ${arr[@]} a b c [root@node7 home]# echo ${arr[0]} a # 打印数组长度 [root@node7 home]# echo ${#arr[@]} 3 [root@node7 home]# echo ${#arr[1]} 1 ```
所有评论列表
点我发表评论