Linux中的常用命令

熟练使用Linux命令,提高开发效率

切换目录

# 切换到主目录,等价于 cd ~
$ cd

# 切换到上一次工作目录
$ cd -

# 切换到当前目录下其他目录
$ cd ./demo

# 切换到上一级目录
$ cd ..

# 切换到其他盘
$ cd E:

# 显示当前目录路径
$ pwd

列表显示

# 显示所有文件
$ ls

# 显示所有文件,包括隐藏文件
$ ls -a

# 列出每个文件更详细的信息
$ ls -l

# 查看当前目录属性
$ ls -ld

# 列出目录中每个文件的大小( K/M/G 单位)
$ ls -lh

# 递归地列出子目录的内容
$ ls -R

# 按最后一次修改时间的顺序显示文件
$ ls -t

# 显示所有以app开头的文件
$ ls app*

结果描述

按列描述:类型及权限 | 引用数 | 用户 | 组 | 大小 | 月 | 日 | 年/时间 | 名称

类型(首字符):

  • -: 普通文件、d: 目录文件、b: 块设备、c: 字符设备、l: 链接、s: 套接字

权限:

  • r读,w写,x可执行。

权限说明

-rw-r--r--为例,第一个-表示是普通文件,rw-表示拥有者有读写权限,r--表示组内用户有读权限,最后一个r--表示其他用户有读权限

使用 chmod 命令可以修改权限:

  • +: 添加权限
  • -: 去掉权限
  • =: 设置权限
  • u: 用户
  • g: 组
  • o: 其他
# 给文件添加可执行权限
$ chmod +x file

# 去掉文件的可执行权限
$ chmod -w file

# 给文件所有者添加可执行权限
$ chmod u+w file

# 给文件同组去掉可写权限
$ chmod g-w file

# 所有者读写执行、同组读执行、其他读执行
$ chmod u=rwx, g=rx, o=rx file

除了上面的设置方式,也可以通过八进制设置。读的值是4,写的值是2,执行是1,最高权限是7(4 + 2 + 1)。chmod 755 filechmod u=rwx, g=rx, o=rx file效果一样

显示文件内容

# 显示file1文件的内容
$ cat file1

# 依次显示file1和file2的内容
$ cat file1 file2

# 把file1和file2文件的内容结合起来,复制到file3。file3原有内容会被清除
$ cat file1 file2 > file3

# 把file1和file2文件的内容结合起来,复制到file3。file3原有内容不会被清除
$ cat file1 file2 >> file3

# 重写file1文件的内容,内容输入完毕后使用 Ctrl+d 保存
$ cat > file1

# 显示file1的开头n行
$ head -n file1

# 显示file1的结尾n行
$ tail -n file1

# 分页显示,每次显示一屏。空格键向下翻一屏(只能向下),回车键向下翻一行,q退出
$ cat file1 | more

# less 和 more 操作方式一样,唯一不同点是less可以通过上下键进行翻行
$ cat file1 | less

说明:more 和 less 参数可以结合其他命令使用,如 ls、find

文件和文件夹

# 新建文件。如果存在同名文件,会修改文件的访问和修改时间
$ touch file

# 新建一个文件夹
$ mkdir folder

# 强制删除一个文件或文件夹
$ rm –rf [file | folder]

# 复制a.txt,副本为b.txt
$ cp a.txt b.txt

# 复制a.txt b.txt,副本保存到test目录
$ cp a.txt b.txt test

# 递归复制test目录,副本保存到test2目录
$ cp -R test test2

# mv命令可以对文件重命名。把a.txt重命名为aa.txt
$ mv a.txt aa.txt

# 把aa.txt文件移动到test目录下
$ mv aa.txt test

# 把aa.txt文件移动到test目录下,并改名为aaa.txt
$ mv aa.txt test/aaa.txt

# 把test目录移动到test2目录
$ mv test test2

文件搜索

find 命令和 grep(General Regular Expression Parser)命令用于查找文件,grep 支持通过正则的方式检索文件

find

格式:find [目录] [条件] [动作]

  • 目录:要搜索的目录及其子目录,默认为当前目录
  • 条件:搜索文件的筛选方式
    • -name: 指定文件名
    • -type: 指定文件类型(b/c/d/p/l/f)
    • -size: 指定文件大小,单位可以是K/M/G。+表示大于,-表示小于
    • -user: 指定用户
    • -group: 指定组
  • 动作:匹配特定的搜索结果,也可以是文件名
# 查找根目录下名字为install.log的文件
$ find / -name install.log

# 查找/etc/目录下,大于20KB的文件
$ find /etc -size +20K

# 查找/etc/目录下,小于50KB的文件
$ find /etc -size -50K

grep

格式:grep [选项] pattern [文件名]

  • 选项:-i: 忽略大小写; -n: 显示行号
  • pattern: 所要匹配的正则表达式字符串
# 在 /etc/passwd 文件中,查找包含fa字符串的行
$ grep -n fa /etc/passwd

# 过滤ls /bin输出的内容,只显示以m开头的行
$ ls /bin | grep '^m'

压缩命令

# 把a.txt打包成a.tar.gz
$ tar -czvf a.tar.gz a.txt

# 解压a.tar.gz
$ tar -xzvf a.tar.gz

# 显示压缩包的信息
$ tar -tzvf a.tar.gz

-c: 打包
-z: 压缩包为.tar.gz格式
-v: 显示过程
-f: 指定打包后的文件名
-x: 解压

快捷键

ctrl+l 清屏
ctrl+c 强制终止当前命令
ctrl+a 光标移动到命令行首
ctrl+e 光标移动到命令行尾
ctrl+u 从光标所在位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索
一次tab 补全
两次tab 提示
shift+pageup 向上翻页
shift+pagedown 向下翻页

用户管理、组管理

Linux 是一个多用户系统,允许创建用户和组,可以把某个用户归属于某个组。可以针对组或者用户单独设置权限

# 创建用户
$ useradd username

# 为用户设置密码,修改密码也是同样命令
$ passwd username

# 彻底删除用户
$ userdel -r username

# 切换用户
$ su username
# 创建用户组
$ groupadd groupname

# 向组中添加用户
$ gpasswd -a username

# 删除组中的用户
$ gpasswd -d username

# 设置文件所属的组
$ chgrp groupname filename

# 设置文件所有者
$ chown username filename

# 删除用户组
$ groupdel groupname

PATH 变量

PATH 指的是环境变量,我们之所以可以在任何目录下执行上面的这些命令,是因为/bin目录默认添加到了系统的 PATH 中。可以通过echo $PATH查看当前用户的 PATH 信息:

/root/.nvm/versions/node/v8.12.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

上面的目录以分号分割,执行命令时会依次查找这些目录,直到找到命令为止。用户也可以自己添加环境变量,打开用户目录下的.bashrc文件,文件末尾添加export PATH=$PATH:dir1[:dir2],添加好后需要使用source filePath命令让配置生效。

posted @ 2021-10-07 11:21  wmui  阅读(43)  评论(0编辑  收藏  举报