Linux(Ubuntu)
宇宙379
C/C++,VC++
展开
-
Linux 0 1 2 文件描述符
linux 0,1,2文件描述符原创 2023-02-22 15:30:17 · 182 阅读 · 0 评论 -
export getenv动态获取导出变量
export getenv原创 2023-01-03 15:44:15 · 300 阅读 · 0 评论 -
linux shell实现守护进程脚本
守护进程的shell脚本转载 2022-12-20 14:27:53 · 496 阅读 · 0 评论 -
O_CLOEXEC的使用
父子进程文件描述符继承原创 2022-12-12 14:48:33 · 641 阅读 · 0 评论 -
mykernel 精简内核注释
源码链接本文只是注释了一下孟宁老师写的一个非常简单的mykernel精简内核。此内核源码仅仅100多行代码,只包括三个文件。通过三个文件mypcb.h、mymain.c和myinterrupt.c实现了一个简单的时间片轮转调度进程的精简内核。其中:mypcb.h 声明了进程控制块,即定义了一个结构体来说明进程的相关参数;mymain.c 有两个函数,函数my_start_kernel() 用来初始化进程;函数my_process()作为每个进程的入口地址,开始逐个调度执行进程;myinte原创 2022-01-21 14:27:18 · 1044 阅读 · 0 评论 -
Error opening device
调试qt项目的时候发现一个错误,Error opening device。看错误以为是硬件设备问题,查找这个字符没有。那肯定是加载了动态库,错误打印在动态库。deubg单步走发现是QJson解析错误,纳里???QJson解析和打开设备错误有啥关系?然后使用:ll@ubuntu:~/QJson/lib$ strings libqjson.so | grep opening发现确实有这个:Error opening device最后看github源码:https://github.com/原创 2021-03-22 14:32:17 · 3722 阅读 · 0 评论 -
僵尸进程
而僵尸进程就是指:一个进程执行了exit系统调用退出,而其父进程并没有为它收尸(调用wait或waitpid来获得它的结束状态)的进程。任何一个子进程(init除外)在exit后并非马上就消失,而是留下一个称外僵尸进程的数据结构,等待父进程处理。这是每个子进程都必需经历的阶段。另外子进程退出的时候会向其父进程发送一个SIGCHLD信号。 (在一个进程终止或者停止时,将SIGCHLD信号发送给...转载 2018-06-17 17:05:50 · 290 阅读 · 0 评论 -
Linux 多个信号 捕获
test.c#include <stdio.h>#include <signal.h&a原创 2018-06-17 11:26:56 · 1483 阅读 · 0 评论 -
Linux SIGUSR1和SIGUSR2 捕获
linux提供了2个用户自定义信号: SIGUSR1 默认处理:进程终止 SIGUSR2 默认处理:进程终止test.c#include <stdio.h>#include <signal.h>void handler();int main(int argc, char ** argv){ sigset( SIGUSR1 , handl...原创 2018-06-17 11:05:56 · 12007 阅读 · 1 评论 -
Linux SIGTERM 捕获
test.c#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include &amp;amp;amp;lt;signal.h&amp;amp;amp;gt;void handler();int main(int argc, char ** argv){ sigset( SIGTERM, handler ); printf( &amp;amp;q原创 2018-06-16 21:44:37 · 6434 阅读 · 0 评论 -
Linux SIGQUIT 捕获
test.c#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;signal.h&amp;gt;void quit_handler();int main(int argc, char ** argv){ sigset( SIGQUIT, quit_handler ); printf( &quot;Process_pid=[%d]\n&原创 2018-06-16 21:34:23 · 2723 阅读 · 0 评论 -
Linux SIGINT捕获
test.c#include &amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;amp;lt;signal.h&amp;amp;amp;amp;amp;amp;gt;void int_handler();int main(int argc, char ** argv){ sigset(原创 2018-06-16 21:27:23 · 12653 阅读 · 3 评论 -
ubuntu14.04 server adding swap on /dev/sda6 卡住
参考: https://blog.csdn.net/plunger2011/article/details/40380835。原因是显卡不支持高分辨率显示,解决方法:ssh远程登录,编辑/etc/default/grub,GRUB_CMDLINE_LINUX_DEFAULT=”” 改为GRUB_CMDLINE_LINUX_DEFAULT=”nomodeset” 退出执...转载 2018-06-23 15:40:02 · 463 阅读 · 0 评论 -
X,X11,Xorg,XServer,XClient,Xlib
1.X就是 X Window System ,1984年由MIT研发,它的设计哲学之一是:提供机制,而非策略。 主要特点:1,Server/Client网络模型。2,通过扩展使它保持”与时俱进”。 Linux内核是没有GUI图形显示的,X Window的目标就是提供GUI的显示。 为啥要命名为X呢,因为英文字母X就在W(indow)后面,戏称为下一版的新视窗之意。XFree86 『 X ...转载 2018-06-23 11:50:27 · 15506 阅读 · 0 评论 -
pstree 进程树
pstree 显示进程树1 从终端启动的进程树 ./test init───lightdm───lightdm───init───gnome-terminal───bash───test───8*[{test_+ 2 从shell启动的进程树 run.sh ./test init───lightdm───lightdm───init───gnome-terminal───bash──...原创 2018-06-23 11:36:30 · 600 阅读 · 0 评论 -
修改环境变量导致命令出错
切换到root账户: root@ubuntu:/# /usr/bin/sudo -i 用nano编辑器打开 .bashrc文件: root@ubuntu:~# /usr/bin/nano ~/.bashrc 把bashrc文件中添加的错误信息 去掉 比如我的bashrc文件中 最后一行 export PATH=。。。 把此行去掉bash功能恢复。试试ls,pwd. 最后 sour转载 2017-04-20 16:27:09 · 1197 阅读 · 0 评论 -
2,Linux入门
1. Linux主要应用于服务器领域,无需GUI;还有嵌入式领域,Linux的剪裁; job:linux系统管理员;linux程序员(PC程序,嵌入式开发)优点:开源免费,安全性好,对内存和文件管理优越,支持多用户/多线程----广阔天地,大有所为!缺点:操作相对困难;类Unix操作系统;常见Unix操作系统变种:- IBM:AIX- Sun:Solaris- HP:原创 2015-03-13 15:16:02 · 546 阅读 · 0 评论 -
1,Linux入门
1. Linux历史2. 文件结构3. 常用命令4. vim 操作5. gcc ,gdb,make...6. C/C++,QT...7. 内核编程原创 2015-03-11 22:21:02 · 450 阅读 · 0 评论 -
Linux 学习-初中高级班
学习 Linux 最重要的一环是什么? 其实是自己的学习心态~最重要的地方在于能够『刻苦耐劳~』原创 2015-03-28 12:01:14 · 560 阅读 · 0 评论 -
Linux 初级班(A) – 4. Linux 系统安装
Linux发行版本太多,这里介绍的是Ununtu的安装:http://www.linuxidc.com/Linux/2014-10/108430.htm 安装步骤一步一步来即可,最重要的就是磁盘分区了,这个理解稍微有点难度,可以参看鸟哥的linux私房菜相关内容。原创 2015-03-28 11:48:48 · 539 阅读 · 0 评论 -
Linux 初级班(A) – 3. Linux 常用命令
对 Linux 初级、中级、高级用户非常有用的 60 个命令http://www.cnblogs.com/didi/archive/2013/08/26/3282137.htmldate:显示日期cal:显示日历bc:计算器重要的几个热键[Tab](命令补齐), [ctrl]-c(终止程序), [ctrl]-d (exit:退出)man : 找男人 ;帮助! i原创 2015-03-28 11:46:14 · 453 阅读 · 0 评论 -
Linux 初级班(A) – 2. Linux简单目录结构
Linux 标准目录结构如下:1. 目录架构根目录: /· root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。· home --- 存储普通用户的个人文件 · ftp --- 用户所有服务· httpd· samba· user1· user2· bin --- 系统启动时需要的执行文件(二进制)· sbin -原创 2015-03-28 11:43:37 · 578 阅读 · 0 评论 -
Linux 初级班(A) – 1. Linux图形界面使用
Linux图形界面和Windows差不了多少,大同小异。由于习惯性的问题,我们可能觉得Linux的界面不是特别友好,其实Linux是很友好的,他高效且可以定制化。安装后参见帮助文档半天就可以大概熟悉界面操作了。比如发行版Ununtu,图片, 左边是常用程序的快捷方式,有火狐浏览器,office 等,最上面相当与windows的开始菜单,不过移到了上面而已。 操作和win原创 2015-03-28 11:39:48 · 543 阅读 · 0 评论 -
Why BIOS loads MBR into 0x7C00 in x86 ?
计算机按下电源后发生了什么1、按下开机键,连接开机键的一个导线就会输送一个信号给主板,请求开机。2、主板接收到这个信号,把信号转发给电源,要求电源开始供电,此时电源开始工作。3、电源给主板的各部分提供稳定的电压之后,发送“power_good”信号给BIOS。4、BIOS接受到信号之后,开始启动POST(Power On Self Test),检测电源供电是否稳定,检测硬件设备(比转载 2013-09-17 21:53:59 · 1033 阅读 · 0 评论 -
linux学什么
在我看来,Linux要学习以下内容:1. 了解Linux的历史(Unix-Minix-Posix-GNU计划-Linux);2. 安装一个Linux发行版,比如Ubuntu和Fedora等,熟悉他的环境和常用软件操作(openoffice等);3. 熟悉shell常用命令,脚本语言等;4. 熟悉Linux下C编程,vim或Emacs编辑器,gcc编译器,make,gdb;5.原创 2013-10-01 09:20:22 · 1287 阅读 · 2 评论 -
Ubuntu 动态库
创建dll.c文件,内容如下:#include <stdio.h>void dll_fun(void){ printf("hi,sir!\n");}创建动态库,分二步:gcc -c -fPIC dll.c //create dll.ogcc -shared -fPIC -o libdll.so dll.o //create libdll.so...原创 2017-08-01 17:16:52 · 738 阅读 · 0 评论 -
Ubuntu 静态库
Ubuntu静态库文件一般是a为后缀,如libxxx.a, 实际上是把全部o文件打包到一个文件中。o文件是指令的集合。 (.o: 目标文件,.a: 由目标文件构成的档案文件。) 1. 创建static.c文件,内容如下:#include <stdio.h>void static_fun(void){ printf("hi,sir!\n");}创建静态库,分二步:...原创 2017-08-01 17:10:03 · 2136 阅读 · 0 评论 -
ubuntu 黑屏和分辨率不能改变的问题
ctrl+alt+f1: vim /etc/default/grub 将 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 修改为 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash nomodeset” 更新GRUB: sudo update-grub sudo reboot # If you...原创 2017-12-01 10:46:53 · 2268 阅读 · 0 评论 -
ununtu core在中文目录下显示不出来?
coredump_test.c#include <stdio.h>int main(){ int *p=NULL; *p = 1; return 0;}run.shgcc -g coredump_test.c -o coretest./coretestulimit -c unlimitedsh run.sh在中文目录...原创 2018-06-15 11:43:44 · 163 阅读 · 0 评论 -
Eenable Ctrl-Alt-Backspace to kill the X server
中断输入:sudo dpkg-reconfigure keyboard-configuration前几次都是默认即可,最后一次选择yes即可,如下: 仅在ubuntu 14.04下测试过。 由于一个程序导致界面X server(Xorg)挂掉,所以不重启的话,需要重新启动界面(Xorg),一个方法就是进入文本模式(Ctrl+Alt+F1),kill 掉xorg的进程。 最好的...转载 2018-06-14 11:00:39 · 510 阅读 · 0 评论 -
linux coredump 调试
1.设置core文件的最大值 命令: ulimit - get and set user limits 参数: -c 设置core文件的最大值.单位:blocks (-core) ulimit -c :查看core文件的最大值,输出为0表示文件大小为0,即没有core dump文件输出。 ulimit -c unlimited :不限制生成core dump文件的大小。 ( 在li...原创 2018-06-11 14:48:17 · 255 阅读 · 0 评论 -
该软件包现在的状态极为不妥
dpkg: 处理软件包 teamviewer (–purge)时出错: 该软件包现在的状态极为不妥; 建议您在卸载它之前再重新安装一次sudo dpkg -i teamviewer_13.0.9865_amd64.deb (依赖报错) sudo apt-get install -f sudo dpkg -i teamviewer_13.0.9865_amd64.deb...原创 2018-06-04 15:11:48 · 2716 阅读 · 0 评论 -
云服务器(centos)ftp服务搭建
试用了一下免费云服务,感觉挺好的,哈哈(免费的都是好的)。 经验: 1, centos 的命令和ubuntu的差不多,主要是软件安装和更新等不同: ubuntu: 安装软件包: apt-get install package 更新软件包列表:apt-get update 升级软件包:apt-get upgrade centos: 安装软件包: yum install packag...原创 2018-05-16 11:54:39 · 447 阅读 · 0 评论 -
云服务器(centos) - git服务搭建
1.安装git sudo yum install git 2.添加git用户 sudo adduser git 3.在合适的目录初始化Git裸仓库,如 /home/ly/git_server/test.git: sudo git init –bare test.git 4.修改owner(默认是root)为git sudo chown -R git:git test.git 如此...原创 2018-05-17 09:47:06 · 235 阅读 · 0 评论 -
CMake
CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。因此CMake的编译基本就两个步骤: cmake make cmake 指向CM...转载 2018-04-13 15:33:52 · 424 阅读 · 0 评论 -
linux binutils
1 strings strings - print the strings of printable characters in files. 这个文件可以是文本文件(test.c), 可执行文件(test), 动态链接库(test.o), 静态链接库(test.a) strings main.c | grep main strings main | grep main st...原创 2018-04-01 21:09:31 · 1815 阅读 · 0 评论 -
stdin stdout stderr重定向
1. 每当运行一个新程序时,所有的shell都为其打开3个文件描述符。即标准输入(standard input),标准输出(standard output),标准出错(standard err). 如果不做特殊处理,则这三个描述符都链接向终端。(键盘输入(到终端),显示器(终端)输出)。 (每个进程生来就有三个文件描述符绑定在它们身上。分别指向标准输入、标准输出和标准错误。) 2.测试源码...原创 2018-03-22 11:14:52 · 967 阅读 · 0 评论 -
minicom使用
Install sudo apt-get install minicomsetting minicom基本操作如下: 1)需使用Ctrl+a 进入设置状态 2)按z进入设置菜单 (1)O键:打开配置选项;//! (2)W键:自动卷屏。当显示的内容超过一行之後,自动将後面的内容换行。这个功能在查看内核的啓动信息时很有用。 (3)C键:清除屏幕的显示内容; (4)B键:浏览minic转载 2017-12-06 11:45:27 · 434 阅读 · 0 评论