Linux 常用命令
一、Linux 内核Linux 是一套开源的类 Unix 操作系统,是一个基于Posix和Unix的多用户、多任务、支持多线程和多CPU的,用C语言写成的操作系统。目前成型的系统有如下:手机:Android、ios(只能算半个)电脑:linux、ubuntu、MAC等二、Linux 目录结构1. /root超级用户目录2. /sbin/sbin 超级...
1、路径
1. cd 命令(路径切换)
# cd /opt 切换到/opt目录下
# cd ~ 或者 cd 切换到用户目录
# cd .. 切换到上一级目录
# cd - 切换到上一次访问的目录
2. pwd 命令(查看当前所在路径)
2、文件和目录操作
1. touch 命令(新建文件)
# touch a.txt 创建一个a.txt文件
# touch abc/a.txt 在abc目录下创建一个a.txt文件
# touch file{1..3}.txt 批量创建文件(file1.txt,file2.txt,file3.txt)
2. mkdir 命令(创建目录)
默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
常用参数:
-p | 递归创建多级目录 |
# mkdir test 创建一个test目录。
# mkdir -p test 若存在test,则不创建;若不存在,则创建
# mkidr -p test/a/b 创建test目录,其下再创建a目录,a目录再创建b目录(父目录存在的情况下父目录不会重新创建,只创建子目录)
# mkdir dir1 dir2 dir3 批量创建目录dir1,dir2,dir3
3. rm 命令(删除文件或目录)
文件一旦通过rm命令删除,则无法恢复,慎用!!!
常用参数:
-f | 强制删除,不会出现警告信息 |
-i | 删除前会询问用户是否操作 |
-r/R | 递归删除 |
# rm -i a.txt -i 删除前询问确认
# rm a.txt 删除a.txt,删除前询问(注意:有些系统是直接删除,不会询问)。
# rm -f a.txt 强制删除a.txt,即使a.txt只有只读权限,不在询问 。
# rm -r test 删除test目录,删除前询问(注意:有些系统是直接删除,不会询问)
# rm -rf test 强制删除test目录,不在询问 。
# rm -rf * 删除当前目录下的所有文件及目录
4. mv 命令
#语法格式: mv 源文件|目录 目标文件|目标目录
#作用: 有两层意思,分别为:
1. 进行重命名文件或目录
2. 进行移动文件或目录到目的目录 。
常用参数:
-i | 若存在同名文件,则向用户询问是否覆盖 |
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
# mv a.txt b.txt 修改文件名a.txt为b.txt,如果已存在b.txt,则会被覆盖
# mv a.txt test/ 移动a.txt 到test目录下
# mv abc bcd 如果bcd目录不存在,则是重命名目录abc为bcd;如果已存在bcd目录,则是abc目录移动到bcd目录下
# mv /abc/* . 移动目录abc下的所有文件和目录到当前目录下
5. cp 命令(拷贝)
常用参数:
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-r | 递归复制文件和目录 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
#语法格式: cp [-rf] 源文件|目录 目标文件|目录
# 示例:
# cp -i a.txt b.txt 如果b.txt已存在,给出提示是否继续拷贝
# cp a.txt b.txt 拷贝a.txt为b.txt,若b.txt已存在,则提示是否继续拷贝(注意:有些系统不会询问)
# cp -r abc bcd 如果bcd目录不存在,则是拷贝abc目录为bcd目录;如果bcd目录已存在,则是拷贝整个abc目录到bcd目录下。
# cp file1.txt file2.txt file3.txt bar 拷贝file1.txt file2.txt file3.txt到bar目录下,必须先确保bar目录存在
6. ln命令(创建文件链接)
#语法格式:
ln 源文件名 硬链接文件名
ln -s 源文件名 软连接文件名
# 示例:
# ln a.txt a.txt.link 为a.txt创建一个硬链接文件a.txt.link。
# ln -s a.txt a.txt.link 为a.txt创建一个软连接文件 。
# 备注:
软链接文件:就像Windows中快捷方式一样,只是源文件的一个指向,删除软连接文件,源文件任存在。
硬链接文件:比如当前目录下有2个文件,这2个文件除了名字不一样其他的一模一样,但是占用的实际磁盘空间还是只有1M,改变任何一个文件的内容另一个文件也会跟着改变;
7. split 命令(文件分割)
split命令可以将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件,源文件保持不变。
常用参数:
-num | 指定多少行分割成一个文件 |
-b | 指定每多少字节切成一个小文件 |
# split -5 c.txt 按每5行显示分隔出一个文件。
3、查看文件和目录信息
1. file 命令(查看文件的类型)
file命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。
# file a.txt #查看a.txt是什么类型
# file abc #查看abc是什么类型
2. du 命令(查看文件大小)
du命令的全称是“Disk Usage”。
常用参数:
-a | 显示目录中所有文件和目录大小 |
-k | 以KB为单位显示文件大小 |
-m | 以MB为单位显示文件大小 |
-g | 以GB为单位显示文件大小 |
-h | 以易读方式显示文件大小 |
-s | 仅显示总计 |
# du a.txt 查看a.txt的文件大小
# du -h a.txt 以易读方式查看a.txt的文件大小
# du -h abc 以易读方式显示abc目录及其子目录的大小
# du -sh abc 以易读方式显示abc目录的大小
4、搜索文件和目录
1. ls 命令(查看当前路径下的文件和目录)
常用参数:
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
-l | 显示文件及目录的详细信息 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
# ls 查看当前路径下所有的文件或目录
# ls abc/ 查看abc目录下所有的文件或目录
# ls -l a.log 查看当前路径下a.log的详细信息
# ls *.json 查看当前路径下以.json为后缀的文件
2. find 命令(查找指定目录下的文件和目录)
常用参数:
-name | 按名称查找 |
-size | 按大小查找 |
-user | 按属性查找 |
-type | 按类型查找 |
-iname | 忽略大小写 |
# find abc/ -name "*.txt" 查询abc目录下所有以.txt结尾的文件 。
# find abc/ ! -name "*.txt" 查询abc目录下不是以.txt结尾的文件
# find /test -perm 644 查询/test目录下权限为644的所有文件
# find . -type f 查询当前目录下所有的文件(包括子目录下)
# find . -type f -name "abc" 查询当前目录下所有文件中名字叫“abc”的文件
# find . -type f | sort 查询当前目录下所有文件并排序
# find . -type d 查询当前目录下所有目录
# find . -size +1M 查看当前目录下面大于1M的文件
# find . 列出当前目录及子目录下所有文件和目录
如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。
3. grep 命令(强大的文本搜索工具)
linux系统支持三种形式的grep命令,大儿子就是grep,标准,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。
常用参数:
-i | 搜索时,忽略大小写 |
-c | 只输出匹配行的数量 |
-l | 只列出符合匹配的文件名,不列出具体的匹配行 |
-n | 列出所有的匹配行,显示行号 |
-h | 查询多文件时不显示文件名 |
-s | 不显示不存在、没有匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行 |
-w | 匹配整词 |
-x | 匹配整行 |
-r | 递归搜索 |
-q | 禁止输出任何结果,已退出状态表示搜索是否成功 |
-b | 打印匹配行距文件头部的偏移量,以字节为单位 |
-o | 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 |
# grep "aaa" a.txt 从a.txt中搜索aaa字符的行,输出行的内容
# grep -v "aaa" a.txt 从a.txt中不包含aaa的行
# grep -n "aaa" a.txt 从a.txt中搜索aaa字符的行,并在前面加上行号
# grep -i "aaa" a.txt 从a.txt中搜索aaa字符的行,其中忽略aaa的大小写
# grep -e "a*" a.txt 从a.txt中搜索匹配a字符的行
4. which 命令(查找文件)
which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
# which nginx 查找命令运行路径
5. locate 命令(查找文件)
查找符合条件的文档。
locate file_name
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:updatedb
5、备份压缩
1. zipinfo 命令(查看zip文件里的信息)
常用参数:
-1 | 只列出文件名称 |
-h | 查看压缩文件的概括信息 |
-t | 只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率 |
# zipinfo abc.zip 查看abc.zip文件的详细信息 。
# zipinfo -1 abc.zip 只显示abc.zip里的文件名称。
2. zip命令(文件和目录压缩为zip)
常用参数:
-r | 递归处理,将指定目录下的所有文件和子目录一并处理 |
# zip a.zip a.txt 将a.txt进行压缩形成a.zip 。
# zip -r a.zip test 将test目录压缩到a.zip(压缩目录一定要加 -r,不然解压缩后的目录里是没有内容的) 。
# zip -r abc123.zip abc 123.txt 把abc目录和123.txt压缩成abc123.zip
3. unzip 命令(解压缩zip文件)
-d | 指定文件解压缩后所要存储的目录 |
# unzip abc.zip 解压缩abc.zip里的内容到当前目录
# unzip abc.zip -d bcd 解压缩abc.zip里的内容到bcd目录,bcd目录不存在则会新建
# unzip file\*.zip -d bar 将file1.zip,file2.zip,file3.zip同时解压缩到bar目录里
4. gzip 命令(压缩|解压缩文件或目录)
常用参数:
-a | 使用ASCII文字模式 |
-d | 解压缩 |
-f | 强行压缩文件 |
-l | 列出压缩文件的相关信息 |
-c | 把压缩后的文件输出到标准输出设备,不去更动原始文件 |
-r | 递归处理,将指定目录下的所有文件及子目录一并处理 |
-q | 不显示警告信息 |
# gzip a.txt 将a.txt压缩为a.txt.gz ,注意压缩后源文件已不存在。
# gzip -c a.txt > a.txt.gz 将a.txt压缩为a.txt.gz,源文件不会变更
# gzip -d a.txt.gz 解压a.txt.gz文件,注意解压后a.txt.gz文件已不存在。
# gzip -r abc 只会压缩abc目录下的文件,abc目录还是存在
在 Linux 中,打包和压缩是分开处理的。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。
5. gunzip 命令(解压缩gzip压缩过的文件)
事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip命令单独完成。
# gunzip a.txt.gz 解压a.txt.gz
6. tar 命令(进行归档并创建压缩文件 或 进行解压归档压缩文档)
tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
常用参数:
-A | 新增文件到以存在的备份文件 |
-B | 设置区块大小 |
-c | 建立新的备份文件 |
-C <目录> | 切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于仅压缩特定目录里的内容或解压缩到特定目录 |
-d | 记录文件的差别 |
-x | 从归档文件中提取文件 |
-t | 列出备份文件的内容 |
-z | 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz |
-Z | 通过compress指令处理备份文件 |
-f<备份文件> | 指定备份文件 |
-r | 添加文件到已经压缩的文件 |
-u | 添加改变了和现有的文件到已经存在的压缩文件 |
-j | 通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2 |
-l | 文件系统边界设置 |
-k | 保留原有文件不覆盖 |
-m | 保留文件不被覆盖 |
-w | 确认压缩文件的正确性 |
-p | 保留原来的文件权限与属性 |
-P | 使用文件名的绝对路径,不移除文件名称前的“/”号 |
-- -exclude=<范本样式> | 排除符合范本样式的文件 |
-- -remove-files | 归档/压缩之后删除源文件 |
# tar -cf all.tar *.txt 将当前目录下所有.txt的文件打成一个名为all.tar的包
# tar -cf foo.tar foo 将foo目录打包成foo.tar压缩包
# tar -xf foo.tar 解压foo.tar
6、文本内容查看
1. cat 命令
cat命令用于查看、新建、修改文件。
注意:当用cat查看大文件时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!
常用参数:
-n | 显示行数(空行也编号) |
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
-T | 将TAB字符显示为 ^I符号 |
-v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
-e | 等价于”-vE”组合 |
-t | 等价于”-vT”组合 |
-A | 等价于 -vET组合 |
--help | 显示帮助信息 |
--version | 显示版本信息 |
# cat a.txt 显示a.txt里的内容
# cat file1 file2 > file3 把file1和file2的内容合并成一个新文件file3
# cat -n a.log > b.log 查看a.log的内容,并添加行数编号后输出到b.log中
# cat filename > newfile 把filename的内容输出到newfile中,如果newfile不存在则会创建一个新的文件
# cat a.txt b.txt > c.txt 把a.txt b.txt的内容拷贝到c.txt
# cat > a.txt 创建a.txt,然后输入文件内容,按ctr+d保存退出
# cat a.txt >> b.txt 将a.txt的内容添加到b.txt文件内容的末尾
# cat >> a.txt 将输入的新文本追加到a.txt
# cat a.txt b.txt >> c.txt 把a.txt b.txt内容添加到c.txt文件的末尾
2. more 命令
more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。而对于内容较少的文本文件内容则推荐使用cat命令查看。
常用参数:
-num | 指定每屏显示的行数 |
-l | more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性 |
-f | 计算实际的行数,而非自动换行的行数 |
-p | 先清除屏幕再显示文本文件的剩余内容 |
-c | 与-p相似,不滚屏,先显示内容再清除旧内容 |
-s | 多个空行压缩成一行显示 |
-u | 禁止下划线 |
+/pattern | 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示 |
+num | 从第 num 行开始显示 |
命令内部操作:
- Space键:显示文本的下一屏内容
- Enter键:向下n行,需要定义,默认为1行
- 斜线符\:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
- H键:显示帮助屏
- B键:显示上一屏内容
- Q键:退出more命令
- Ctrl+F、空格键:向下滚动一屏
- Ctrl+B:返回上一屏
- =: 输出当前的行号
- :f:输出文件名和当前的行号
- V:调用vi编辑器
- !:调用Shell,并执行命令
# more a.txt 若只有一页,则全部显示,否则按百分比显示
# more +5 a.txt 从第5行开始显示a.txt文档内容
3. head 命令(显示文件开头内容)
默认显示前10行。
常用参数:
-n | 后面接数字,代表显示几行的意思 |
-c | 指定显示头部内容的字符数 |
# head a.txt 查看文本内容,和cat效果一样。
# head -n 2 a.txt 查看文本的前两行 。
4. tail 命令(显示文件尾部内容)
默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
常用参数:
--retry | 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用 |
-c<N>或——bytes=<N> | 输出文件尾部的N(N为整数)个字节内容 |
-f<name/descriptor> | --follow<nameldescript>:显示文件最新追加的内容 |
-F | 与选项“-follow=name”和“--retry”连用时功能相同 |
-n<N>或——line=<N> | 输出文件的尾部N(N位数字)行内容 |
--pid=<进程号> | 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 |
--help | 显示指令的帮助信息 |
--version | 显示指令的版本信息 |
# tail a.txt 查看文件内容,和cat效果一样 。
# tail -n 2 a.txt 显示a.txt最后两行
# tail -f a.txt 实时监控a.txt文本内容。
# tail +20 a.txt 显示a.txt的内容,从第20行至文件末尾
# tail -c 10 a.txt 显示a.txt的最后10个字符
7、文件传输
1. tftp 命令(连接远程主机,上传或下载文件)
常用参数:
connect | 连接到远程tftp服务器 |
mode | 文件传输模式 |
put | 上传文件 |
get | 下载文件 |
quit | 退出 |
verbose | 显示详细的处理信息 |
trace | 显示包路径 |
status | 显示当前状态信息 |
binary | 二进制传输模式 |
ascii | ascii 传送模式 |
rexmt | 设置包传输的超时时间 |
timeout | 设置重传的超时时间 |
help | 帮助信息 |
# tftp 218.28.188.288 连接远程服务器”218.28.188.288″
# get a.txt 下载a.txt文件
# put a.txt 上传a.txt到远程主机
# quit 退出服务器连接
2. curl 命令(文件下载)
它的名字就是客户端(client)的 URL 工具的意思。
curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。
它的功能非常强大,命令行参数多达几十种。
常用参数:
-o | 把输出写到该文件中,保留远程文件的文件名 |
-u | 设置服务器认证的用户名和密码 |
# curl http://www.baidu.com 请求百度,发出 GET 请求,服务器返回的内容会在命令行输出。
# curl -o baidu.html http://www.baidu.com 将请求到的数据保存到baidu.html中
# curl -u 'bob:12345' https://google.com/login 设置用户名为bob,密码为12345,然后将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1。
# curl -u 'bob' https://google.com/login 这里只设置了用户名,执行后,curl 会提示用户输入密码。
# curl https://bob:12345@google.com/login 在URL里设置用户名和密码,curl也能识别
3. scp 命令(登录远程主机拷贝远程文件和目录)
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。 scp命令用于在Linux下进行远程拷贝文件的命令,而且scp传输是加密的。
#语法格式: scp 远程主机账号@远程IP地址 本地目录
#作用: 登录远程主机进行拷贝文件或目录
# 示例:
# scp root@192.168.12.11:/soft/test.tar.gz /tools/ 将远程主机目录下的/soft/test.tar.gz 拷贝到本地目录下的tools/下
# scp root@192.168.12.11:/soft/ /tools/ 将远程主机目录soft 拷贝到本地目录的tools/下 。
# scp /opt/soft/rhel-server-7.3-x86_64.tar.gz root@192.168.10.10:/opt/soft/scptest 上传本地文件到远程机器指定目录
# scp -r ./dist root@192.168.10.10:/mnt/code/static 上传本地目录到远程机器指定目录
常用参数:
-1 | 使用ssh协议版本1-2 |
-2 | 使用ssh协议版本2 |
-4 | 使用ipv4 |
-6 | 使用ipv6 |
-B | 以批处理模式运行 |
-C | 使用压缩 |
-F | 指定ssh配置文件 |
-l | 指定宽带限制 |
-o | 指定使用的ssh选项 |
-P | 指定远程主机的端口号 |
-p | 保留文件的最后修改时间,最后访问时间和权限模式 |
-q | 不显示复制进度 |
-r | 以递归方式复制 |
4. rcp 命令(远程文件复制)
rcp命令的英文是“remote file copy”,即远程文件复制,可以使在两台Linux主机之间的文件复制操作更简单。通过适当的配置,在两台Linux主机之间复制文件而无需输入密码,就像本地文件复制一样简单。
rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。
rcp命令默认系统没有安装,需要安装rsh和rsh-server这2个库,通过配置实现网络文件复制。
常用参数:
-p | 保留源文件或目录的属性,包括拥有者,所属群组,权限与时间 |
-r | 递归处理,将指定目录下的文件与子目录一并处理 |
-x | 加密两台Linux主机间传送的所有信息 |
-D | 指定远程服务器的端口号 |
# rcp test 192.168.128.169:/test 拷贝当前目录下的test 到192.168.128.169的/test目录下
# rcp root@192.168.128.169:./test /test 复制远程目录到本地的/test下
5. wget 命令(文件下载)
wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。
# wget http://www.xxx.com/a.zip 使用wget下载单个文件
# wget -O test.zip http://www.xxx.com 下载并以不同的文件名保存
# wget -c http://www.xxx.com/a.zip 使用wget断点续传
# wget -b http://www.xxx.com/a.zip 使用wget后台下载
7、编辑输出
1. vi/vim 命令(编辑文件)
vi编辑器是所有linux的标准编辑器,用于编辑任何ASCⅡ文本。
常用参数:
+ | 从文件末尾开始 |
+<行数> | 从指定行开始 |
# vi a.txt 编辑a.txt
# vim a.txt 编辑a.txt
# vi +3 a.txt 从第3行开始编辑a.txt
vi和vim的用法基本一样,可以说vim是vi的增加版。
vi / vim 共分为三种模式:一般模式,插入模式和底行命令模式。
vim a.txt:打开文件。
1. 一般模式
在一般模式下按下 i/a/o 就进入了插入模式,底下会显示 --INSERT--。
2. 插入模式
插入模式下 \ 代表文件里真正的换行。
按 ESC 键退出插入模式,进入一般模式。
3、底行命令模式
底线命令模式基本命令有:
:w //保存文件
:w b.txt //另存为 b.txt 文件
:q //退出编辑器,如果文件已修改请使用下面命令
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件
按 ESC 键退出底行命令模式,进入一般模式。
:u //取消上一步操作
2. > 命令(输出到指定文件)
将内容输出到文件,若文件中有内容则覆盖。若文件不存在,则创建文件。
# ll > a.txt 查看详细后输出到a.txt 。
# cat a.txt > b.txt 将a.txt中的内容添加到b.txt中 。
3. >> 命令(追加内容到文件)
将内容追加到文件,若文件中有内容则追加。若文件不存在,则创建文件。
# ll >> a.txt 查看详细后追加到a.txt 。
# cat a.txt >> b.txt 将a.txt中的内容添加到b.txt中 。
4. tee 命令
常用参数:
-a | 附加到既有文件的后面,而非覆盖它 |
#作用: 将内容输出到文件并输出内容显示在控制台上。若文件不存在,则创建文件,一般需要和管道符(|)一起使用。
# 示例:
# cat a.txt | tee b.txt 将a.txt中的内容添加到b.txt中,同时将添加内容回显到控制台上 。
5. echo 命令(输出)
# echo "Welcome" 输出一段字符串
# echo $abc 输出变量abc的值,需要提前定义abc的值
# echo \$abc 对内容进行转义,不让$符号的提取变量值功能生效(这里会输出 $abc 字符串)
# echo `pwd` 显示当前路径(使用反引号符执行命令,并输出其结果到终端)
# echo "It is a test" > a.txt 将字符串信息导入a.txt文件(a.txt 已有的内容会被覆盖)
# echo -e "a\nb\nc" 输出带有换行符的内容
a
b
c
6. sed 命令(编辑文本文件)
# sed -n '2p' a.txt 从a.txt中的第二行内容
# sed '3,5d' a.txt 删除a.txt中第3到5行的内容,(注:源文件内容不变,只是回显内容会删除)
# sed '/aaa/d' a.txt 删除匹配aaa的行,从a.txt中 。
7. uniq 命令(删除文件中重复的行)
注意:重复的行一定是相邻的行,若不相邻不会删除。
8、网络管理
1. ifconfig 命令(查看或设置网络设备)
# ifconfig 查看网络信息,比如IP地址(IP地址是en0下的inet后面部分)
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE 修改Mac地址
# ifconfig eth0 192.168.128.169 修改ip地址为192.168.128.169
用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
2. ping 命令(确认是否和某主机的网络相同)
# ping 192.168.12.12 确认是否能连通到192.168.12.12
# ping www.baidu.com 确认是否能正常访问百度
# ping -c 4 www.baidu.com 只ping四次
# ping -c 4 -i 2 www.baidu.com 只ping四次,每次间隔2s
9、任务管理器
1. ps 命令(显示当前系统的进程状态)
# ps -ef 显示所有进程
# ps -aux 显示所有进程
# ps -ef | grep mysql 查看mysql进程
# ps -u root 显示root用户进程。
2. kill 命令(杀死进程)
kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。
# kill 319877 杀掉进程319877
# kill -9 319877 强制杀掉进程319877
3. top 命令(显示系统中各个进程的资源占用情况)
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。
# top 查看系统各个进程的资源占用,比如CPU ,内存信息。
# top -n 5 动态更新5次结束
# top -d 5 每隔5秒更新一次
4. exit 命令(退出当前执行的shell或终端)
执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。
常用参数:
0 | 执行成功 |
1 | 执行失败 |
$? | 参照上一个状态值 |
# exit 退出当前shell
# exit 1
5. lsof(查看端口占用情况 )
lsof -i:3000
10、安装更新配置
1. yum 命令(rpm的软件包管理器)
# yum install mysql 安装mysql
# yum remove mysql 卸载mysql
# yum clean mysql 清除缓存目录下的安装包
# yum install 全部安装
# yum update 全部更新
# yum update mysql 更新mysql
# yum info mysql 显示mysql安装包信息
# yum list mysql 显示mysql安装包信息
# yum list 显示所有已安装包和可安装包
2. sh 命令(运行可执行文件,一般都是shell脚本)
# sh a.sh 运行a.sh文件,
# sh -x a.sh 运行并调试a.sh脚本
或用"./"执行可执行文件:
./a.sh
11、系统相关
1. set 命令
#作用: 显示当前shell的变量,包括当前用户的变量;
# 示例:
# abcd=100
# set | grep abcd 显示abcd的变量值
2. unset 命令(删除shell变量的值)
# abcd=100
# unset abcd 删除abcd的变量值
3. env 命令(设置或显示当前环境变量)
# env 显示当前环境变量
# env abcd=10 定义环境变量
# env -u abcd 删除已经定义的环境变量abcd
12、重启与关机
1. shutdown 命令(关闭或重启)
常用参数:
-c | 当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令 |
-f | 重新启动时不执行fsck |
-F | 重新启动时执行fsck |
-h | 将系统关机 |
-r | shutdown之后重新启动 |
# shutdown -h now 立即关机
# shutdown -h 22:30 22:30关机
# shutdown +5 5分钟后关机
# shutdown -r now 立即重启
# shutdown -c 取消按预定时间关机
2. reboot 命令(重启计算机)
# reboot 重启
其他命令
1. sort 命令(对文本内容进行排序)
# sort a.txt 将a.txt中的内容进行排序,默认为升序。
# sort -r a.txt 将a.txt中的内容进行相反顺序排序
# uniq d.txt | sort -r 将d.txt中相邻重复的行去掉并倒序排序
2. wc 命令(统计文件的字节数、字数、行数)
# wc 1.txt:(行数是从0开始的)
3. iconv 命令(给文件转码)
常用参数:
-f | 输入编码 |
-t | 输出编码 |
-c | 忽略不可转换的字符 |
--unicode-subst=FORMATSTRING | 替代不可转换的 Unicode 字符 |
--byte-subst=FORMATSTRING | 替代不可转换的字节 |
--widechar-subst=FORMATSTRING | 替代不可转换的宽字符 |
-s | 不显示有关转换出错的信息 |
-l | 列出支持的编码 |
# iconv -c -f GBK -t UTF-8 xxx.csv > 1.csv 给文件转码
4. chmod 命令(为文件或目录设置权限)
5. date 命令(显示日期与时间)
# date 查看当前时间
# date -s "2021-04-04 22:38:56" 设置时间为2021-04-04 22:38:56
6. sudo 命令(以系统管理员权限运行命令)
7. clear 命令(清除屏幕)
clear命令用于清除屏幕。本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。
8. open 命令
# open -t a.txt 用默认软件打开a.txt。
# open https://www.baidu.com 用默认浏览器打开网址
9. source 命令(从指定文件读取和执行命令)
source 命令又称“点命令”,就是个点符号,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
# source ~/.bashrc 重新执行刚修改的初始化文件,使之立即生效(等价于. ~/.bashrc)
其他
1. $HOME 用户主目录
别名“~”。
find $HOME -print 查找当前用户主目录下的所有文件
2. $PATH 环境变量
如果将可执行文件放在这些目录中的任意一个目录中,则无需设置可执行文件/脚本的路径,但是可以通过其名称作为命令来运行它。
echo $PATH // 打印环境变量
3. 多指令
cd demo && npm install
4. history 命令
查看历史记录。它显示了在终端中所执行过的所有命令。
5. ssh 命令(连接基于 Linux 的远程主机)
ssh root@192.168.4.21
更多推荐
所有评论(0)