linux常用命令学习

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做剪切时,会进入插入模式,如果要粘贴需要退出插入模式按再按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 发送给[email protected]这个机器,然后
	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 

你可能感兴趣的:(linux常用命令学习)