Linux就该这样学--之常用linux命令及bash基础
Linux就该这样学--之常用linux命令及bash基础
常用命令
常用系统工作命令
- echo [字符串 | $变量]
- date [选项] [+\指定的格式]
- reboot
- poweroff
- wget [参数] 下载地址
- -b 后台下载模式
- -P下载到指定目录
- -t 最大尝试次数
- -c 断点续传
- -p 下载页面内所有资源,包括图片、视频等
- -r 递归下载
- ps
- -a显示所有进程(包括其他用户的进程)
- -u 用户以及其他详细信息
- -x 显示没有控制终端的进程
- 在Linux系统中,有5种常见的进程状态:
- R(运行):进程正在运行或在运行队列中等待。
- S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。
- D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
- Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
- T(停止):进程收到停止信号后停止运行。
- top
- top 第一行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
- top 第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
- top 第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
- top 第四行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
- top 第五行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
- pidof [参数]\ [服务名称]
- kill [参数] [进程PID]
- killall [参数] [进程名称]
系统状态检测命令
- ifconfig [网络设备]\ [参数];获取网卡配置与网络状态等信息
- uname [-a];系统内核与系统版本等信息
- uptime;查看系统的负载信息
- free [-h];内存的使用量信息
- who [参数];当前登入主机的用户终端信息
- last [参数];查看所有系统的登录记录
- history [-c];显示历史执行过的命令
- sosreport;收集系统配置及架构信息并输出诊断文档
工作目录切换命令
- pwd [选项];显示用户当前所处的工作目录
- cd [目录名称]
- ls [选项] [文件]
文本文件编辑命令
- cat [选项] [文件]
- more [选项] [文件]
- head [选项] [文件];查看文件头
- tail [选项] [文件];查看文件尾
- tr [原始字符] [目标字符];替换文本文件中的字符
- wc [参数] 文本;统计指定文本的行数、字数、字节数
- -l;只显示行数
- -w;只显示单词数
- -c;只显示字节数
- stat 文件名称;查看文件的具体存储信息和时间等信息
- cut [参数] 文本;用于按“列”提取文本字符
- diff [参数] 文件;比较多个文本文件的差异
文件目录管理命令
- touch [选项] [文件];创建空白文件或设置文件的时间
- -a;仅修改“读取时间”(atime)
- -m;仅修改“修改时间”(mtime)
- -d;同时修改atime与mtime
- mkdir [选项] 目录;用于创建空白的目录
- cp [选项] 源文件 目标文件 ;复制文件或目录
- -p保留原始文件的属性
- -d若对象为“链接文件”,则保留该“链接文件”的属性
- -r 递归持续复制(用于目录)
- -i 若目标文件存在则询问是否覆盖
- -a 相当于-pdr(p、d、r为上述参数)
- mv [选项] 源文件 [目标路径|目标文件名]; 用于剪切文件或将文件重命名
- rm [选项] 文件;用于删除文件或目录
- dd [参数];按照指定大小和个数的数据块来复制文件或转换文件
- if 输入的文件名称
- of 输出的文件名称
- bs 设置每个“块”的大小
- count 设置要复制“块”的个数
- dd if=/dev/zero of=560_file count=1 bs=560M ;从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件
- dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso;用dd命令来压制出光盘镜像文件
- file 文件名 ;查看文件的类型
打包压缩与搜索命令
- tar [选项] [文件] ;对文件进行打包压缩或解压
- -c 创建压缩文件
- -x 解开压缩文件
- -t 查看压缩包内有哪些文件
- -z 用Gzip压缩或解压
- -j 用bzip2压缩或解压
- -v 显示压缩或解压的过程
- -f 目标文件名
- -p 保留原始的权限与属性
- -P 使用绝对路径来压缩
- -C 指定解压到的目录
- tar -czvf 压缩包名称.tar.gz 要打包的目录;
- tar -xzvf 压缩包名称.tar.gz
- grep [选项] [文件] ;用于在文本中执行关键词搜索
- -b 将可执行文件(binary)当作文本文件(text)来搜索
- -c 仅显示找到的行数
- -i 忽略大小写
- -n 显示行号
- -v 反向选择——仅列出没有“关键词”的行。
- find [查找路径] 寻找条件 操作;用于按照指定条件来查找文件
- -name 匹配名称
- -perm 匹配权限(mode为完全匹配,-mode为包含即可)
- -user 匹配所有者
- -group 匹配所有组
- -mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
- -atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
- -ctime -n+n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
- -nouser 匹配无所有者的文件
- -nogroup 匹配无所有组的文件
- -newer f1 !f2 匹配比文件f1新但比f2旧的文件
- -type b/d/c/p/l/f 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
- -size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
- -prune 忽略某个目录
- -exec ...{}\;后面可跟用于进一步处理搜索结果的命令。用于把find命令搜索到的结果交由紧随其后的命令作进一步处理
- find /etc -name "host*" -print
输入、输出、错误输出和重定向
输入重定向中用到的符号及其作用
- 命令 < 文件;将文件作为命令的标准输入
- 命令 << 分界符;从标准输入中读入,直到遇见分界符才停止
- 命令 < 文件1 > 文件2;将文件1作为命令的标准输入并将标准输出到文件2
输出重定向中用到的符号及其作用 - 命令 > 文件;将标准输出重定向到一个文件中(清空原有文件的数据)
- 命令 2> 文件;将错误输出重定向到一个文件中(清空原有文件的数据)
- 命令 >> 文件;将标准输出重定向到一个文件中(追加到原有内容的后面)
- 命令 2>> 文件;将错误输出重定向到一个文件中(追加到原有内容的后面)
- 命令 >> 文件 2>&1 或 命令 &>> 文件;将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
管道命令符
命令A | 命令B;把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入.。
在修改用户密码时,通常都需要输入两次密码以进行确认,通过把管道符和passwd命令的--stdin参数相结合,我们可以用一条命令来完成密码重置操作:
[root@linuxprobe ~]# echo "linuxprobe" | passwd --stdin root
在发送电子邮件时,默认采用交互式的方式来进行,我们完全可以利用一条结合了管道符的命令语句,把编辑好的内容与标题一起“打包”,最终用这一条命令实现邮件的发送:
[root@linuxprobe ~]# echo "Content" | mail -s "Subject" linuxprobe
让用户一直输入内容,直到用户输入了其自定义的分界符时,才结束输入:
[root@linuxprobe ~]# mail -s "Readme" root@linuxprobe.com << over
> I think linux is very practical
> I hope to learn more
> can you teach me ?
> over
[root@linuxprobe ~]#
命令行的通配符
星号(*)代表匹配零个或多个字符。
问号(?)代表匹配单个字符。
中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符。
中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。
常用的转义字符
4个最常用的转义字符如下所示
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
单引号(''):转义其中所有的变量为单纯的字符串。
双引号(""):保留其中的变量属性,不进行转义处理。
反引号(``):把其中的命令执行后返回结果。
重要的环境变量
命令在Linux中的执行分为4个步骤。
第1步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话则直接执行。
第2步:Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。
- 可以用alias命令来创建一个属于自己的命令别名,格式为“alias 别名=命令”。
- 若要取消一个命令别名,则是用unalias命令,格式为“unalias 别名”。
第3步:Bash解释器判断用户输入的是内部命令还是外部命令。 - 可以使用“type命令名称”来判断用户输入的命令是内部命令还是外部命令。
第4步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会乖乖地在这些位置中逐个查找。
Linux系统中最重要的10个环境变量
- HOME 用户的主目录(即家目录)
- SHELL 用户在使用的Shell解释器名称
- HISTSIZE 输出的历史命令记录条数
- HISTFILESIZE 保存的历史命令记录条数
- MAIL 邮件保存路径
- LANG 系统语言、语系名称
- RANDOM 生成一个随机数字
- PS1 Bash解释器的提示符
- PATH 定义解释器搜索用户执行命令的路径
- EDITOR 用户默认的文本编辑器
使用export命令将自定义变量提升为全局变量,这样其他用户也就可以使用它了:
#root下建立自定义变量
[root@linuxprobe ~]# WORKDIR=/home/workdir
[root@linuxprobe ~]# cd $WORKDIR
#切换用户,变量不起作用
[root@linuxprobe workdir]# su linuxprobe
[linuxprobe@linuxprobe ~]$ echo $WORKDIR
[linuxprobe@linuxprobe ~]$ exit
#返回root用户,提升全局变量
[root@linuxprobe ~]# export WORKDIR
#切换普通用户
[root@linuxprobe ~]# su linuxprobe
[linuxprobe@linuxprobe ~]$ cd $WORKDIR
[linuxprobe@linuxprobe workdir]$ pwd
/home/workdir
Linux就该这样学--之常用linux命令及bash基础的更多相关文章
- Linux学习笔记 (二)常用linux命令
一.命令行语法: 命令字 [选项] [参数] 注意:Linux中对命令是区分大小写的. 二.获取命令帮助: 1.help命令:help xxx,shell内部指令,用来获取linux内部命令.例如:h ...
- Linux系统中常用的命令汇总
日常开发,上线的服务器系统一般都是Linux系统,所以,熟练的掌握常用的命令操作就尤其的重要了 1) 查看某个服务的运行情况 (例如Redis) ps -ef | grep redis //e-显示程 ...
- 5-JVM常用的命令
JVM常用的命令 jps :基础工具 查看JAVA进程PID. jps 命令用来查看所有 Java 进程,每一行就是一个 Java 进程信息. jps 仅查找当前用户的 Java 进程,而不是当前系统 ...
- 《linux就该这么学》课堂笔记04 常用命令cat、mor...tar、find
本节命令汇总 命令 说明 格式 常用参数 实例 备注 cat 查看纯文本文件(内容较少) cat [选项] 文件名称 -n 显示行号 cat -n install-setup-ks.cfg 查看ins ...
- Linux必学的60个命令
inux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想 ...
- 你一定要知道的关于Linux文件目录操作的12个常用命令
写在前面: 1,<你一定要知道的关于Linux文件目录操作的12个常用命令>是楼主收集的关于Linux文件目录操作最常用的命令,包括文件或目录的新建.拷贝.移动.删除.查看等,是开发人员操 ...
- Linux必学的60个命令【转载】
Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存 [转载地址]http://blog.chinaunix.net/uid-16728139-id-3154272.ht ...
- Linux下提权常用小命令
有些新手朋友在拿到一个webshell后如果看到服务器是Linux或Unix操作系统的就直接放弃提权,认为Linux或Unix下的提权很难,不是大家能做的,其实Linux下的提权并没有很多人想象的那么 ...
- Linux常用基本命令:三剑客命令之-awk基础用法
awk是一个超级强大的文本格式化处理工具,他与grep, sed命令被成为linux 三剑客命令 三剑客命令的特点: grep:只要用来匹配和查找文本 sed: 编辑匹配到文本 awk: 格式化文本, ...
随机推荐
- E 快速排序
:以下代码可以从数组a[]中找出第k小的元素. 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的. 请仔细阅读分析源码,填写划线部分缺失的内容. #include <stdio.h& ...
- [AHOI2009] [BZOJ1799] 月之迷 (数位DP)
给出两个数a,ba,b,求出\([a,b]\)中各位数字之和能整除原数的数的个数. 我们按照模板的做法来想,枚举到第pos位时,要确定这一位的数字,可以更新现在所填数字的和,但对于最终的和无从得知,是 ...
- hdu 6794 Tokitsukaze and Multiple 前缀和思想+思维
题意: t组输入,给你一个长度为n的数组,你每次可以从数组中找到a[i]和a[i+1],然后用a[i]+a[i+1]这个新元素来覆盖掉a[i]和a[i+1]的位置(1<=i<n),从而数组 ...
- hdu3938 Portal
Problem Description ZLGG found a magic theory that the bigger banana the bigger banana peel .This im ...
- Python实现AES的CBC模式加密和解密过程详解 和 chr() 函数 和 s[a:b:c] 和函数lambda
1.chr()函数 chr() 用一个范围在 range(256)内的(就是0-255)整数作参数,返回一个对应的字符. 2.s[a:b:c] s=(1,2,3,4,5) 1>. s[a]下标访 ...
- hdu5247 找连续数
Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的. 现在小度熊增加题目难度,他不想知道是否有这 ...
- 牛客练习赛71 C.数学考试 (DP,容斥原理)
题意:RT 题解:先对\(p\)排个序,然后设\(dp[i]\)表示前\(i-1\)个\(p[i]\)满足条件但是\(p[i]\)不满足,即在\([1,p[i]]\)中不存在从\(p[1]\)到\(p ...
- Selenium+Python之下拉菜单的定位
1.通过selenium.webdriver.support.ui的Select进行定位 下拉菜单如下图: 定位代码(选择Male): from selenium.webdriver.support. ...
- httprunner(11)运行测试报告
前言 受益于pytest的集成,HttpRunner v3.x可以使用pytest所有插件,包括pytest-html和allure-pytest,也可以实现这2种方式的报告 内置html报告 pyt ...
- Docker之Dockerfile文件
Dockerfile是一堆指令,每一条指令构建一层,因此每一条指令的内容就是描述该层应当如何构建,在docker build的时候,按照该指令进行操作,最终生成我们期望的镜像文件 Dockerfile ...