• Ubuntu 常用命令



    Linux 目录结构

    Linux的目录结构是一个树型结构,只有一个根目录/, 所有文件都在它下面。

    系统的文件不要动!避免坏掉。

    Windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘,而Linux 没有盘符 这个概念,。

    目录作用
    /bin二进制命令所在的目录
    /boot系统引导程序所需要的文件目录
    /dev设备软件目录,磁盘,光驱,
    /etc系统配置,启动程序
    /home普通用户的家,目录默认数据存放目录
    /lib共享库文件和内核模块存放目录
    /mnt临时挂载储存设备的挂载点
    /opt额外的应用软件包(可删)
    /proc操作系统运行时,进程信息和内核信息存放在这里
    /rootLinux超级权限用户root的家目录
    /sbin和管理系统相关的命令,【超级管理员用】
    /tmp临时文件目录,这个目录被当作回收站使用
    /usr用户或系统软件应用程序目录

    注:配置的时候可以给大一点磁盘空间,如果磁盘不够,需要临时挂载到其他地方。可以加磁盘空间用于创建集群。

    常用命令

    命令格式:command [-options] [parameter]
    说明:

    • command:命令名,相应功能的英文单词或单词的缩写
    • [-options]:选项,可用来对命令进行控制,也可以省略
    • parameter:传给命令的参数(限制),可以是 零个、一个、多个。

    注:

    • 敲几个字符之后,按 tab 键可以自动补全(唯一目录)。如果有多个目录字符一致,则会提示,需要多敲几个字符,直到唯一才可以 tab 补全。
    • 相对路径不以/开头,以/开头的都是被解读为绝对路径。
    • 不在根目录下操作,新建一个个人目录操作,避免删除重要内容。任何路径下都可以使用绝对路径查看其他路径下的内容。

    ls:查看目录内容

    ls:list,查看目录下的内容。ls [选项] [路径],可以多个选项多个路径混用,选项和路径没有先后顺序。

    ls          #查看当前目录内容 (缺点: 隐藏文件看不到,以 .开头的文件) 
    ls /home    #查看绝对路径 /home 目录下内容,可以同时查看多个目录,如 ls /home /lib
    
    ls -l		#list,以列表方式显示文件的详细信息,大小都是字节
    ll          #等价于ls -l
    
    ls -a       #all,查看当前目录所有内容,包括隐藏文件 
    ls –al      #以列表方式查看目录内容的详细信息(查看文件类型、权限、大小等) 
    
    ls -h		#必须配合 -l 以人性化的方式显示文件大小
    ls -lh      #查看目录内容的详细信息,较大的文件以 K、M、G 方式显示文件大小,或 ls -l -h
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 使用 Linux 风格,一般文件夹是蓝色、文件是白色,二者颜色不同。隐藏文件前面带.
    • 第一个字母的含义:d表示 directory 目录,-表示文件image.png

    pwd:查看当前目录绝对路径

    cd:切换目录

    cd:change directory,切换命令。

    cd            #回到用户主目录,root 用户就是 /root,aa 用户则是 /home/aaa
    cd test       #切换到当前目录下的test目录(相对路径) 
    cd /root/test #切换到指定目录(绝对路径)
    cd ..         #回到上一级目录 
    cd ../..      #回到上上一级目录
    cd ../dir     #回到上一级的dir目录 
    cd -		  #在最近的两个目录切换
    cd /		  #切换到根目录
    cd ~		  #切换到用户主目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    mkdir:创建目录

    mkdir:make directory,创建目录。

    mkdir test1					#在当前目录下创建文件夹test3,相对路径
    mkdir /dir1/test1			#在指定目录 /dir1 下创建文件夹 test1,绝对路径
    
    mkdir dir 					#创建单级目录 
    mkdir -p dir1/dir2/dir3 	#创建多级目录,相对路径,先检查再创建,没有目录就创建;
    							#在当前目录下,检查是否有 dir1,没有则创建;然后再 dir1 中检查是否有 dir2,没有则创建;然后在 dir2 中检查是否有 dir3,没有则创建。
               
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    rm:删除文件/目录

    rm:remove,删除文件/目录

    rm file1		#删除文件
    rm -r dir1		#recursive,递归删除目录下内容,会一个个目录/文件询问是否删除
    rm -f	file1	#force,强制删除文件, 无需提示,忽略不存在的文件
    rm -rf dir1		#强制删除目录, 无需提示,忽略不存在的目录,可以写成 rm -fr dir1/rm -f -r dir1/rm -r -f dir1
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    touch:创建空文件

    touch a.docx b.xlsx创建的两个文件不是 Windows 常见的 Word 和 Excel 文件,而是 Linux 的静默文件。
    如果通过 Windows 上传 .docx 和 .xlsx,则是真正的 Word 和 Excel 文件。

    touch a b c  		#创建 a、b、c 三个文件,没有后缀
    touch test1/a.txt	#在当前路径下的 test1 目录下新建 a.txt
    
    • 1
    • 2

    mv:移动和重命名文件/目录

    mv:move,移动文件/目录和重命名。类比剪切+粘贴。
    mv 原文件/原路径 目标文件/路径

    mv a.txt dir1  	#dir1 已存在,移动,将 a.txt 移动到 dir 目录
                  	#dir1 不存在,重命名,将 a.txt 重命名为 dir 
    mv dir2 dir1   	#dir1 已存在,移动,将dir2目录移动到dir1目录
                  	#dir1 不存在,重命名,将dir2目录重命名为dir1
    mv a.txt b.txt 	#b.txt 已存在,会提示是否覆盖
    				#b.txt 不存在,重命名,将a.txt重命名为b.txt
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    cp:复制粘贴

    cp:copy,复制粘贴

    cp a.txt b.txt 	#b.txt 不存在,新建 b.txt,将 a.txt 拷贝过去
    				#b.txt 已存在,会提示是否覆盖
    								
    cp dir2 dir1 -r	#dir1 不存在,新建 dir1,将 dir2 目录及内容拷贝过去,dir1 和 dir2 同级
    				#dir1 已存在,将 dir2 目录及内容拷贝到 dir1 目录下,变成 dir1/dir2(上下级)
    
    cp a.txt dir1	#将 a.txt 拷贝一份到 dir1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    cat:查看文件内容

    cat a.txt		
    
    • 1

    more:查看文件

    • enter:多查看一行数据
    • 空格:向下翻一页,查看新的一屏幕数据
    • ↑:向上翻一页
    • PgUp:向上滚动一行
    • PgDn:向下滚动一行
    • q:退出 more
    more a.txt		#打开分页视图显示文件内容
    
    • 1

    ps:进程状态

    ps:process status,进程状态

    • -e:execute(执行)
    • -f:format(格式化)
    ps  -ef 			#查看当前正在运行的进程
    
    • 1
    • UID:user_id,启动进程的用户
    • PID:process_id,进程 ID
    • PPID:parent process_id,进程 ID 的父级 ID

    kill:杀死

    kill  37922 		#终止进程37922,有时候不一定会终止进程(有保护进程机制)
    kill  -9  37949 	#杀死进程37949,一定会杀死进程
    kill  -l 			#查看kill命令的所有信号,可以查看各个代码的含义
    
    • 1
    • 2
    • 3

    ifconfig:查看虚拟机网络配置信息

    类似 Windows 的ipconfig

    ifconfig		#查看网络
    
    • 1

    image.png

    clear: 清屏命令

    快捷键:ctrl + l

    clear			#清屏
    
    • 1

    shutdown:关机

    reboot				#重启
    shutdown -h now		#立马关机
    halt				#不断电关机
    
    • 1
    • 2
    • 3

    which:查看命令位置

    which	apt			#显示执行命令的绝对位置
    
    • 1

    hostname:查看主机名称

    hostname
    
    • 1

    tar:压缩、打包、解包、解压命令

    .tar有格式的文件,固定的格式会占用一定的内存,适合大文件,小文件打包可能还会比原来大。

    • c : 打包
    • v : 看过程 view
    • f : 打包成哪个文件 file
    • z : 打包成压缩格式的文件,gzip格式
    • x : 解包、解压缩
    • -C :解到指定的位置
    # 要求:-f 放命令最后,跟文件名,指定文件名称
    tar -cvf test1.tar test1    	#打包,将 test1 目录打包为 test1.tar 文件
    tar -czvf test1.tar.gz  test1	#打包+压缩,将 test1 目录打包并压缩为 test1.tar.gz 文件
    
    tar -xvf test1.tar				#解包,将 test1.tar 文件解包到当前目录
    tar -xvf test1.tar	-C dir		#解包,将 test1.tar 文件解包到 dir 目录
    tar -xzvf	test1.tar.gz -C dir #解压缩包,将 test1.tar.gz 文件解压到 dir 目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    grep:查询文件内容,全文检索

    Grep(Globally search a Regular Expression and Print)命令可以对文件进行文本查询,内容查询。
    返回整行的内容。

    • -i:不区分大小写
    • -r:递归
    grep [key] [filename]			#在文件 [filename] 中查找包含 [key] 的内容
    grep [key] [filename]	--color	#高亮显示内容,后面版本自带高亮
    grep -ir [key] [dir]			#在目录 [dir] 中递归查找包含 [key] 的内容
    
    • 1
    • 2
    • 3

    | :管道符

    前一个命令的输出当做下一个命令的输入。
    ps -ef返回的内容作为下一个命令查找的对象。

    ps -ef | grep [key]				#查找包含 [key] 的进程
    ll | grep [key]					#查找包含 [key] 的文件
    
    • 1
    • 2

    image.png

    which:查看执行命令的位置

    which pwd		#查看当前命令的位置
    
    • 1

    vi:vi 编辑器

    vivisual interface的简称, 是Linux中最经典的文本编辑器。vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域,就能完成所有编辑操作。
    vi 的特点:

    • 只能是编辑文本内容,不能对字体段落进行排版
    • 不支持鼠标操作
    • 没有菜单,只有命令

    vi [filename]			#打开文件,进入命令模式
    i/o/O/a/s				#命令模式 -> 编辑模式,鼠标没用了
    Esc						#编辑模式 -> 命令模式
    Delete					#末行模式 -> 命令模式
    shift+: 				#命令模式 -> 末行模式,只有命令可以进入该模式。可以退出
      w		  				#保存
      q		  				#退出,没有修改或者已经保存才可退出
      q!	  				#强制退出
      wq	  				#保存退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    注:编辑模式和末行模式无法切换。

    命令模式相关命令:

    命令功能
    o在当前行后面插入一空行
    O在当前行前面插入一空行
    dd删除光标所在行
    ndd从光标位置向下连续删除 n 行
    yy复制光标所在行
    nyy从光标位置向下连续复制n行
    p粘贴
    u撤销上一次命令
    gg回到文件顶部
    G回到文件末尾
    /str查找str,按 n(next) 查找下一个

    底行模式

    命令功能
    :w 文件另存为
    :w保存(ctrl + s)
    :q退出, 如果没有保存,不允许退出
    :q!强行退出, 不保存退出
    :wq保存并退出
    :x(同上)保存并退出
    Shift + z + z保存退出
    :set nu (number)设置行号
    :%s/旧文本/新文本文本替换
    :nohl取消高亮

    PS:开发不是求快,求稳?!

    vim

    vim 是 vi 的增强版,加代码补全、字体颜色。

    vim [filename]+10		#打开文件并定位到第10行
    
    • 1

    useradd:添加用户

    useradd [user_name]			#新增普通用户
    passwd	[user_name]			#给用户设置密码
    userdel -r [user_name]		#删除普通用户,加 -r 删除彻底,漏加 删除文件夹 rm -rf
    su [user_name]				#切换用户 su = switch user #切换用户
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    当普通用户仅有只读权限时,vi [filename]无法写入内容,可以使用sudo vi [filename]并输入普通账户密码获得临时的写入权限。

    chmod:权限管理

    chmod:change mode

    ll命令返回说明:

    • 角色:
      • 创建者 :一个文件或者文件夹的创建者(拥有者) userid -> uid -> u
      • 用户组 :针对一个文件或者文件夹而言,默认与创建者同名 groupid-> gid -> g
      • 其他用户:创建者之外的用户,就是其他用户 other -> o
    • 权限:
      • 第2-4位:创建者对文件或者文件夹的权限
      • 第5-7位: 用户组的权限
      • 第8-10位: 其他用户的权限
      • 权限的解读:
    中文英文代号数字代号说明
    r4
    w2
    执行x1运行文件,cd 目录
    • 权限操作:chmod 【字母不能和数组结合操作】
    chmod o+w  a.txt    	#对其他用户添加一个写权限
    chmod g-r  a.txt 		#给用户组删除读权限
    chmod o=wx  a.txt 		#给a.txt的其他用户赋予写和执行权限
    chmod 777  a.txt 	  	#给所有角色赋予所有权限
    chmod 777 -R dir 	  	#给所有角色赋予目录下所有文件/目录的所有权限,递归赋予
    
    • 1
    • 2
    • 3
    • 4
    • 5

    小结

    本文仅介绍了增、删、改、查等常用的命令,Ubuntu 的命令还有很多,可以参考:UbuntuManual 了解更多。

  • 相关阅读:
    南大通用数据库-Gbase-8a-学习-19-Gbase8a从Kafka订阅Topic消费数据
    段指导-示例
    Docker介绍
    基于SSM的二手车交易系统
    【leetcode周赛记录——405】
    打开windows批处理大门
    使用gitpull项目的时候第一次输错密码之后报错Authentication failed for “http://xxxxxx“
    node.js学习之数据库及基本操作、SQL语句
    高等教育的AI革新:OpenAI面向大学推出ChatGPT Edu
    Java IO简介说明
  • 原文地址:https://blog.csdn.net/qq_45476428/article/details/133980028