Fedora30的使用记录

记录一下fedora使用过程中踩的坑…
fedora 版本:fedora workstation live x86-64-30

基础设置

set root passwd

刚开始的时候是没有设置root密码的,所以好像是用不了su,设置下就好了

sudo passwd root

配置terminal

自带的terminal不好用,可以下载terminator.

sudo dnf install terminator

# 安装好后,编译配置文件 ~/.config/terminator/config, 内容如下

[global_config]
  focus = system
  suppress_multiple_term_dialog = True
  title_transmit_bg_color = "#d30102"
[keybindings]
  split_vert = <Alt>e
[layouts]
  [[default]]
    [[[child1]]]
      parent = window0
      profile = default
      type = Terminal
    [[[window0]]]
      parent = ""
      type = Window
[plugins]
[profiles]
  [[default]]
    background_color = "#2d2d2d"
    background_darkness = 0.85
    copy_on_selection = True
    cursor_color = "#2D2D2D"
    font = Monospace 13
    foreground_color = "#eee9e9"
    palette = "#2d2d2d:#f2777a:#99cc99:#ffcc66:#6699cc:#cc99cc:#66cccc:#d3d0c8:#747369:#f2777a:#99cc99:#ffcc66:#6699cc:#cc99cc:#66cccc:#f2f0ec"
    scrollback_lines = 1000
    show_titlebar = False
    use_system_font = False
  [[transparent]]
    background_color = "#2d2d2d"
    background_darkness = 0.36
    background_type = transparent
    copy_on_selection = True
    cursor_color = "#2D2D2D"
    font = Monospace 13
    foreground_color = "#eee9e9"
    palette = "#2d2d2d:#f2777a:#99cc99:#ffcc66:#6699cc:#cc99cc:#66cccc:#d3d0c8:#747369:#f2777a:#99cc99:#ffcc66:#6699cc:#cc99cc:#66cccc:#f2f0ec"
    show_titlebar = False
    use_system_font = False

添加快捷键

  1. 打开 Setting/Devices/keyboard/custom shortcuts
  2. 添加快捷键如下
Name: terminal or something what you like
Command: terminator
Shortcut: 设置快捷键

常用软件安装

安装五笔输入法

sudo dnf install ibus*wubi*
reboot # 重启才生效,再在设置里面添加输入法,使用极点挺好的

安装chrome

sudo dnf install google-chrome-stable

安装 vim

安装没啥,主要是配置,下面的都是很基础的一些配置,其他的参考vim教程网

vim ~/.vimrc

" 自动匹配括号
inoremap { {}<LEFT>  

set number  
set ruler
set showcmd
set hls

"this will make mouse active
set mouse=a

"Set up tab spaces
set tabstop=4 softtabstop=4 shiftwidth=4 expandtab
set autoindent

"To speed up vim
set re=1
set ttyfast
set lazyredraw
set scrolljump=10

"设置非输入模式时按enter也换行
nmap <CR> o<Esc>

安装 VS code

官方指南

markdown : Markdown all in one
latex : latex workshop
汉化   : Chinese(simplified) langugae package

解压rar文件

在ubuntu上可以通过unrar来解压rar压缩文件,然而,在fedora上并没有unrar这个命令。不过,它提供了另一个更好用的命令unar(需要自己安装)。不仅对rar类型的文件适用,也可用于其他格式的压缩文件。

unar *.zip/rar/tar...

安装 tex live

参考

安装包有点不好找…
安装包清华镜像

----更新-------
在fedora30上可以直接使用sudo dnf install texlive安装即可,下面是以前在ubuntu上的步骤

file:///usr/local/texlive/2019/index.html

sudo mount -o loop texlive.iso /mnt
cd /mnt
sudo ./install-tl # 开始安装,跟着它走就行

cd ~
sudo unmount /mnt

# 添加环境变量,在~/.bashrc 文件中添加如下内容
# TeX Live 2018
export PATH=${PATH}:/usr/local/texlive/2018/bin/x86_64-linux

# 使用如下命令使上面的更改生效(或者直接退出当前terminal,重新打开也行)
source ~/.bashrc

# 测试
tex --version

tex的编辑器强烈推荐 vs code!!!, 其他的用着不舒服…
在code里面安装插件latex workshop, 使用中文时,用ctex的包
在文件开头加 %!TEX program = xelatex, 指定使用xelatex编译,支持中文好。注意:这句格式别错了, =两边有空格,不能省!!!

  • ctrl+alt+b: 编译
  • ctrl+alt+c: 删除编译产生的无用文件

mathpix 将图片转为latex公式

mathpix

安装 xmind-zen(知识图谱)

安装包官网下载

sudo dnf install ~/Downloads/Xmind*.rmp

安装福昕pdf阅读器

添加了fzug源后,就可直接使用`sudo dnf install FoxitReader`来安装了。 我在官网上下载的.rpm安装包安装好后无法使用,但这个可以!!!

自带的也挺好用的,如果只是阅读的话,在终端直接使用 evince *.pdf 就打开了

okular添加自定义印章,将下载的图片复制到/usr/share/okular/pics/或者~/.local/share/okular/pics/自己创建pics,图片格式png或者svg,名称全小写

安装flash player

未安装时,firefox浏览器无法播放视频…

## 添加仓库 Adobe Repository 64-bit x86_64 ##
sudo rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux

下载安装
sudo dnf install flash-plugin # 下载有些慢,下载好后就能用了

安装 tesseract

tesseract 是一个OCR工具,具体怎么解释自己google一下吧~~
之前在ubuntu上安装下了一堆东西,而且直接使用apt安装的版本太低,识别率不怎么行。自己编译又各种错误…可能是我太菜了…

# 安装
sudo dnf install tesseract
# 上面的命令默认只安装英文的字体,大小只有19M左右,由于还会用到中文,所以要单独下载中文的
# 下载简体中文库
sudo dnf install tesseract-langpack-chi-sim
# 如果你需要其他的语言,执行下面的语句查看支持的语言及其简写的名字
sudo dnf search tesseract-langpack
# 再下载对应的语言就好了

用法还是使用tldr tesseractman自己看了吧~

截屏后自动ocr文字识别到剪贴板

下面是实现标题功能的脚本文件:

#!/bin/bash
#require: xsel tesseract tesseract-langpack-chi-sim;

# 临时文件的保存路径
imgAddress='/home/yogurt/Documents/tmp/screenshot.png';
txtAddress='/home/yogurt/Documents/tmp/screenshot';

# 命令说明:-a 自己选定截屏区域 
gnome-screenshot -a -f $imgAddress;

# 命令说明:-l 指定文字类型,设为中文时,英文同样能识别
tesseract -l chi_sim $imgAddress $txtAddress;

# 命令说明:xsel -ib 复制到粘贴板
cat $txtAddress.txt | xsel -ib;

rm $txtAddress.txt  $imgAddress;

自己定义临时截屏文件和识别文件的保存路径, 将该文件放到/usr/local/bin/下,添加执行权限,再设置快捷键即可。

视音频处理工具ffmpeg

安装

# 1. 添加.repo
sudo dnf install \
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

# 2. 安装
sudo dnf install ffmpeg

ffmpeg是一个很强的视音频处理工具,可以实现从视频中提取音频几张图片生成gif、以及各种格式相互转换等等… 使用tldr ffmpeg查看部分用法

同时安装时会带有播放器ffplay,也是一个命令行工具。

ffmpeg - 替换视频中的音频

ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4

视频播放器 VLC

fedora自带的播放器经常会遇到无法打开的问题,比如.mkv文件,还有一些使用chrome都可以轻松打开的文件,它作为专门的视频播放器却打开不了…

fedora自带的音乐播放器rhy....对中文的支持也很有问题…于是可以把它俩都卸了~~

sudo dnf remove totem # 卸载视频播放器
sudo dnf remove rhythmbox # 卸载音频播放器

VLC算是一个专业的视音频播放器吧,安装教程

# 1. 添加包
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

# 2. 安装
sudo dnf install vlc

install matlab

安装包可使用bt搜索查找,下载会快很多

安装教程可参考这个https://www.cnblogs.com/taoyuyeit/p/8823311.html

破解:
安装好后,到bin目录下,运行./matlab,选择许可证文件(不需要再将许可证文件复制到licenses文件夹下),完成后,再将.so 文件替换glnax文件夹下的.so文件,注意不是直接复制到glnax文件夹下,而是glnax里面的文件夹下。

centos服务器上安装matlab
安装好后如有报错

(base) [root@yogurt ~]# matlab -nodesktop
MATLAB is selecting SOFTWARE OPENGL rendering.
Fatal Internal Error: Unexpected exception: 'N9MathWorks6System15SimpleExceptionE: Dynamic exception type: St13runtime_error
std::exception::what: Bundle#2 start failed: libXt.so.6: cannot open shared object file: No such file or directory
' in createMVMAndCallParser phase 'Creating local MVM'

只需要安装yum install xorg-x11-server-utils

壁纸

推荐一个软件fondo,也就是网站Unsplash.com
界面如下:

安装: sudo dnf install fondo

安装 octave

虽然没有matlab好用,但免费啊,而且对linux支持好,打开速度飞快,用来进行简单的矩阵计算还是很好用的。`sudo dnf install octave’。

终端输入octave会自动打开图形界面,仅在终端使用可输入octave --no-gui

Octave官网

Octave Forge地址

安装nvidia显卡驱动

未安装显示驱动,且chrome打开了硬件加速的话,全屏时会闪烁,可以选择在设置里面关闭硬件加速,或者安装显卡驱动

sudo dnf install akmod-nvidia

安装好后重启电脑,第一次会有点慢

安装 snap

snap 相当于一个应用商店,通过它来下载应用会省事很多(如果dnf找不到的话);

# enable snap
sudo dnf install snapd
sudo ln -s /var/lib/snapd/snap /snap

安装 scrcpy

参考链接1参考链接2参考链接3

# 使用snap安装scrcpy
sudo snap install scrcpy

# 安装adb
sudo dnf install android-tools

# adb常用命令
adb start-server
adb kill-server
adb devices

使用教程请直接查看上面的参考链接

Coding Time

安装 anaconda

在这下载minianaconda,运行就完事

具体说明看这吧,很详细了。

安装好后为Conda添加镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

安装tensorflow

虽然可以直接用pip、conda等安装tensorflow,不过可能会提示你有些什么SSE、AEX、啥的没用上,浪费资源是吧,自己编译又太麻烦,只好拿别人编译好了的咯~~~给个star表示感谢

如果不知道自己电脑能用哪些资源,那就先用 conda install tensorflow 安装一下,再运行一个需要用到 tensorflow 的程序,它会给出提示的…

下载好后直接pip install *.whl

安装g++

注意安装时使用gcc-c++而不是g++,`sudo dnf install gcc-c++`:

安装opencv-c++

sudo dnf install opencv opencv-devel

#测试代码 cam.cc

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
        VideoCapture capture(0);
 
        Mat frame;
        capture >> frame;
        while (!frame.empty())
        {
                imshow("OpenCV Demo", frame);
                waitKey(30);
                capture >> frame;
        }
        waitKey(0);
        return 0;
}

# 编译
g++ `pkg-config opencv --cflags --libs opencv` -o out cam.cc

# 运行测试
./out

git配置

廖雪峰教程

git config --list 显示当前的Git配置
git config -e [--global] 编辑Git配置文件 
git config [--global] user.name "[name]" 设置提交代码时的用户信息
git config [--global] user.email "[email address]"
git config --global color.ui true  让Git显示颜色,会让命令输出看起来更醒目

配置别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

配置SSH Key
ssh-keygen -t rsa -C "youremail@example.com"

配置免密
vim ~/.gitconfig # 在后面追加如下两行

[credential]
	helper=store
下次执行git push再次输入用户名之后,git就会记住用户名密码并在上述目录下创建.git-credentials文件,记录的就是输入的用户名密码。

实用设置

关闭更新提醒

设置里面Notifications 关闭software提醒

图片反色

直接`convert -negate old.png new.png`就可以将单张图片反色了
要直接转多个文件可以写个.sh

for item in `ls *.png`;
do
    convert -negate $item output/$item;
done

还是麻烦对吧~~~

推荐另一个工具 ImageMagick, 通过 sudo dnf install ImageMagick 安装, 然后就可以用 mogrify -negate *.png 就可以直接将当前文件夹的图片反色了。

命令不好记???使用别名(alias)!!!
在~/.bashrc里面加上下面这一行:

    alias img='mogrify -negate'

终端使用代理

参考地址

我觉得最好用的是这个:

export ALL_PROXY=socks5://127.0.0.1:1080

好用的工具

参考地址

  1. tldr (命令手册)
  2. tree (目录树)
  3. autojump (目录直达)
  4. pdfseparate (pdf文件拆分)
  5. pdfunite (pdf文件合并)

#1. 安装tldr,要通过npm安装,所以先要安装npm, npm是node.js的一部分,所以…

sudo dnf install nodejs
sudo npm install -g tldr

之后也可用用npm安装一些使用dnf找不到的工具了~~

#3. autojump安装非常方便,但安装后不能直接使用

1. 安装
    sudo dnf install autojump
2. 添加到 .bashrc, 注意下面命令中 ". /usr/" 不能省略
    echo ". /usr/share/autojump/autojump.bash" >> ~/.bashrc
3. 更改权限
    sudo chmod 755 /usr/share/autojump/autojump.bash
4. 更新 .bashrc
    source ~/.bashrc

#4、5. pdfseparte 和 pdfunite 的用法直接使用 man pdfunite 来查看,不过应注意,这两个命令好像不是自带的,需要安装 Tex Live 后,才能使用。

本地与云服务器互传文件

注意,下面的命令都是在本地的终端运行~

1、本地文件发送到云服务器

    scp 本地位置/文件 username@ip-adress:/home/....

2、从云服务器拷文件

    scp username@ip-adress:/home/.... 本地位置

3、设置ssh/scp免密
使用ssh-keygen -t rsa "youremail@email.com"生成密钥,如果已经存在就不需要重复 再将.ssh/id_rsa.pub文件发送到服务器用户目录下.ssh文件夹中,并改名为authorized_keys`

文件编码转换 iconv

如果文件是从 windows 上面搬过来的,那么就会遇到乱码的问题,因为 windows 默认使用 gb2312 , 而 linux 则使用 utf-8。因此,需要先将文件进行格式转换。

目前我知道的两个转换文件编码的工具: iconvenca

iconv 好像只能用于单个文件转换,所以具体用法请参考 tldr iconv

enca 就很好用了,通过 enca -L chinese -x utf-8 *.m 就可以直接将当前文件夹下的所有文件转换为 utf-8 格式了。

文件名编码转换 convmv

类似上面的iconv,不过这个命令只修改文件名。

  Convert filenames (NOT file content) from one encoding to another.

  - Test filename encoding conversion (don't actually change the filename):
    convmv -f from_encoding -t to_encoding input_file

  - Convert filename encoding and rename the file to the new encoding:
    convmv -f from_encoding -t to_encoding --notest input_file

磁盘挂载错误(fedora上还没有遇到过!)

在没有弹出设备的情况下直接拨u盘等可移动磁盘,再次插上时就会出现这个错误!
解决办法:

sudo fdisk -l # 查看挂载情况
sudo ntfsfix /dev/sdb* # 修复错误

(.ppt .doc) to pdf

个人觉得,在linux下使用office系列都不怎么方便,我喜欢将文件转化为pdf后查看。通常可以打开相应的文件后选择export as pdf来转化,不过对处理课件这种通常有好几个文件的就显得很麻烦…

原文链接

  1. unoconv -f pdf *.ppt
  2. libreoffice --headless --invisible --convert-to pdf *.ppt

软件数据线(app)

https://askubuntu.com/questions/626941/how-to-access-my-androids-files-using-wi-fi-in-ubuntu

功能:不用数据线,实现电脑与手机文件互传

如果电脑手机均连接同一个wifi,那么就不用下载任何软件,打开手机上的文件管理,点击功能键,会有远程管理选项,如下图

打开后按提示操作即可,在电脑端的文件系统中输入对应的地址即可。

如果没有wifi,也可以通过下载一个名为软件数据线的app,用手机热点的方式来实现上述功能。

清除旧的内核kernel

原文

# 查看存在哪些内核
rpm -qa kernel\* | sort -V
# 查看当前使用的内核
uname -r
# 删除内核,(--latest-limit=-2 ,仅保留最新的2个)
dnf remove $(dnf repoquery --installonly --latest-limit=-2 -q)

gnome桌面自定义工具

gnome-tweaks-tool, 用来自定义gnome图形界面,虽然能进行的改动也不是很大,不过还是有一些很有意思的设置。

安装 gnome-tweaks:sudo dnf install gnome-tweaks

然后就自行探索吧

一个有意思的扩展程序可以在应用商店里面搜索下载,名字叫Dash to dock

linux 下的’photoshop’–gimp

音频处理–audacity

pdf remove passwd

tldr qpdf

终端翻译工具(需网络)

  • 将下面的代码保存到/usr/local/bin/fy目录下,fy为文件名

  • 添加执行权限sudo chmod +x /usr/local/bin/fy

使用方法:

  • 使用fy进入
  • 查询单个单词直接输入,多个使用,间隔,也支持查询短语
  • 使用exit退出
[yogurt@ss ~]$ fy
>>hello
################################### 
#  hello 你好 (U: helˈō E: həˈləʊ )
#  n. 表示问候, 惊奇或唤起注意时的用语
#  int. 喂;哈罗,你好,您好
#  n. (Hello) 人名;(法)埃洛
################################### 
>>hello, hi
################################### 
#  hello 你好 (U: helˈō E: həˈləʊ )
#  n. 表示问候, 惊奇或唤起注意时的用语
#  int. 喂;哈罗,你好,您好
#  n. (Hello) 人名;(法)埃洛
################################### 
################################### 
#  hi 嗨 (U: haɪ E: haɪ )
#  int. 嗨!(表示问候或用以唤起注意)
#  n. (Hi)人名;(柬)希
################################### 
>>bear in mind, hello
################################### 
#  bear in mind 记住
#  vi. 记住;考虑到
################################### 
################################### 
#  hello 你好 (U: helˈō E: həˈləʊ )
#  n. 表示问候, 惊奇或唤起注意时的用语
#  int. 喂;哈罗,你好,您好
#  n. (Hello) 人名;(法)埃洛
################################### 
>>exit
[yogurt@ss ~]$ 

也可以下载原作者的代码wget https://raw.githubusercontent.com/dantangfan/fanyi/master/fanyi.py 我只是修改了一下输入方式,更适合我用一点,代码如下:


#!/usr/bin/env python3.7

import sys
import json
import signal
import urllib.request as urllib
import threading
import pyperclip
import time

class Dict:
    key = '716426270'
    keyFrom = 'wufeifei'
    api = 'http://fanyi.youdao.com/openapi.do?keyfrom=wufeifei&key=716426270&type=data&doctype=json&version=1.1&q='
    content = None

    def __init__(self, argv):
        try:
            self.api = self.api + urllib.quote(argv)
            self.translate()
        except:
            print("Input invalid!!")

    def translate(self):
        content = urllib.urlopen(self.api).read()
        self.content = json.loads(content)
        self.parse()

    def parse(self):
        code = self.content['errorCode']
        if code == 0:  # Success
            try:
                u = self.content['basic']['us-phonetic'] # English
                e = self.content['basic']['uk-phonetic']
            except KeyError:
                try:
                    c = self.content['basic']['phonetic'] # Chinese
                except KeyError:
                    c = 'None'
                u = 'None'
                e = 'None'

            try:
                explains = self.content['basic']['explains']
            except KeyError:
                explains = 'None'

            print('\033[1;31m################################### \033[0m')
            # flag
            #print('\033[1;31m# \033[0m', self.content['query'], self.content['translation'][0], end="")
            print('\033[1;31m# \033[0m', self.content['query'], self.content['translation'][0])
            if u != 'None':
                print('(U:', u, 'E:', e, ')')
            elif c != 'None':
                print('(Pinyin:', c, ')')
            else:
                print()

            if explains != 'None':
                for i in range(0, len(explains)):
                    print('\033[1;31m# \033[0m', explains[i])
            else:
                print('\033[1;31m# \033[0m Explains None')
            print('\033[1;31m################################### \033[0m')
            # Phrase
            # for i in range(0, len(self.content['web'])):
            #     print self.content['web'][i]['key'], ':'
            #     for j in range(0, len(self.content['web'][i]['value'])):
            #         print self.content['web'][i]['value'][j]
        elif code == 20:  # Text to long
            print('WORD TO LONG')
        elif code == 30:  # Trans error
            print('TRANSLATE ERROR')
        elif code == 40:  # Don't support this language
            print('CAN\'T SUPPORT THIS LANGUAGE')
        elif code == 50:  # Key failed
            print('KEY FAILED')
        elif code == 60:  # Don't have this word
            print('DO\'T HAVE THIS WORD')


class Clipboard (threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.raw = "Welcome!!"

    def run(self):
        global exitflag
        while not exitflag:
            time.sleep(0.5)
            new_raw = pyperclip.paste()
            if new_raw != self.raw:
                self.raw = new_raw
                words = self.raw.split(",")
                print()
                for word in words:
                    Dict(word)
                print(">>>", end="", flush=True)


class Outinput (threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        global exitflag
        while not exitflag:
            raw = input(">>>")
            words = raw.split(",")
            if words == ['exit']:
                exitflag = True
            else:
                for word in words:
                    Dict(word)


def quit():
    print("bye!!")
    sys.exit()

if __name__ == '__main__':
    exitflag = False

    try:
        signal.signal(signal.SIGINT, quit)
        signal.signal(signal.SIGTERM, quit)
        
        thread1 = Clipboard()
        thread2 = Outinput()

        thread1.setDaemon(True)
        thread1.start()

        thread2.setDaemon(True)     
        thread2.start()
        
        thread1.join()
        thread2.join()
        print("bye!!")
    except:
        print()

nohup command > myout.file 2>&1 &

从.ipynb 文件中提取代码

jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值