Linux命令学习

Posted kueizheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令学习相关的知识,希望对你有一定的参考价值。

 

Linux主要目录:

/:根目录,一般根目录下只存放目录

/home:系统默认的用户家目录

/etc:系统配置文件存放的目录

/bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等

  /bin:二进制执行文件目录,主要用于具体应用

  /sbin:系统管理员专用的二进制代码存放目录,主要用于系统管理

  /usr/bin:后期安装的一些软件

  /usr/sbin:超级用户的一些管理程序

/lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录。程序在执行过程中,调用一些额外的参数时,就需要函数库的协助

/boot:存放 Linux 系统启动时用到的一些文件。如 Linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub

/dev:存放 Linux 系统下的设备文件。访问该目录下某个文件,相当于访问某个设备

~/.ssh:存放有关 SSH 配置信息 

 

常用的Linux命令的基本使用:

查看目录内容

  ls:查看当前文件夹下的内容 

    -a :显示指定目录下所有子目录与文件,包括隐藏文件

    -l :以列表方式显示文件的详细信息。(r 读,w 写,x 执行)

      

    -h :配合 -l 以人性化的方式显示文件大小。eg:ls -l -h,可以缩写为:ls -lh

切换目录

  cd:切换文件夹

    cd、cd ~ :切换到当前用户的家目录

    cd . :保持在当前目录不变

    cd .. :切换到上级目录

    cd - :可以在最近两次工作目录之间来回切换

创建和删除操作

  touch:如果文件不存在,则新建文件;如果文件存在,则修改文件的日期

  rm:删除指定的文件名

    -f :强制删除,忽略不存在的文件,无需提示

    -r :递归删除目录下的内容,删除文件夹时必须加此参数

  mkdir :创建目录

    -p :可以递归创建目录。eg:mkdir -p a/b/c/d

拷贝和移动操作
  tree:以树状图列出文件目录结构

    -d :只显示目录

  cp:复制文件或目录。eg:cp 源文件 目标文件

    -i :覆盖文件前提示

    -r :递归复制该目录下所有的子目录和文件

  mv:移动文件或目录/文件 或者 目录重命名。eg:mv 源文件 目标文件

    -i :覆盖文件前提示

查看文件内容

  cat:查看文件内容、创建文件、文件合并、追加文件内容等功能

    -b :对非空输出行编号。cat -b 等于 nl 命令

    -n :对输出的所有行编号

  more:分屏显示文件内容。适合查看内容较多的文本文件

  grep:搜索文本文件内容

    -n :显示匹配行及行号

    -v :显示不包含匹配文本的所有行(相当于求反)

    -l :忽略大小写

    ^a :搜寻以 a 开头的行

    z$ :搜寻以 z 结尾的行

其他

  clear:清屏

  echo:在终端显示参数指定的文字,通常和重定向联合使用

  重定向:

    > :输出,会覆盖文件原有内容。eg:echo Hello Python > a

    >> :追加,会将内容追加到已有文件的末尾

  管道:

    | :将一个命令的输出,可以通过管道作为另一个命令的输入。常与 more 和 grep 命令配合使用。eg:ls -lha ~ | grep Do

 

远程管理常用命令:

关机/重启  

  eg:shutdown 选项 时间

  shutdown:不指定选项和参数,默认表示一分钟后关机

  shutdown 20:25:系统在今天的 20:25 会关机

  shutdown +10:十分钟后关机

  shutdown -c:取消关机

  shutdown -r:重启

  shutdown -r now:现在重启

  sudo:超级用户权限。eg:sudo shutdown -r now

查看或配置网卡信息

  ifconfig:查看/配置网卡信息

  ping ip地址:检测目标ip地址连接是否正常(数值越大,速度越慢)

  ping 127.0.0.1:检查本地网卡工作是否正常

远程登录

  eg:ssh [-p port] user@remote

  user 是在远程机器上的用户名,不指定默认为当前用户

  remote 是远程机器的地址,可以是 IP / 域名 / 别名

  port 是 SSH Server 监听的端口,不指定默认为 22

 

  SSH客户端/服务器:Linux 系统默认安装,Windows 系统需单独安装(所以在Windows系统中,不能使用该终端命令,可以安装 XShell 进行远程)。

  SSH协议:对传输的数据进行加密和压缩,防止信息泄露和提高传输速度,也能够防止 DNS 欺骗和 IP 欺骗。专为远程登录会话和其他网络服务提供安全性的协议。

远程拷贝文件

  eg:scp [-P port] user@remote:Deskop/0.1py 01.py( -P 为大写)

  加上 -r 选项可以拷贝文件夹

    scp -r user@remote:Desktop demo :把远程家目录下的 Desktop 复制到当前目录下的 demo 文件夹

    scp -r demo user@remote:Desktop :把当前目录下的 demo 文件夹复制到远程家目录下的 Desktop

  如果在Windows系统中,不能使用该终端命令。可以安装 PuTTY,使用 pscp 命令行工具或者安装 FileZilla 使用FTP 进行文件传输。FTP服务默认端口为 21 。

免密码登录

  

  1.配置公钥:执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可

  2.上传公钥到服务器:执行 ssh-copy-id -p port user@remote,可以让远程服务器记住我们的公钥

配置别名

  在客户端 ~/.ssh/config 里面追加以下内容:

    Host mac

    HostName 服务器的ip地址

    User 服务器的用户名

    Port ssh端口

  保存后,即可用 ssh mac 实现远程登录了,scp 同样可以使用

 

用户和权限:

sudo:

  以其他身份来执行命令,预设的身份为 root。使用时必须先输入密码,且有效期为5分钟。

  若未经授权的用户企图使用 sudo,则会发出警告邮件给管理员。

  root 账号用于系统的维护和管理,对操作系统的所有资源具有所有访问权限,不建议直接使用 root 账号登录系统。

chmod:

  可以修改用户/组对文件/目录的权限。eg:chmod +/-rwx 文件名|目录名

组管理:

  groupadd 组名:添加组

  groupdel 组名:删除组

  cat /etc/group:确认组信息。组信息保存在 /etc/group 文件中

  chgrp -R 组名 文件/目录名:递归修改文件/目录的所属组。

  创建组/删除组的终端命令都需要通过 sudo 执行,除非 root 登录。eg:sudo groupdel dev

用户管理:

  useradd -m -g 组 新建用户名:添加新用户

    -m :自动建立起用户家目录

    -g :指定用户所在的组,否则会建立一个同名的组

  passwd 用户名:设置用户密码

    如果是普通用户,直接passwd可以修改自己的账户密码

  userdel -r 用户名:删除用户

    -r :自动删除用户家目录

  cat /etc/passwd | grep 用户名:确认用户信息。用户信息保存在 /etc/passwd 文件中

    

  id 用户名:查看用户 UID(用户代号) 和 GID(组代号) 信息。不要用户名参数就是查看当前登录的用户信息

  who:查看当前所有登录的用户列表

  whoami:查看当前登录用户的账户名

  usermod:设置用户的主组/附加组和登录Shell

    -g :修改用户的主组。通常在新建用户时指定,在 ect/passwd 的第 4 列。eg:usermod -g 组 用户名

    -G :修改用户的附加组。在 etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限

    -s :修改用户登录 Shell。eg:usermod -s /bin/bash 用户名

    修改后,需要重新登录后生效

  which:查看执行命令所在位置。eg:which passwd

  su -用户名:切换用户,并且切换目录。-可以切换到用户家目录,否则保持位置不变。不要用户名参数则是切换到 root 

  exit:退出当前登录用户

修改文件权限:

  chown:修改拥有者。eg:sudo chown 用户名 文件名|目录名

  chgrp:修改组。eg:sudo chgrp 用户名 文件名|目录名

  chmod:修改权限。可以使用三个数字分别对应拥有着/组和其他用户的权限。数字对应如下

    

    eg:sudo chmod -R 755 文件名|目录名

 

系统信息相关命令: 

  date :查看系统时间

  cal :查看日历,-y 查看一年的日历

  df -h :显示自盘剩余空间。-h 以人性化的方式显示文件大小

  du -h [目录名] :显示目录下的文件大小

  ps aux :查看进程的详细状况

    默认 ps 只会显示当前用户通过终端启动的应用程序

    a :显示终端上的所有进程,包括其他用户的进程

    u :显示进程的详细状态

    x :显示没有控制终端的进程

  top :动态显示运行中的进程并且排序,q 退出

  kill [-9] 进程代号:终止指定代号的进程,-9 表示强制终止。最好不要终止 root 身份开启的进程,可能导致系统崩溃

 

其他命令:

find:查找文件

  find [路径] -name "*.py" :查找指定路径下扩展名是.py的文件,包括子目录

  如果省略路径,表示在当前文件夹下查找

ln:建立文件的软链接(也就是快捷方式)

  eg:ln -s 被链接的源文件 链接文件

  没有 -s 选项建立的是一个硬链接文件。源文件被删除后,硬链接文件不会受影响

  源文件要使用绝对路径,不能使用相对路径

  

打包文件和解包文件:

  tar -cvf 打包文件.tar 被打包的文件/路径... :打包文件  eg:

    c :生成档案文件,创建打包文件

    v :列出归档接档的详细过程,显示进度

    f :指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后

  tar -xvf 打包文件.tar :解包文件

    x :解开档案文件

  tar 只负责打包文件,但不压缩。用 gzip 可以压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz

  在 tar 命令中有一个选项 -z 可以调用 gzip,从而可以方便的实现压缩和解压缩的功能

    压缩文件:tar -zcvf 打包文件.tar.gz 被压缩的文件/路径…

    解压文件:tar -zxvf 打包文件.tar.gz

  在 tar 命令中有一个选项 -j 可以调用 bzip2,从而可以方便的实现压缩和解压缩的功能

    压缩文件:tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径…

    解压文件:tar -jxvf 打包文件.tar.bz2

  解压到指定路径:tar -zxvf 打包文件.tar.gz -C 目标路径

 

    -C : 解压缩到指定目录,要解压的目录必须存在

 

软件安装:

  sudo apt install 软件包 :安装软件

  sudo apt remove 软件名 :卸载软件

  sudo apt upgrade :更新已安装的包

  根据情况设置镜像源

 

常见的服务默认端口号列表:

  SSH 服务器:22

  Web服务器:80

  HTTPS:443

  FTP 服务器:21

 

终端命令的格式:

command [-options] [parameter]

说明:

  command:命令名

  [-options]:选项,可用来对命令进行控制,可以省略

  parameter:传给命令的参数,可以是零个、一个或者多个

  如:rm -r 123.txt

  []代表可选

 

查阅命令帮助信息(两种):

command --help,如:mkdir --help  

  

man command,如:man mkdir  

  

 b、f:上下反页、Enter键:滚动一行,q:退出

 

通配符:

* :代表多个字符

? :代表一个字符

[abc] :匹配 a、b、c 中的任意一个

[a-f] :匹配从 a 到 f 范围内的任意一个

 

其他:

/ 为根目录,~ 为家目录,. 为当前目录

  eg:tree ~ :以树状图列出用户的家目录。cd / :切换到根目录

同一目录下,不允许有同名的文件或目录

 

小技巧:

ctrl + shift + = :放大终端窗口的字体显示

ctrl + - :缩小终端窗口的字体显示

tab :自动补全文件/目录/命令

ctrl + c :重新输入命令

 

 

 

 

学习途径:https://www.bilibili.com/video/BV1ex411x7Em?p=1

 

 

以上是关于Linux命令学习的主要内容,如果未能解决你的问题,请参考以下文章

Linux 常用命令学习

linux命令学习:cd命令

linux学习一天一个命令(22)[which命令]

linux学习一天一个命令(20)[w命令]

学习Linux必看的命令

linux五大搜索命令学习