【Linux】Linux终端命令行高手修炼指南

请添加图片描述

Linux

学习版本:centos7

远程登陆

Linux 一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的 Linux 服务器。这时我们就需要远程登录到Linux服务器来管理维护系统。
Linux 系统中是通过 ssh 服务实现的远程登录功能,默认 ssh 服务端口号为 22
Window 系统上 Linux 远程登录客户端有 SecureCRT, Putty, SSH Secure Shell 等,本文以 Putty 为例来登录远程服务器。

  1. putty
  2. 终端利用ssh登录远程服务器
    安装ssh:
    yum install ssh
    启动ssh:
    service sshd start
    登录远程服务器:
    ssh -p 50022 my@127.0.0.1
    输入密码:
    my@127.0.0.1:
    -p 后面是端口
    my 是服务器用户名
    127.0.0.1 是服务器 ip
    回车输入密码即可登录
    

系统目录结构

文件系统的最顶层是由根目录开始的,cd / 就是将你的位置移动到你的计算机文件系统的起始点。

两个特殊表示:

  • . :代表当前的目录,也可以使用 ./ 来表示;
  • .. :代表上一层目录,也可以 ../ 来代表。

最常见的顶级目录及其描述:

  • / - 根目录:在Linux中,一切都从根目录开始。它是文件系统的最顶层。所有其他目录都挂载在根目录下。
  • /bin - 二进制程序:存放系统的基本命令和程序,如ls、cp等,这些命令对于所有用户都是必需的。
  • /boot - 启动目录:包含了启动Linux系统时所需的文件,包括Linux内核、初始内存盘映像以及引导加载程序(如GRUB)的配置文件。
  • /dev - 设备文件:用于存放设备文件,这些特殊文件代表系统中的硬件组件,如磁盘驱动器、输入设备等。
  • /etc - 配置文件:包含了系统范围内的所有配置文件。
  • /home - 用户主目录:在多用户系统中,每个用户都有一个专属的目录,通常以用户的名字命名。
  • /lib - 系统库文件:存放系统最基本的库文件,这些文件支持位于/bin/sbin目录下的二进制文件。
  • /media - 可移动媒体:这是外部可移动存储设备的挂载点,如USB驱动器、CD-ROM等。
  • /mnt - 挂载点:传统上被用来临时挂载文件系统。
  • /opt - 可选的应用软件包:通常用于存放第三方和可选的软件应用程序。
  • /proc - 进程信息:这是一个虚拟文件系统,包含了当前运行进程的信息以及内核和硬件的信息。
  • /root - 根用户的家目录:这是系统管理员,也就是root用户的个人目录。
  • /sbin - 系统二进制文件:存放一些重要的系统管理程序,通常只有root用户才能执行。
  • /srv - 服务数据:包含特定系统服务相关的数据。
  • /sys - 系统虚拟文件系统:提供了内核和设备的信息和控制接口。
  • /tmp - 临时文件:用于存储系统和用户生成的临时文件。
  • /usr - 用户程序:包含用户应用程序和文件的次级层次结构,其中包括库、文档、静态数据等。
  • /var - 变量文件:用于存放经常变化的文件,如日志、数据库、邮件等。

文件基本属性

文件基本属性
每个文件的属性
chgrpchownchmod 是 Linux 系统中用于更改文件属性的三个重要命令,它们分别用于改变文件的组所有权、用户所有权以及权限。

chown

更改文件所有者(owner),也可以同时更改文件所属组

chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名
ubuntu@VM-24-2-ubuntu:~$ su -
root@VM-24-2-ubuntu:~# cd /root
root@VM-24-2-ubuntu:~# touch install.log
root@VM-24-2-ubuntu:~# chown bin install.log
root@VM-24-2-ubuntu:~# chown root:root install.log

chmod

Linux文件属性有两种设置方法,一种是数字,一种是符号
Linux 文件的基本权限有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
符号
文件的权限字符为: -rwxrwxrwx
数字
各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(user/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:
user : rwx 即 4+2+1 = 7
group : rwx 即 4+2+1 = 7
others : — 即 0+0+0 = 0

chmod [-R] xyz 文件或目录
# xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
# -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更
root@VM-24-2-ubuntu:~# ll .bashrc
root@VM-24-2-ubuntu:~# chmod 777 .bashrc

root@VM-24-2-ubuntu:~# chmod a=rwx .bashrc
root@VM-24-2-ubuntu:~# chmod u=rwx,g=rx,o=r .bashrc

root@VM-24-2-ubuntu:~# touch test1
root@VM-24-2-ubuntu:~# chmod u-x,o+r test1

chgrp

用于修改文件或目录的所属组(group)

chgrp [-R] group file/directory
---
root@VM-24-2-ubuntu:~# touch file.txt
root@VM-24-2-ubuntu:~# chgrp group1 file.txt
root@VM-24-2-ubuntu:~# chgrp group2 directory/
root@VM-24-2-ubuntu:~# chgrp -R group3 directory/

文件与目录管理

ls(英文全拼:list files): 列出目录及文件名

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
[root@www ~]# ls -al ~

cd(英文全拼:change directory):切换目录

  • cd [相对路径或绝对路径]
#使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob

#使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/

#使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/

# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~

# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..

pwd(英文全拼:print work directory):显示目前的目录

  • -P :显示出确实的路径,而非使用链接 (link) 路径
[root@www ~]# pwd [-P]

mkdir(英文全拼:make directory):创建一个新的目录

  • -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
  • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
# mkdir [-mp] 目录名称
[root@www tmp]# mkdir -p test1/test2/test3/test4
[root@www tmp]# mkdir -m 711 test2
# 要注意的是,这个 rmdir 仅能删除空的目录,你可以使用 rm 命令来删除非空目录。

rmdir(英文全拼:remove directory):删除一个空的目录

  • -p :从该目录起,一次删除多级空目录
rmdir [-p] 目录名称
[root@www tmp]# rmdir test
[root@www tmp]# rmdir -p test1

cp(英文全拼:copy file): 复制或复制并重命名 文件或目录

  • -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
  • -d:若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
  • -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
  • -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
  • -l:进行硬式链接(hard link)的链接档创建,而非复制文件本身;
  • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
  • -r:递归持续复制,用於目录的复制行为;(常用)
  • -s:复制成为符号链接档 (symbolic link),亦即『捷径』文件;
  • -u:若 destination 比 source 旧才升级 destination !
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
---
[root@www ~]# cp ~/.bashrc /tmp/bashrc
[root@www ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc'? n  <==n不覆盖,y为覆盖

rm(英文全拼:remove): 删除文件或目录

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
rm [-fir] 文件或目录
---
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y

mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
---
[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest
[root@www tmp]# mv mvtest mvtest2
  • map [命令]查看命令帮助

查看文件内容

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾几行

用户和用户组管理

实现用户账号的管理,要完成的工作主要有如下几个方面:

用户账号的添加、删除与修改

# 添加新的用户账号使用useradd命令
useradd 选项 用户名
useradd –d  /home/sam -m sam
useradd -s /bin/sh -g group –G adm,root gem

# 删除一个已有的用户账号使用userdel命令
userdel 选项 用户名
userdel -r sam

# 修改已有用户的信息使用usermod命令
usermod -s /bin/ksh -d /home/z –g developer sam

用户口令的管理

指定和修改用户口令的Shell命令是passwd

# passwd 选项 用户名
$ passwd 
Old password:****** 
New password:******* 
Re-enter new password:*******

# 如果是超级用户
# passwd sam 
New password:******* 
Re-enter new password:*******

用户组的管理

  • groupadd 选项 用户组
    • -g GID 指定新用户组的组标识号。
    • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
    # 增加一个新的用户组使用groupadd命令
    groupadd group1
    groupadd -g 101 group2
    
  • groupdel 用户组
    • -g GID 为用户组指定新的组标识号。
    • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
    • -n新用户组 将用户组的名字改为新名字
    # 如果要删除一个已有的用户组,使用groupdel命令
    groupdel group1
    
  • groupmod 选项 用户组
    • -g GID 为用户组指定新的组标识号。
    • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
    • -n 新用户组 将用户组的名字改为新名字
    # 修改用户组的属性使用groupmod命令
    groupmod -g 102 group2
    groupmod –g 10000 -n group3 group2
    
  • 用户组之间切换命令
    newgrp root
    

vi/vim

使用比较多的是 vim 编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

  • 什么是 vim?
    Vim 是从 vi 发展出来的一个文本编辑器。
    vim 则可以说是程序开发者的一项很好用的工具。
    代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

  • vi/vim 的使用
    基本上 vi/vim 共分为三种模式,

命令模式(Command Mode)

命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。

i -- 切换到输入模式,在光标当前位置开始输入文本。  
x -- 删除当前光标所在处的字符。  
: -- 切换到底线命令模式,以在最底一行输入命令。  
a -- 进入插入模式,在光标下一个位置开始输入文本。  
o:在当前行的下方插入一个新行,并进入插入模式。  
O -- 在当前行的上方插入一个新行,并进入插入模式。    
dd -- 剪切当前行。  
yy -- 复制当前行。  
p(小写) -- 粘贴剪贴板内容到光标下方。  
P(大写)-- 粘贴剪贴板内容到光标上方。    
u -- 撤销上一次操作。    
Ctrl + r -- 重做上一次撤销的操作。  
:w -- 保存文件。  
:q -- 退出 Vim 编辑器。  
:q! -- 强制退出Vim 编辑器,不保存修改。  

输入模式

在命令模式下按下 i 就进入了输入模式,使用 Esc 键可以返回到普通模式。
在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符  
ENTER,回车键,换行  
BACK SPACE,退格键,删除光标前一个字符  
DEL,删除键,删除光标后一个字符  
方向键,在文本中移动光标  
HOME/END,移动光标到行首/行尾  
Page Up/Page Down,上/下翻页  
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线  
ESC,退出输入模式,切换到命令模式  

底线命令模式

在命令模式下按下 :(英文冒号)就进入了底线命令模式。
在底线命令模式中,基本的命令有(已经省略了冒号):

:w:保存文件。  
:q:退出 Vim 编辑器。  
:wq:保存文件并退出 Vim 编辑器。  
:q!:强制退出Vim编辑器,不保存修改。  

Vim/Vi工作模式图

yum命令

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器
yum [options] [command] [package …]

  • 常用命令
    1. 列出所有可更新的软件清单命令:yum check-update
    2. 更新所有软件命令:yum update
    3. 仅安装指定的软件命令:yum install <package_name>
    4. 仅更新指定的软件命令:yum update <package_name>
    5. 列出所有可安裝的软件清单命令:yum list
    6. 删除软件包命令:yum remove <package_name>
    7. 查找软件包命令:yum search <keyword>
    8. 清除缓存命令:
        yum clean packages: 清除缓存目录下的软件包
        yum clean headers: 清除缓存目录下的 headers
        yum clean oldheaders: 清除缓存目录下旧的 headers
        yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
    

apt

apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器
apt [options] [command] [package …]

  • apt 常用命令
    1. 列出所有可更新的软件清单命令:sudo apt update
    2.升级软件包:sudo apt upgrade
    3.列出可更新的软件包及版本信息:apt list --upgradeable
    4.升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
    5.安装指定的软件命令:sudo apt install <package_name>
    6.安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
    7.更新指定的软件命令:sudo apt update <package_name>
    8.显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
    9.删除软件包命令:sudo apt remove <package_name>
    10.清理不再使用的依赖和库文件: sudo apt autoremove
    11.移除软件包及配置文件: sudo apt purge <package_name>
    12.查找软件包命令: sudo apt search <keyword>
    13.列出所有已安装的包:apt list --installed
    14.列出所有已安装的包的版本信息:apt list --all-versions
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值