【Linux】Linux 常用命令

Linux 常用命令

    • 1. 复制/粘贴
    • 2. 查看目录和文件: ls
    • 3. 查看当前目录: pwd
    • 4. 切换目录: cd
    • 5. Linux 目录结构
    • 6. 绝对路径 vs 相对路径
    • 7. tab 键补全
    • 8. ctrl + c 重新输入
    • 9. 创建文件: touch
    • 10. 查看文件内容: cat
    • 11. 写内容 echo
    • 12. 创建目录: mkdir
    • 12. 删除文件: rm
    • 13. 拷贝文件: cp
    • 14. 移动文件(重命名): mv
    • 15. 查看帮助手册: man
    • 16. 查看文件内容: less
    • 17. 显示文件开头: head
    • 18. 显示文件末尾: tail
    • 19. 重定向
    • 20. 管道
    • 21. 日期: date
    • 22. 编辑器: vim
    • 23. 查找: grep
    • 24. 查看进程: ps
    • 25. 查看网络: netstat
    • 26. 用户操作
    • 27. 文件类型和访问权限
    • 28. 修改文件权限: chmod
    • 29. 安装应用: yum

1. 复制/粘贴

复制: ctrl + insert
粘贴: shift + insert
ctrl + c / ctrl + v 是不行的.

2. 查看目录和文件: ls

语法: ls [选项] [目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。 
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls -d 指定目录 
-k 以 k 字节的形式表示文件的大小。ls -alk 指定文件 
-l 列出文件的详细信息。 
-r 对目录反向排序。 
-t 以时间排序。 
-R 列出所有子目录下的文件。(递归) 

举例:

ls -l

3. 查看当前目录: pwd

语法: pwd

功能:显示用户当前所在的目录

4. 切换目录: cd

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

语法: cd 目录名 

功能: 改变工作目录。将当前工作目录改变到指定的目录下.
举例:

cd .. : 返回上级目录
cd ~: 进入用户家目录
cd -: 返回最近访问目录
cd ./temp: 进入当前目录下的 temp 目录
cd /usr/tmp: 切换到 /usr/tmp 这个目录

5. Linux 目录结构

Linux 是一个树形目录结构. (没有盘符这种概念)

【Linux】Linux 常用命令_第1张图片

/ 称为根目录
. 称为当前目录
… 称为当前目录的上级目录

6. 绝对路径 vs 相对路径

形如: /usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.
形如: ./logs 以 . 或者..开头的, 称为相对路径.

7. tab 键补全

我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.
如果只有一个匹配的选项直接就能补全, 如果没有补全, 说明有许多个能匹配上的选项, 此时就可以连按两下 tab 就可以查看所有的匹配项

8. ctrl + c 重新输入

如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令.

9. 创建文件: touch

语法: touch [选项] 文件

功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
举例:

touch test.txt

10. 查看文件内容: cat

语法: cat [选项] [文件] 

功能: 查看目标文件的内容
常用选项:

-n 对输出的所有行编号 
cat test.txt

11. 写内容 echo

echo 原本是回显, 但是搭配后面的重定向, 就能将内容写入到指定的文件中

echo "hello" 
# 使用一个 > 是覆盖
echo "hello" > test.txt
# 使用 >> 是拼接
echo "hello" >> test.txt

12. 创建目录: mkdir

语法: mkdir [选项] dirname

功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统
将自动建立好那些尚不存在的目录,即一次可以建立多级目录

举例:

mkdir -p test/test1 : 递归建立多个目录

12. 删除文件: rm

语法: rm [选项] [dirName/dir]

功能:删除文件或目录
常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
-v 增加命令的输出详细程度,使命令在执行时输出更多的信息

举例:

rm test.txt

要注意事项:
千万不要运行 rm -rf / , 尤其是在公司的生产服务器上.

理解递归删除的过程:

test
├── a
│   ├── a1
│   │   ├── 1.txt
│   │   └── 2.txt
│   └── a2
├── b
│   ├── b1`
│   │   ├── 1.txt
│   │   └── 2.txt
│   └── b2
└── c
使用 rm -ri 命令删除 test, 观察删除的顺序. 

【Linux】Linux 常用命令_第2张图片

13. 拷贝文件: cp

语法: cp [选项] 源文件或目录 目标文件或目录 

功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

常用选项:

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在 
-i 或 --interactive 覆盖文件之前先询问用户 
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理 
-R--recursive递归处理,将指定目录下的文件及子目录一并处理 

举例:

cp test1.txt test2.txt

注意拷贝目录需要使用 -r 选项

14. 移动文件(重命名): mv

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

  1. 视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖 
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! 

举例

mv test1.txt test2.txt

15. 查看帮助手册: man

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

语法: man [选项] 命令

常用选项

-k 根据关键字搜索联机帮助
num 只在第num章节找
man man 能够看到 man 手册中的若干个章节及其含义. 

举例: 查看 ls 命令

man ls 

在第 1 章节找 ls 命令

man num 1 ls

16. 查看文件内容: less

语法: less [参数] 文件

功能:查看文件内容. 不会立刻把所有文件内容加载到内存中. 也能进行查找.

选项:

j k / 方向键: 向上向下滚动屏幕.
-N  显示每行的行号
/字符串: 向下搜索 “字符串”
n: 重复前一个搜索(与 /? 有关)
q: 退出

注意: 这几个选项中只有 -N 是在查看内容之前 的命令中的参数, 其他选项都是在查看时 使用的

17. 显示文件开头: head

语法: head [参数] [文件]

功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:

-n<行数> 显示的行数

18. 显示文件末尾: tail

语法: tail [必要参数] [选择参数] [文件] 

功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:

-f ("follow")循环读取, 用于实时监视文件的变化,当文件内容发生变化时,会自动更新并显示新添加的内容,非常适用于查看日志文件或其他动态生成的文件。
-n<行数> 显示行数

举例:有一个文件共有100行内容,请取出第50行内容

# 方法1 
head -n50 test > tmp       # 将前50行装入临时文件 tmp
tail -n1 tmp               # 得到中间行
# 方法2 
head -n50 test | tail -n1 

19. 重定向

Linux 的很多指令, 如 cat head tail 等都是默认输出到 “标准输出” 中, 也就是显示器上的. 可以通过 > 这样的符号把本来要输出到标准输出上的内容写到特定文件中. 这样的操作称为 “重定向”.
重定向有三种方式:

  1. 标准输入重定向(<)
# 先构造一个文件 test.txt , 里面添加一些内容.
cat < test.txt

将 test.txt 的内容输入给 cat

  1. 标准输出重定向 (>)
# 使用一个 > 是覆盖
# 使用 >> 是拼接
cat test.txt > test2.txt
cat test.txt >> test2.txt

将 test.txt 的内容输入给 test2.txt

  1. 标准错误重定向 (2>), 注意 2 和 > 之间不能有空格.
# 尝试删除一个不存在的文件
rm aaa > test.txt
# 输出结果, 这个提示并没有被重定向到 test.txt 文件中. 
rm: cannot remove ‘aaa’: No such file or directory
# 正确做法
rm aaa 2> test.txt

标准输入, 标准输出, 标准错误是三个特殊的文件, 每个进程在启动的时候都会默认打开. 分
别对应到键盘, 显示器, 显示器这样的设备. 在 Java 中, 分别对应到 System.in , System.out , System.err

20. 管道

管道是一种古老的 “进程间通信” 方式. 在 Linux 指令中可以使用 | 作为管道标记.
意思是将前一个指令标准输出的内容, 作为第二个指令的标准输入内容.

基本语法: command1 | command2

举例:
使用 ls 列出当前目录的文件,并将结果通过管道传递给 grep 命令,以查找包含关键词的文件:
使用 ps 命令列出当前正在运行的进程,并将结果通过管道传递给 grep,以筛选出包含特定进程名称的进程:

ls | grep keyword
ps aux | grep "进程名"
ps aux | grep "进程id"

管道可以连接多个命令:您可以使用多个管道操作符来连接多个命令,以进行更复杂的数据处理。例如:

command1 | command2 | command3

21. 日期: date

date 指定格式显示时间: date +“%Y-%m-%d %H:%M:%S”

date 用法: date [OPTION]... [+FORMAT]
  1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记
%H : 小时(00..23)
%M : 分钟(00..59)
%S : (00..61)
%X : 相当于 %H:%M:%S
%d :  (01..31)
%m : 月份 (01..12) 
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
date +"%Y-%m-%d %H:%M:%S"
date +"%Y-%m-%d %H:%M"
date +"%Y-%m-%d"
  1. 时间戳

时间 -> 时间戳:

date +%s

时间戳->时间:date -d@1508749502

date -d@1508749502

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

22. 编辑器: vim

vim 是一个知名的文本编辑器. 前面学习的 cat, less, head, tail 等命令只能查看文本, 不能编辑文本. 使用 vim 就可以进行编辑了.
vim 就相当于 Windows 的记事本. 只不过功能比记事本强大一些.

  1. 创建文件 / 打开文件
vim [文件名]
  1. 进入插入模式
    vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键.
    (例如按下 j 并不是输入字母 “j”, 而是表示光标往下移动一行).
    需要进入插入模式才能进行文本编辑.
    使用 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.

  2. 保存

在插入模式下不能保存文件, 需要先回到 普通模式 . 按下 Esc 回到普通模式. 
在普通模式下输入 :w , 再按下回车, 即可保存文件. 
  1. 退出
    在插入模式下不能退出, 需要先回到 普通模式.
    在普通模式下输入 :q , 再按下回车, 即可退出.
    也可以直接使用 :wq 同时执行保存和退出.

23. 查找: grep

语法: grep [参数]... [文件]... 

功能:用于查找文件中是否包含指定字符串, 并显示对应的行.
选项:

-n<行数> 显示的行数
-w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分. 
-r 递归查找. 可以搜索多级目录下的所有文件. 
--color 高亮查找到的结果
--include 指定查找某些文件
--exclude 指定排除某些文件

举例:

grep "hello" Hello.java
grep -r --include='*.c' main .

最后的 . 表示在当前目录, 是 目录那么就得使用 -r
–include=‘*.c’ 表示只在 以 .c 结尾的文件里面查找

24. 查看进程: ps

语法:ps [参数]...

功能:用于查看当前系统上运行的进程
选项:

a 显示所有终端和非终端进程,包括其他用户的进程
u 显示详细的用户信息,包括进程的所有者、用户标识(UID)、CPU 使用率、内存使用等
x 显示无终端的进程。这些进程通常是守护进程或在后台运行的进程。

举例:

ps aux   # 显示系统上所有的进程
ps aux | grep "进程名"
ps aux | grep "进程id"

25. 查看网络: netstat

语法: netstat [参数]...

功能:查看系统上的网络状态.
选项:

-a 显示所有正在或不在侦听的套接字
-n 显示数字形式地址而不是去解析主机、端口或用户名, 这可以提高命令执行速度,特别是在解析大量连接时。
-p 显示套接字所属进程的PID和名称

举例:

netstat -anp
netstat -anp | grep "进程名"
netstat -anp | grep "端口号"

26. 用户操作

Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

  1. 创建用户
命令: useradd [用户名]

功能 创建新的用户
示例

useradd test
  1. 配置密码
命令:  passwd [用户名]

功能 设置或修改用户密码
示例

passwd test

注意, 输入密码的时候, 在控制台中不会有提示. 但实际上已经输入进去了.

  1. 切换用户
命令: su [用户名] 

功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。
要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

27. 文件类型和访问权限

  • 三种角色:
    访问一个文件的人可能分成三种类别.
    文件和文件目录的所有者: u—User
    文件和文件目录的所有者所在的组的用户 :g—Group
    其它用户: o—Others

命令 ll 显示了一个文件的详细信息. 解读如下图:

drwxr-xr-x. 4 root root  87 Sep 24 11:17 prg

【Linux】Linux 常用命令_第3张图片

链接数: 每个文件和目录都有一个与之关联的链接数,它表示有多少个硬链接指向该文件或目录。
删除一个硬链接并不会影响实际文件的数据,只有当所有链接都被删除时,文件的数据块才会被释放。

a) 文件类型

d: 文件夹
-: 普通文件
l: 软链接(类似Windows的快捷方式)
b: 块设备文件(例如硬盘、光驱等)
p: 管道文件
c: 字符设备文件(例如屏幕等串口设备)
s: 套接口文件

b) 基本权限

  • 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “-” 表示不具有该项权限

注意: 有个例外 root 用户不必遵守上述规则

28. 修改文件权限: chmod

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限 

说明:只有文件的拥有者和root才可以改变文件的权限

① 用户表示符+ - =权限字符

+:增加权限
-:取消权限
=:设置权限 

用户符号:

u: 拥有者 
g: 拥有者同组用 
o: 其它用户 
a: 所有用户
# 拥有者增加 写的权限
# chmod u+w /home/abc.txt 
# 其他人不能执行
# chmod o-x /home/abc.txt
# 设置 所有人只有 执行的权限
# chmod a=x /home/abc.txt

②三位8进制数字
实例:

# 110 110 100 表示拥有者有 rw-, 同组人员有 rw-, 其他人 有 r--
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt

类似的还有 chgrp, chown 命令.

29. 安装应用: yum

yum (Yellow dog Updater, Modified) 是Linux下非常常用的一种包管理器.
包管理器就好比 “应用商店”, 我们可以在应用商店上下载一些 app.
yum 使我们方便的安装第三方程序.

查看软件包列表

yum list | grep [软件包关键字]   # 注意, 最好要加上 grep, 否则罗列的内容会非常多, 导致机器很卡.

安装软件包(需要管理员权限)

yum install [软件包名字]

卸载软件包(需要管理员权限)

yum remove [软件包名字]

注意事项:

  • yum 所有的命令必须保证网络是联通情况下, 才能使用(云服务器一般网络都是良好的).
    可以使用 ping www.baidu.com 来检测网络的畅通情况.
  • yum install / yum remove 必须具备管理员权限(root 用户).

好啦! 以上就是 Linux 常用命令 的讲解,希望能帮到你 !
评论区欢迎指正 !

你可能感兴趣的:(Linux,linux,运维,服务器)