当我只能访问命令行时,如何从计算机上的日志中获取信息?

Set*_*eth 11 command-line tty log

由于各种原因,我不能再访问我的图形桌面,并可以通过一个TTY(只能登录Ctrl+ Alt+F1通过F6默认情况下)。

为了帮助诊断和解决我的问题,我需要查看日志并将一些信息放入我的问题或论坛帖子中。

我怎样才能得到这些信息?

Set*_*eth 14

首先是一些常见日志文件及其包含的内容的列表:

  • /var/log/messages : 一般信息和系统相关的东西
  • /var/log/auth.log : 认证日志。
  • /var/log/kern.log : 内核日志。
  • /var/log/cron.log :Cron 守护进程日志。
  • /var/log/Xorg.0.log : X 服务器的日志。
  • ~/.xsession-errors:与上一个 X 会话相关的日志(以及之前的一个,在xsession-errors.old

登录 tty 后,最好移至日志所在的文件夹(通常为/var/log)。为此,我们使用以下cd命令:

cd /var/log  
Run Code Online (Sandbox Code Playgroud)

现在我们位于存储日志的文件夹中,我们使用该ls命令查看存在哪些日志:

ls -a
Run Code Online (Sandbox Code Playgroud)

可能会有很多,这些说明应该适用于所有这些。

找到要查看的日志后,可以使用以下less命令:

less kern.log  
Run Code Online (Sandbox Code Playgroud)

使用向上/向下箭头键浏览文件。完成后,按Q退出less。如果要在日志中搜索某个关键字,可以使用grep

sudo grep "apparmor" kern.log 
Run Code Online (Sandbox Code Playgroud)

Grep 也接受正则表达式。有关man grep更多信息,请参阅。

如果您只需要某个命令的输出,请参阅有关将终端输出保存到文件的问题,然后您可以按照以下方法之一将其提供给帮助您的人。


你可能会说这一切都很棒,但我不知道我在寻找什么,我只需要将日志文件交给其他人来帮助我。我们也可以这样做!

如果您从 Internet 上的某个人(例如本网站!)获得帮助,与他们共享此信息的最佳方式是将文件上传到http://paste.ubuntu.com并向他们提供链接。如果您的机器具有有效的互联网连接,您可以按照方法 2 中的描述一步完成此操作,否则请按照方法 1 中的步骤从另一台可以访问互联网的计算机上传文件。

方法 1:将它们放在外部媒体上。

例如闪存驱动器或 SD 卡。插入一个。Ubuntu应该会自动安装它,/media所以运行

ls /media  
Run Code Online (Sandbox Code Playgroud)

如果您在那里看到闪存驱动器/SD 卡的名称,则可以继续。否则,您将不得不手动安装它。(别担心!它一点也不可怕)。

安装驱动器后,您可以使用该cp命令复制您需要的任何日志或文件:

cp /var/log/kern.log /media/myFlashDrive/
Run Code Online (Sandbox Code Playgroud)

完成后卸载驱动器:

sudo umount /media/myFlashDrive  
Run Code Online (Sandbox Code Playgroud)

方法二:直接上传文件到pastebin..

paste.ubuntu.com。为此,请使用pastebinit命令。首先我们需要安装pastebinit:

sudo apt-get install pastebinit  
Run Code Online (Sandbox Code Playgroud)

然后像这样上传文件:

pastebinit file1 file2 file3  
Run Code Online (Sandbox Code Playgroud)

file1 file2 file3您要上传的文件的空格分隔列表在哪里。例如,如果我正在上传kern.log并且Xorg.0.log我将使用以下命令:

pastebinit /var/log/kern.log /var/log/Xorg.0.log  
Run Code Online (Sandbox Code Playgroud)

Pastebinit 将为每个上传的文件返回一个链接。与帮助您的人分享这些链接。