Clion 运行 C 出现 cmake-build-debug 找不到的解决方法
使用 Clion 连接远程服务器,利用服务器上的 c 编译器、make、cmake 进行 C 开发非常方便高效,但是,有时候编译时会出现 cmake-build-debug 找不到,导致无法编译运行 C 代码。下面给出解决方法。
使用远程服务器时,已经自动将本地的 CMakeLists.txt、main.c 和 其他 .c 文件同步到服务器上,但是,无法同步本地的 cmake-build-debug 文件夹,该文件夹是编译运行 C 程序的。尝试通过两种方法解决。
手动远程服务器上生成首先通过 SSH 连接到远程服务器上,并 cd 到 C 工程目录,然后,创建文件夹 cmake-build-debug
1mkdir cmake-build-debug
最后,使用服务器的 cmake 生成 make 文件
12cd cmake-build-debugcmake ..
在 Clion 上自动生成其实 Clion 上给出了自动生成 make file 的工具。
在 Clion 窗口最下面一行,找到 CMake,然后点击 CMake 窗口左上角的同步(Reload CMake Proje ...
使用 xrdp 远程连接 Ubuntu
我这里有一个需求就是使用 Windows10 远程连接 Ubuntu 的桌面系统,但是,Ubuntu 服务器在机房且没有连接显示器,只能通过终端 SSH 远程连接。然而,处于一些需求,需要远程连接,而 Teamviewer 在远程服务器没有连接显示器的情况下会出现灰屏,无法使用。因此,使用如下方法来解决。
安装 xrdp12sudo apt update && sudo apt -y upgradesudo apt install xrdp
安装 xfce12sudo apt install -y xfce4sudo apt install -y xfce4-goodies
配置 xrdp1234567891011121314sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.baksudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.inisudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /e ...
JupyterLab 的常用快捷键
JupyterLab 是一款强大的科学生成工具,作为一种基于 WEB 的集成开发环境,可以方便的编写 Python、R、C、Java 等等代码,并且可以操作终端,查看文档、图片等,最优秀的是可以编辑 markdown 文本,这样在代码上下文中书写 markdown 文档。而 Notebook 是我们最常使用的,下面介绍一些常用的 JupyterLab 中 Notebook 快捷键,方便快速编写代码和书写 markdown 文档。
模式介绍在 JupyterLab 的 Notebook 中有两种模式,分别是编码模式(Edit mode)和命令模式(Comman mode)。编码模式就是光标在 code 栏中闪烁时的模式,而命令模式就是点击 code 栏中括号后,code 栏变成灰色时的模式。
1在编码模式下可以通过按 Esc 键进入命令模式
1在命令模式下可以通过按 Enter 键进入编码模式
运行代码这里介绍运行一个 code 栏代码的方法。
1Ctrl + Enter 运行本栏代码,保持在本栏并进入命令模式
1Shift + Enter 运行本栏代码,跳到下一栏并进入命令模 ...
终端代理方法
d7420555dbd47e034be0c72be203a7e34cc847158fcd06071192d6acfe0a008062facdf2e53363771f35b2730820ce75a8361cb2b8c30108c1158e8c7e406feb694fdcd1924daf221192b014ea3530eadbab102f8a52c2c9197c2ea3ce51ea56d3aa578ec0e9233deaccebf77a593b1b7f6c5ca547ab5bb0ff94cc78e7975858d7988c330623703e712725c2d63e40455f714d4e522a38b743daa02fd7651d3cb9b190a5ba3f7f61ebe0934fc741e65624792caf8327d29c7fb2bb233526308c68aef50ac50c4f62b6c583cda3de05cd01367a1a20d4151a4edc936ab8d3706fd10ac7050c579482439a6e8c3a0bef362c7ff71ba9627023f ...
Linux 系统的运行级别及设置
Linux 系统默认有多种运行级别,如 Ubuntu 系统有 7 种运行级别,通过设置不同的运行级别,可以对计算机进行访问控制(如单用户模式,多用户模式等)、关机、重启、关闭图形界面、打开图形界面等。下面分别对这些运行级别进行介绍,并给出如何使用,如关闭图形界面,节省计算资源。
runlevel查看当前计算机的运行级别
123$ runlevelN 3# 运行级别是 3,说明是多用户控制台模式
通过命令可以查看各个运行级别信息
123456789101112131415$ man runlevelTable 1. Mapping between runlevels and systemd targets ┌─────────┬───────────────────┐ │Runlevel │ Target │ ├─────────┼───────────────────┤ │0 │ poweroff.target │ ├─────────┼───────────────────┤ ...
使用 Java 命令运行 jar 包
Java 使用 Maven 等 打包好程序为 Jar 后,如何运行,这里根据 Jar 包中是否有主类 (main class)入口,来分两种方法运行。
Maven 打包 Java 代码这种方法打包的 JAR 包默认不包含主类入口
1234# 在工程代码主目录下mvn clean package# clean 是清除之前打包的残留# package 是打包
利用 Artifacts 打包带有主类入口的 Jar 包File—》Project Structure—》Artifacts—》+—》JAR—>from module with dependencies—>Main Class—>copy to the output directory and link via manifest—>Directory for META-INF/MANIFEST.MF 选择 resources文件夹—》ok—>ok—>Build—>Build Artifacts—>Build
当不选主类或者 Directory for META-INF ...
在 Windows10 上配置 Java JDK 14 开发环境
Java 是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级 Web 应用开发和移动应用开发。任职于 Sun 微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为 Oak,目标设置在家用电器等小型系统的编程语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。随着1990年代互联网的发展,Sun 公司看见 Oak 在互联网上应用的前景,于是改造了 Oak,于1995年5月以 Java 的名称正式发布。后来 Sun 公司被甲骨文公司并购,Java 也随之成为甲骨文公司的产品。Java 伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java 编程语言的风格十分接近 C++ 语言。继承了 C++ 语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了 C++ 中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。Java 不同于一般的编译语言或解释型语言。它首先将源代码编译成字节码,再依赖各种不同平台上的虚拟机来解释执行字节码,从而具有“一次编写,到处运行”的跨平台特性。现时,移动操作系 ...
因 sudoers 出错无法使用 sudo 的解决方法
Linux 上修改 /etc/sudoers 导致文件出错,此时只要能够修改该文件的错误即可,但是普通用户 jinzhongxu 无法使用 sudo 命令,且无法使用 root 用户登陆。因此,需要能够进行 /etc/sudoers 修改,并更正错误即可。以下给出一种解决方法。
解决方案
使用 ssh 连接普通用户 jinzhongxu,并打开两个终端 shell:t1, t2
在 t1 输入命令:
echo $$
并把返回的数字拷贝下来
在 t2 输入命令:
pkttyagent --process 拷贝的数字
再在 t1 中输入
pkexec visudo
此时 t1也会卡住
再切换到 t2,输入用户 jinzhongxu 的密码
再次切换到 t1,发现此时正在打开 /etc/sudoers 等到修改,修改 /etc/sudoers 中出错的内容并保存。
参考文献
Ubuntu改坏sudoers后无法使用sudo的解决办法
Linux 定时任务 crontab
在 Linux 上执行定时任务具有便利性,可以使用命令 crontab 来实现。如因为服务器资源紧张需要错峰使用,想要在晚上才进行具有较大运行压力的任务,或者对于执行任务有具体时间要求。本篇以 Ubuntu 20.04 为例进行介绍,同样适用于 Debian/MacOS/CentOS/Red Hat 等系统。
crontab可以使用如下命令查看 crontab
12345678910111213141516171819202122232425262728293031323334353637383940➜ ~ cat /etc/crontab# /etc/crontab: system-wide crontab# Unlike any other crontab you don't have to run the `crontab'# command to install the new version when you edit this file# and files in /etc/cron.d. These files a ...
Linux 文件和目录的默认权限和特殊权限
对于 Linux 用户而言,当创建文件或目录时都会自动为该文件或目录分配权限,该权限就是默认权限。对于 Linux 文件和目录,除了具有默认权限外,还有特殊权限。默认权限和特殊权限在使用 Linux 系统时非常重要,特别是和团队开发时尤为重要。本篇就介绍一下如何查看和设置默认权限和特殊权限。以 Ubuntu 20.04 为例进行介绍。
文件默认权限:umask查看用户的默认权限
1234➜ ~ umask002➜ ~ umask -Su=rwx,g=rwx,o=rx
以 umask 显示的是数字,加上参数 -S (Symbolic) 显示的是字符。含义解释:文件权限有 r, w, x 三个,分别对应数字 4, 2, 1,002 表示创建文件、目录时剔除 w 写权限。如 umask -S 显示的是创建目录时的默认权限,从上面命令可以看到其他用户 o 缺少 w 写权限。值得注意的是,文件默认是没有可执行权限 x 的。即文件的默认最高权限是 -rw-rw-rw-,目录的默认最高权限是 drwxrwxrwx,因此,剔除 w 写权限时,用户新创建的文件的默认权限是 -rw-rw-r–, ...
利用 jupyterhub 搭建多用户 jupyterlab 开发环境
使用 jupyterlab 开发 python 程序非常方便,但是只能单用户访问。想要多用户共用服务器使用 jupyterlab 可以采用 jupyterhub 实现。下面演示在 CentOS 上搭建 jupyterhub 实现多用户访问 jupyterlab。本篇所有命令均使用 root 用户运行,jupyterhub 版本小于 2.0.0,对于 jupyterhub 2.0.0 的部署方法请参看这篇。
安装 Miniconda1234567891011121314151617181920212223yum install wget -ywget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shchmod +x Miniconda*.sh# 安装在 /usr/local/miniconda 目录下./Miniconda*.shrm -rf Miniconda*.sh# 将 miniconda 命令目标添加到系统环境变量中,使得所有用户均可访问echo 'export PATH=/u ...