Linux基础入门学习笔记
学习渠道:Linux实验楼(https://www.shiyanlou.com/)
更新中,未完待续……
前言
本文为Linux的基础入门内容,主要含有Linux常用命令,用户与权限管理,目录结构与文件操作,环境变量,计划任务,管道与数据流重定向等基本知识点。
常用快捷键
| 按键 | 
作用 | 
| ↑ | 
历史输入命令 | 
| Tab | 
补全命令、补全目录、补全命令参数等 | 
| Ctrl+c | 
终止当前程序(不会使终端退出) | 
| Ctrl+d | 
键盘输入结束或退出终端 | 
| Ctrl+s | 
暂停当前程序,暂停后按下任意键恢复运行 | 
| Ctrl+z | 
将当前程序放到后台运行,恢复到前台为命令fg | 
| Ctrl+a | 
将光标移至输入行头,相当于Home键 | 
| Ctrl+e | 
将光标移至输入行末,相当于End键 | 
| Ctrl+k | 
删除从光标所在位置到行末 | 
| Alt+Backspace | 
向前删除一个单词 | 
| Shift+PgUp | 
将终端显示向上滚动 | 
| Shift+PgDn | 
将终端显示向下滚动 | 
用户管理
查看当前用户用户名
1 2 3 4 5
   | $ whoami 或者 $ who am i 或者 $ who mom likes
   | 
 
su,su -l,与sudo
- su  可以切换到用户 user,执行时需要输入目标用户的密码
 
- sudo  可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码
 
- su -l  命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | #新建一个叫lilei的新用户 $ sudo adduser lilei #输入当前用户密码,注意 Linux 环境下输入密码是不会显示的 passwd: 正在添加用户“lilei”... . . . 输入新的UNIX密码: 重新输入新的UNIX密码: . . . 这些信息是否正确? [Y/n]
   | 
 
现在你已经创建好一个用户,并且你可以使用你创建的用户登录了,使用如下命令切换登录用户:
1 2
   | $ su -l lilei #然后输入用户lilei的密码
   | 
 
退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。
将其他用户加入 sudo 用户组
默认情况下在 sudo 用户组里的可以使用 sudo 命令获得 root 权限。而新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限:
1
   | $ sudo usermod -G sudo lilei
   | 
 
删除用户
1
   | $ sudo deluser lilei --remove-home
   | 
 
目录及文件操作
路径
1 2
   | (不知道为啥‘-’一到网页里就变成'。'了...) $ cd -
   | 
 
绝对路径
以根” / “目录为起点的完整路径,以你所要到的目录为终点,表现形式如:/usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录
相对路径
相对路径是以当前目录为起点,以你所要到的目录为终点
1 2
   | # 当前目录的上一级目录的上一级目录下的user目录下的local目录下的bin目录 $ cd ../../usr/local/bin
   | 
 
文件基本操作
1 2 3
   | $ ls # 参数-a :查看隐藏文件 $ ls -a
   | 
 
1 2 3 4
   | $ touch test #创建多个文件 $ touch asd.txt fgh.txt $ touch love_{1..10}_shiyanlou.txt
   | 
 
1 2 3
   | $ mkdir mydir # 参数-p:创建多级目录 $ mkdir -p father/son/grandson
   | 
 
1 2 3
   | $ cp test father/son/grandson # 参数-r/-R:复制目录 $ cp -r father family
   | 
 
1 2 3
   | $ rm (-f) test # 参数-r/-R:删除目录 $ rm -r family
   | 
 
1 2 3 4 5 6
   | # 移动 $ mkdir Documents $ touch file1 $ mv file1 Documents # 重命名 $ mv file1 myfile
   | 
 
1 2 3 4 5 6 7
   | $ cd /home/shiyanlou/ # 使用通配符批量创建 5 个文件: $ touch file{1..5}.txt # 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件: $ rename 's/\.txt/\.c/' *.txt # 批量将这 5 个文件,文件名和后缀改为大写: $ rename 'y/a-z/A-Z/' *.c
   | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
   | # cat:正序打印 $ cat passwd $ cat -n passwd(添加行号) # tac:倒序打印 $ tac passwd # nl:添加行号并打印 $ nl -b a passwd     # nl参数     -b : 指定添加行号的方式,主要有两种:         -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)         -b t:只列出非空行的编号并列出(默认为这种方式)     -n : 设置行号的样式,主要有三种:         -n ln:在行号字段最左端显示         -n rn:在行号字段最右边显示,且不加 0         -n rz:在行号字段最右边显示,且加 0     -w : 行号字段占用的位数(默认为 6 位)
   | 
 
- more/less:打印一屏内容,相比于cat/tac用鼠标翻页,more/less则使用键盘操作
 
1 2 3 4 5 6 7 8
   | # more:只能向一个方向滚动 $ more passwd     # 按键功能     Enter:向下滚动一行     Space:向下滚动一屏     h:显示帮助     q:退出 # less:基于more 和vi开发,功能更强大,自行了解
   | 
 
- head/tail:只打印文件的头/尾几行,默认为 10 行
 
1 2 3 4 5
   | $ head passwd $ tail passwd # 参数-n:设置打印行数 $ head/tail -n 1 passwd # 参数-f:动态读取文件内容,自行了解
   | 
 
![Linux学习路径]()