黑白客 发表于 2021-3-17 15:19

linux教程文件查看方式,软硬连接,vim及账号管理

linux教程
多种文件查看方式学习
软链接和硬链接
vim编译器
账号管理

linux教程

## 多种文件查看方式学习

- **cat 由第一行开始显示文件内容**

- tac 从最后一行开始显示,可以看出cat 和tac是倒着写的

- **nl 显示的时候,顺便输出行号(常用)**

- more 一页一页的显示文件内容(空格表示翻页,回车表示向下翻一页.   :f 可以显示当前行号)

- **less与more类似,但是比more更好的是,它可以向前翻页**
**(在more的基础上添加了 上下键翻行.**

**/if   就是在当前文件中向下查找if这个字符.是输入查看命令之后再里面输入)**

**?if    就是在当前文件中向上查找if这个字符.是输入查看命令之后再里面输入**)**

**n就是寻找下一个. N就是寻找上一个**

- head 只看头几行 通过一个-n参数. head -n 20 xxx   只看前20行

- tail 只看尾巴几行 通过一个-n参数.tail -n 20 xxx   只看后20行

cd /etc/sysconfig/network-scripts   就是网络配置文件.ifcfg-eth0就是默认的配置文件

两种查看方式,比如文件过长,我们想倒着查看就可以用tac.下面演示各个查看方式

```bash
# cat ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
# If you don't want cloud-init genrated automatically,you can disable it in /etc/cloud/cloud.cfg
# For more information, please refer to: https://help.aliyun.com/document_detail/57803.html
#
BOOTPROTO=dhcp
DEVICE=eth0
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
USERCTL=no



# tac ifcfg-eth0
USERCTL=no
TYPE=Ethernet
STARTMODE=auto
ONBOOT=yes
DEVICE=eth0
BOOTPROTO=dhcp
#
# For more information, please refer to: https://help.aliyun.com/document_de
# If you don't want cloud-init genrated automatically,you can disable it in
# Created by cloud-init on instance boot automatically, do not edit.
#



# nl ifcfg-eth0
   1        # Created by cloud-init on instance boot automatically, do not edit.
   2        # If you don't want cloud-init genrated automatically,you can disable it in /etc/cloud/cloud.cfg
   3        # For more information, please refer to: https://help.aliyun.com/document_detail/57803.html
   4        #
   5        BOOTPROTO=dhcp
   6        DEVICE=eth0
   7        ONBOOT=yes
   8        STARTMODE=auto
   9        TYPE=Ethernet
    10        USERCTL=no
   
   
   
# more bashrc
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
# are we an interactive shell?
if [ "$PS1" ]; then
if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*|vte*)
      if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
          PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
      elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then
          PROMPT_COMMAND="__vte_prompt_command"
      else
          PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAM
E%%.*}" "${PWD/#$HOME/~}"'
--More--(28%)



# less bashrc
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
# are we an interactive shell?
if [ "$PS1" ]; then
if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*|vte*)
      if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
          PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
      elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then
          PROMPT_COMMAND="__vte_prompt_command"
      else
          PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
         
         
# head -n 20 bashrc
# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

# are we an interactive shell?
if [ "$PS1" ]; then
if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*|vte*)
      if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
          PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
      elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then
          PROMPT_COMMAND="__vte_prompt_command"
      else
      
      
      
      
# tail -n 20 bashrc
       umask 022
    fi

    SHELL=/bin/bash
    # Only display echos from profile.d scripts if we are no login shell
    # and interactive - otherwise just process them to set envvars
    for i in /etc/profile.d/*.sh; do
      if [ -r "$i" ]; then
            if [ "$PS1" ]; then
                . "$i"
            else
                . "$i" >/dev/null
            fi
      fi
    done

    unset i
    unset -f pathmunge
fi
# vim:ts=4:sw=4
```

## 软链接和硬链接

硬链接:A---B 如果B是A的硬链接,那么A和B指向同一个文件.如果删除A.B仍然可以访问到A中的文件.(用户可以根据这个属性,对一些重要的文件进行多路径.防止误删)

软链接:A---B 类似于windows下的快捷方式.删除A,那么B也访问不到了   (也称为符号链接)

创建连接 ln命令. 默认是创建硬链接.查看文件属性是文件属性.加 -s 表示创建软链接

ln   源文件 xx

ln -s 源xx xx

touch命令创建文件

echo 输入字符串 向文件中输入字符串

```bash
# touch aa
# ls
aaapache-tomcat-9.0.38apache-tomcat-9.0.38.zipjdk1.8.0_20rediswww
# ln aa bb
# ls
aaapache-tomcat-9.0.38apache-tomcat-9.0.38.zipbbjdk1.8.0_20rediswww
# ln -s aa cc
# ll
total 11548
-rw-r--r-- 2 rootroot         0 Mar 15 17:45 aa
drwxr-xr-x 9 rootroot      4096 Sep 102020 apache-tomcat-9.0.38
-rw-r--r-- 1 rootroot11805236 Mar 13 14:13 apache-tomcat-9.0.38.zip
-rw-r--r-- 2 rootroot         0 Mar 15 17:45 bb
lrwxrwxrwx 1 rootroot         2 Mar 15 17:46 cc -> aa
drwxr-xr-x 7 rootroot      4096 Mar 13 14:13 jdk1.8.0_20
drwx------ 2 redis redis   4096 Mar 10 17:37 redis
drwx------ 3 www   www       4096 Mar 10 17:37 www

# echo "i love you" >> f1
# cat f1
i love you

```

如果rm -rf A   删除A ,那么硬链接还可以访问,软链接就失效了

## vim编译器

> 三种使用模式

- 命令模式

刚启动vim时,就会进入到命令模式.在命令模式中.

输入 i 就进入到了输入模式.

输入 : 就进入了底线命令模式

x    删除当前光标所在的字符

- 底线命令模式

在底线输入模式中 w表示保存,q表示退出.

输入 wq表示保存并退出

- 输入模式

输入模式就是开始在文档中写东西.

按下ESC 键,就进入到命令模式

ENTER 键,回车换行

HOME/END 键,移动光标到行首行尾

> 一般的完整操作

1. vim xxx.txt 新建或者打开文件,进入到命令模式
2. i   进入输入模式,编辑完成ESC键退出
3. : 进入底部命令模式,wq保存退出

> 一般模式下 的基本命令

+号,光标移动到非空格的下一行

-号,光标移动到非空格的上一行,(一般在配置文件中,空格非常多)

数字+ENTER : 光标向下移动n行

数字+空格 :光标向右移动多少n列

> 搜索替换

/字符   在光标之下寻找字符,

?字符光标之上寻找字符

n    定位到下一个匹配的字符

N    定位到上一个匹配的字符

>底部命令模式

ZZ   如果修改就保存退出,无修改就直接退出

:set nu显示行号

## 账号管理

> useradd 命令 添加用户

useradd 选项 用户名

-m :自动创建这个用户的主目录/home/haixin

理解一下本质:Linux中一切皆文件,这里的添加用户说白了就是往某个文件中写入用户的信息

**/etc/passwd**这个文件中记录这所有账号的信息

cat /etc/passwd 可以查看刚刚创建的用户信息

> userdel 删除用户

userdel -r haixin 删除用户的时候将它的目录一并删除

> usermod 修改用户

usermod -d /home/233 haixin

修改完毕之后查看配置文件即可

cat /etc/passwd

> 切换用户

root用户

1. 切换用户的命令为 su username
2. 从普通用户切换到root用户 sudo su
3. 在终端输入exit或logout或ctrl+d.可以退回原来的用户,(ctrl+d也是执行exit命令)
4. 在切换用户时,如果想使用新用户的工作环境

,可以在su和username之间加-   :su -root

在阿里云买的服务器,主机名一开始是一串随机数字.

hostname   查看主机名

hostname newname   修改主机名(修改之后重新连接及可看到新主机名)

@haixin home]# su haixin2    一个root 就是当前账户名.@ 后面是主机名,然后是当前目录名$ 表示普通用户.# 表示超级用户,也就是root用户

> 用户的密码设置问题

我们通过root创建账户的时候,要创建用户的密码

linux上输入密码时是没有任何显示的,正常输入就可以,并不是系统问题

超级用户:

passwd username:

new password

re password

普通用户:

passwd

(current) UNIX password: #旧密码

new password:

re password:

> 冻结账号

passwd -l haixin 锁定账户,不能登录了

passwd -d haixin 清除账户密码,并锁定

wylksy 发表于 2021-3-17 15:41

谢谢楼主分享

笨蛋先森 发表于 2021-3-17 15:49

不错,很常用的命令

dunkyy 发表于 2021-3-17 15:41

学习巩固,温故知新,总能用到~{:1_893:}
页: [1]
查看完整版本: linux教程文件查看方式,软硬连接,vim及账号管理