linux常用命令学习
1.whoami :打印与当前生效的用户 ID 关联的用户名
2.hostname 查看主机名
修改主机名(永久修改) hostnamectl set-homename 新的主机名
3.修改linux的命令提示符,通过变量PS1控制
echo $变量名 #打印出变量的值 #输出PS1变量的值 echo $PS1 #修改变量的值 [\u@\h \W]\$ PS1='[\u@\h \t \w]\$' \u 当前登录用户 \h 当前主机名 \t 当前系统时间 \w 输出绝对路径 \W 输出工作路径的最后一位
4.vim编辑器的用法
1. 编辑文件 当文件名称存在时,进入文件直接编辑 当名称不存在,vim会退出保存时自动建立文件 当vim命令后没有跟任何文件名称时,无法实现“:wq”退出保存时,可以用“wq filename” 2. 当vim异常退出时,系统会建立 .file.swp这个缓存文件 这个文件中保存着 没有“:wq”动作保存的信息 当用vim对文件做编辑的时候会提示 O #只读打开 E #直接忽略.file.swp信息编辑文件 R #利用.file.swp进行保存数据恢复 D #删除.file.swp Q #退出 A #终止 #vim的三种模式 命令模式 1.vim工作方式设定 命令模式是vim打开文件后默认进入的模式,这个模式不能插入字符,但是可以设定vim的工作方式 :set 指定信息 :set nu #给每一行标序 :set nonu #去掉每一行的序号 :set cursorline #添加光标所在行的下划线 :set mouse=a #用鼠标控制光标所在位置 # 注意:在vim中直接设定vim的工作方式是临时设定,如果vim关闭,设定失效 # 如果要永久设定需要设定需要编写“/etc/vimrc”这个文件是vim的配置文件 2.在命令模式下如何管理字符 按"x" 删除光标所在字符 按"u" undo 恢复 按"ctrl+r" redo 撤销恢复 按"y" 复制 "yw" ##复制一个单词 "yl" ##复制一个字母 "yy" ##复制一整行 "y5y" ##复制5行 "c" 剪切 "cw" ##剪掉一个单词 "cl" ##剪掉一个字母 "cc" ##剪掉一整行 "c5c" ##剪掉5行 注意:"用C做剪切时,会进入插入模式,如果要粘贴需要退出插入模式按<ESC>再按P" "d" 删除 "dw" ##删除一个单词 "dl" ##删除一个字母 "dd" ##删除一整行 "d5d" ##删除5行 "p" 粘贴 # vim的可视化操作 1.可视化模式的基本操作 在vim中不能用鼠标选择区域操作,如果需要操作某个区域,需要进入到可视化模式 在命令模式下“Ctrl+v”进入到可视化模式 按“上|下|左|右”移动光标选择区域,按相应操作键就可以对选择区域进行操作 2.可视化模式下批量操作字符 把光标停留在想要加入字符所在的列的第一行 移动光标选择添加字符所在列 按“I”进入插入模式 按“ESC”退出插入模式,字符批量添加成功的 3.vim字符替换 %s/原有字符/新字符/g #全文替换 1,5s/原有字符/新字符/g #替换1到5行字符 g #替换出现的所有关键字,如果不加“g”只替换每行出现的第一个关键字 4.vim总字符的查找及光标的移动 字符的查找 /关键字 n ##向下匹配关键字 N ##向上匹配关键子 光标的移动 :数字 ##光标快速移动到指定行 gg ##光标移动到文件的第一行 G ##光标移动到文件的最后以行 5.vim同时编辑多个文件 :sp filename ctrl + w 上 #光标进入上边文件窗口 ctrl + w 下 #光标进入下边文件窗口 # vim插入模式 "i" #在光标所在位置插入字符 "I" #光标所在行的行首插入字符 "o" #光标所在行的下一行新行插入字符 "O" #光标所在行的上以行新行插入 "s" #删除光标所在字符并插入字符 "S" #删除光标所在行并插入字符 "a" #光标所在字符的下一个字符插入 "A" #光标所在行的行尾插入字符 # 退出模式 :q #当vim进入文件没有对文件内容做任何操作可以按"q"退出 :q! #当vim进入文件对文件内容有操作但不想保存退出 :wq #正常保存退出 :wq! #强行保存退出,只针对与root用户或文件所有人生效
5.linux下安装各种软件,都是yum工具
yum install vim -y #安装vim软件,且自动输入yes
6.cat命令
cat -n filename # 显示行号 cat -E filename # 每一行结尾加上$符
7.特殊符号
> 重定向覆盖输出符 w模式 >> 重定向追加输出符 a模式 < 重定向覆盖写入符 << 重定向追加写入符
8.more less命令用于分屏显示文本内容
1. more more是一个过滤器,用于一次浏览一个屏幕的文本。 在more过滤器下有一些常用键,<Space>表示显示下一屏内容;<Enter>表示显示文本的下一行内容;<H>显示帮助;<B>上一页;<Q>退出more过滤器。 2. less 用法: less -参数 a.log -b 《缓冲区大小》 设置缓冲区的大小 -e 当文件显示结束后,自动离开 -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -g 只标志最后搜索的关键词 -i 忽略搜索时的大小写 -m 显示类似more命令的百分比 -N 显示每行的行号 -o 《文件名》 将less 输出的内容在指定文件中保存起来 -Q 不使用警告音 -s 显示连续空行为一行 -S 行过长时间将超出部分舍弃 -x 《数字》 将“tab”键显示为规定的数字空格 /字符串:向下搜索“字符串”的功能 ?字符串:向上搜索“字符串”的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b 向后翻一页 d 向后翻半页 h 显示帮助界面 Q 退出less 命令 u 向前滚动半页 y 向前滚动一行 空格键 滚动一行 回车键 滚动一页 [pagedown]: 向下翻动一页 [pageup]: 向上翻动一页 g 跳到文件头 【常用】 G 跳到文件尾部 【常用】
9.head --------------- 从头看
tail --------------- 从尾巴看
head -n 数字 filename # 看文件的前n行 tail -n filename # 看文件的后n行 # 输出文件的10-20行 head -20 english.txt | tail -10
10.linux的查找命令
find +从哪找 -type +文件类型 -name +你要找什么名字的文件 # 文件类型 l 快捷方式类型 d 文件夹类型 f 文本类型 # 全局搜索,所有以.txt结尾的文件 find / -type f -name "*.txt" #在/opt下搜索和python有关的文件夹 find /opt -type d -name "python*"
13.管道符的用法
管道符,可以把两条命令连起来,具体来说有两种应用,如下: 1. 例如: ps aux | grep "media" # 在 ps aux中的結果中查找media。 2. 例如: find . -name "*.cpp" | xargs grep "class" -n --color=auto # 把find的结果当成参数传入到grep中,即在那些文件内部查找class关键字。 一个复杂的例子: svn status | xargs -i expr substr {} 9 100 | xargs -i cp {} ~/Desktop/ find . -name "*.xml" | xargs grep -l "com.lib.ui.common.TempTitle" | xargs -i sed -i "s/com.lib.ui.common.TempTitle/com.common.widget.TempTitle/g" {}
14.查看进程的命令
ps aux 或者 ps -ef # 查看机器所有进程信息 ps aux | grep "vim" # 过滤出和vim有关的进程
ps命令有很多参数,具体如下:
命令 | 含义 |
---|---|
e | 显示所有进程,环境变量 |
f | 全格式 |
h | 不显示标题 |
l | 长格式 |
w | 宽输出 |
a | 显示终端上地所有进程,包括其他用户地进程 |
r | 只显示正在运行地进程 |
x | 显示没有控制终端地进程 |
u | 以用户为主的格式来显示程序状况 |
au | 显示较详细的资讯 |
aux | 显示所有包含其他使用者的行程 |
-C | 列出指定命令的状况 |
--lines | 每页显示的行数 |
--width | 每页显示的字符数 |
--help | 显示帮助信息 |
--version | 显示版本显示 |
15.过滤字符串的命令
grep "你想要的字符串" filename grep -i 'root' filename # 找出文件中所有大小写的root # 找出文件的有用信息行 grep -v "^#" filename | grep -v "^$"
16.远程传输scp
# 语法: scp 你想要的内容 传输到哪里 #把我本地机器1的/tmp/刚哥.txt发到远程机器的/opt目录下 scp /tmp/刚哥.txt root@机器的ip:/opt/ #把自己的东西发给别人 #把本地的first.py 发送给root@192.168.16.105这个机器,然后 1.如果data文件夹存在,则放入data文件夹中 2.如果没有data这个文件夹,则把first.py改名为data scp ./first.py root@192.168.16.105:/data #把别人的东西拿过来 scp root@192.168.16.105:/data/钢哥的小秘密.txt /opt #发送所有的文件和文件夹给别人 scp -r ./* root@192.168.16.105:/data/
17.统计文件夹大小命令
1. ls -h 2. du命令 以du命令为准 -h 显示mb gb单位 -s 显示统计 #统计/var/log文件夹大小 du -sh /var/log/
常用参数
-a all 里出所有的目录文件,包括以 . 开头的隐藏文件 例子:ls -a -A同-a,但不列出”.”(表示当前目录)和”..”(表示当前目录的父级目录) 例子:ls -A -c 配合 –lt:根据 ctime 排序显示(ctime 文件最后的更改时间) 配合-l :显示ctime 但根据名称排序 否则根据ctime排序 例子:ls –clt -C 每栏由上至下列出项目 例子:ls –Clt --color[=WHEN]控制是否使用色彩分辨文件 WHEN 可以是’never’,’always’,’auto’其中之一 例子:ls --color='never' -d 将目录像文件一样显示,而不是显示其下的文件 例子:ls –d -D –dired产生适合Emacs的dired模式使用的结果 例子:ls –D -f 对输出的文件不进行排序 例子:ls -f -g 类似 –l ,但不列出所有者 例子:ls -g -G 不列出任何有关组的信息 例子:ls –Gls -h 以容易理解的格式列出文件大小 例子:ls –lsh -si 类似-h ,但是文件大小取1000的次方而不是1024 例子:ls –lsi -H 使用命令列中的符号链接指示真正的目的地 例子:ls -H -i ,-incode印出每个文件的incode号 例子:ls -i -k 即以k字节的形式表示文件的大小 例子:ls -k -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。 例子:ls –l -L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息 例子:ls –L -m 所有项目以逗号分隔,并填满整行行宽 例子:ls -m -R 遍历列出所有子目录层 例子:ls –R -r –reverse依次反次序排列 例子:ls –r -S 以文件大小排序 例子:ls –S -t 以文件修改时间排序 例子:ls -t -u 配合 -lt:显示访问时间而且依访问时间排序 配合 -l:显示访问时间但根据名称排序 否则:根据访问时间排序 例子:ls -u -U 不进行排序;依文件系统原有的次序列出项目 例子:ls -U -v 根据版本进行排序 例子:ls -v -w, –width=COLS 自行指定屏幕宽度而不使用目前的数值 例子:ls -w -x 逐行列出项目而不是逐栏列出 例子:ls -x -X 根据扩展名排序 例子:ls -X -1 每行只列出一个文件 例子:ls –l –-help 显示此帮助信息并离开 例子:ls –help –-version 显示版本信息并离开 例子: ls –version
18.linux的任务管理器 top命令
inux top命令用于实时显示 process 的动态。 使用权限:所有使用者。 语法 top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 参数说明: d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 s : 安全模式,将交谈式指令取消, 避免潜在的危机 i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 n : 更新的次数,完成后将会退出 top b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
19.查看文件特殊权限的命令
lsattr # 设置文件特殊权限的命令 chattr #用chattr命令防止系统中某个关键文件被修改: chattr +i /etc/resolv.conf
20.更新系统时间
ntpdate ntp.aliyun.com # 和阿里提供的时间服务器,进行时间同步 # 查看系统时间 date命令
21.在线下载资源的命令
wget -r -p www.luffycity.com # -r -p 递归爬取网站资源
20.看内存
free命令用于显示内存状态。 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 语法 free [-bkmotV][-s <间隔秒数>] 参数说明: -b 以Byte为单位显示内存使用情况。 -k 以KB为单位显示内存使用情况。 -m 以MB为单位显示内存使用情况。 -h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有: B = bytes K = kilos M = megas G = gigas T = teras -o 不显示缓冲区调节列。 -s<间隔秒数> 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息
21.看磁盘信息
fdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。 语法 fdisk [必要参数][选择参数] 必要参数: -l 列出素所有分区表 -u 与"-l"搭配使用,显示分区数目 选择参数: -s<分区编号> 指定分区 -v 版本信息 菜单操作说明 m :显示菜单和帮助信息 a :活动分区标记/引导分区 d :删除分区 l :显示分区类型 n :新建分区 p :显示分区信息 q :退出不保存 t :设置分区号 v :进行分区检查 w :保存修改 x :扩展应用,高级功能
22.磁盘使用率
df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。 语法 df [选项]... [FILE]... 文件-a, --all 包含所有的具有 0 Blocks 的文件系统 文件--block-size={SIZE} 使用 {SIZE} 大小的 Blocks 文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...) 文件-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024 文件-i, --inodes 列出 inode 资讯,不列出已使用 block 文件-k, --kilobytes 就像是 --block-size=1024 文件-l, --local 限制列出的文件结构 文件-m, --megabytes 就像 --block-size=1048576 文件--no-sync 取得资讯前不 sync (预设值) 文件-P, --portability 使用 POSIX 输出格式 文件--sync 在取得资讯前 sync 文件-t, --type=TYPE 限制列出文件系统的 TYPE 文件-T, --print-type 显示文件系统的形式 文件-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE 文件-v (忽略) 文件--help 显示这个帮手并且离开 文件--version 输出版本资讯并且离开
23.软件包管理 yum命令
配置yum源的过程 centos的默认yum仓库路径是 /etc/yum.repos.d ,在这目录下,第一层文件夹中的repo文件会识别为仓库文件 1.获取阿里云的yum源 打开网址https://opsx.alibaba.com/mirror 2.找到第一个仓库 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 3.下载第二个仓库 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 4.生成yum缓存,加速以后下载 yum makecache