linux

最新文章

C或者C++设置Linux CPU affinity亲和性

在C或者C++可以使用sched_setaffinity(2)来设置Linux下 CPU affinity亲和性。如让进程在CPU 0和 CPU 2上跑,代码示例:#define _GNU_SOURCE#include <sched.h>cpu_set_t mask;CPU_ZERO(&mask);CPU_SET(0, &mask);CPU_SET(2, &

Ubuntu执行sudo命令时免输密码

执行visudo编辑sudo的配置$ sudo visudo配置文件显示如下:## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file

Linux使用shuf命令随机打乱文本文件的每一行

文本文件word.txt示例:theanlinuxubuntulifegoodbreeze使用shuf打乱文件内容 shuf words.txt > shuffled_words.txt注意shuf不会打乱源文件,需要把打乱的内容输出到新的文件中。结果可能为:breezethelinuxanubuntugoodlifeshuf详细使用查看说明

Linux使用ifconfig或lspci获取网卡信息

ifconfig和lspci是Linux用来获取网卡最常用的两个命令。ifconfig获取网卡使用ifconfig可以获取到多个设备和设备状态、信息。示例:[cc@localhost~]$ ifconfig      eth0      Link encap:Ethernet  HWaddr 00:0C:29:A4:5A:BF

Linux使用awk去掉重复值的几种情况

awk去掉重复的模式如下:!a[$0]++其中$0表示整行,$1表示第一列,$2表示第二列...文件如下:[root@localhost cc]# cat 1.txtadc 1 2a d aa 3 adfa d ba 3 adf1、去重第一列重复的行[root@localhost cc]# cat test.txt |awk '!a[$1]++{print}'adc 1 2a d a取重复的行第一

Linux shell脚本拼接字符串变量

在shell脚本里,使用${var}引用变量,在双引号表示的字符串里,${var}会使用变量的值替换,示例如下:foo="Hello"foo="${foo} World"echo "${foo}"> Hello World多个字符串变量:a='Hello'b='World'c="${a} ${b}"echo "${c}"> Hello World

Linux vim编辑器的配置及使用

Linux自带的编辑器有nano和vi,但vi编辑器使用起来很不方便,我们需要先下载vim编辑器,它是vi编辑器的升级版,更人性化些,接下来笔者就教大家如何在树莓派系统下安装和配置vim。安装更新apt源:sudo apt-get update安装vim编辑器:sudo apt-get install vim未配置vim时文档的显示无高亮,无行号,必须使用shift+:在命令模式下q退出。vim编

Linux文件硬链接和软链接ln命令的使用

ln 命令用于给文件创建链接,根据 Linux 系统存储文件的特点,链接的方式分为以下 2 种:软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。硬链接:我们知道,文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而

Linux使用halt命令关闭运行中操作系统

halt命令用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。 语法 halt [-n] [-w] [-d] [-f] [-i] [-p] 选项说明 -d:不要在wtmp中记录;-f:不论目前的runlevel为何,不调用shutdown即强制关闭系统;-i:在halt之前,关闭全部的

Centos 7搭建Docker环境

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。 卸载旧版本 旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本: sudo yum remov

CentOS7启动及排错

UEFi或BIOS初始化,运行POST开机自检 选择启动设备 引导装载程序, centos7是grub2 加载装载程序的配置文件:/etc/grub.d//etc/default/grub/boot/grub2/grub.cfg 加载initramfs驱动模块加载内核选项 内核初始化,centos7使用systemd代替init 执行initrd.target所有

Linux设置命令行ip代理

Linux设置命令行代理 有些场景下需要为系统设置代理,比如OpenCV3在进行cmake编译时需要在线从amazon下载一些第三方包。现在多数同学采用的代理方案应该都是基于socks5协议,而默认的终端工具支持的代理类型都是http或https,所以这里需要socks协议到http协议的转换,转换之后采用终端的代理变量设置http代理即可。 我的系统环境为ubuntu 16.04,其他系统类似

Linux下gcc的使用

在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件.而gcc则通过后缀来区别输入文件的类别,下面介绍gcc所遵循的部分约定规则. .c为后缀的文件,是C语言源代码文件; .a为后缀的文件,是由目标文件构成的库文件; .C,.cc,.cxx为后缀的文件,是C++源代码文件; .h为后缀的文件,是程序所包含的头文件; .i为后缀的文件

Linux 系统用户账号的管理

1. 用户账号的优势 帮助系统管理员对使用系统的用户进行跟踪 控制用户对系统资源的访问 帮助用户组织文件,为用户提供安全保护 2. 添加新的用户添加命令useradd 选项 用户名常用选项-d<目录>, 设置用户主目录,默认值为用户的登录名,并放在 /home 目录下;如果此目录不存在,则同时使用 -m 选项,可以创建主目录。-g<用户组>,指

CentOS 7 安装Redis 5

redis安装都是通过源码编译安装。安装redis在CentOS 上安装redis分三个步骤:下载,解压,编译$ wget http://download.redis.io/releases/redis-5.0.7.tar.gz$ tar xzf redis-5.0.7.tar.gz$ cd redis-5.0.7$ make注意:这里需要在CentOS上预先安装好gcc。编译成功后,会在redi

Linux查看显卡信息

Linux的lspci命令可以列出目前主机上面的硬件配备,vga则表示显卡。列出显卡信息如下:$ lspci | grep -i vga02:00.0 VGA compatible controller: NVIDIA Corporation GP102 [TITAN Xp] (rev a1)03:00.0 VGA compatible controller: NVIDIA Corporation

Linux查看GPU使用情况

Nvidia自带的nvidia-smi命令行工具,可以查看GPU的使用情况:nvidia-smi使用watch指令可以周期监控GPU的使用情况:watch -n 10 nvidia-smi-n选项后面指定执行命令的周期,以s为单位。 显示的信息分为两部分:第一部分:各块GPU使用情况,比如温度,显存,GPU利用率第二部分(Processes):使用GPU的进程及占用显存

Linux给sudo命令传密码

使用sudo命令时,终端会提示我们输入用户的密码。如果想避免每次sudo都需要密码,有以下方法:echo password | sudo -S rm -rf /tmp/*这个命令表示删除tmp目录下的文件,其中-S表示sudo会从标准输入读取密码。如果密码保存在文件里,可以使用cat读取,如:cat password.txt | sudo -S rm -rf /tmp/*

Linux查看及修改系统的资源限制命令ulimit

在Linux,查看系统对资源使用的显示可以使用命令ulimit,其中参数-a会列出所有的资源使用限制。[demo@server ~]$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0f

CentOS Linux SSH秘钥登录配置

登录Linux服务器,除了使用账号密码登录这种方式外,我们也可以使用ssh秘钥来登录。ssh秘钥登录Linux的方法大体是使用rsa生成公私密钥对,其中吧公钥放在服务器上,而私钥存放在客户端。这样可以达到免密登录。一、使用ssh-keygen生成RSA秘钥对$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in

Linux向文件末尾追加内容的几种方法

在Linux,有几种方法可以用来向文件的末尾追加内容。方法一、双大于号>>结合cat把一个文件的内容追加到另外一个文件的末尾:cat 1.txt >> 2.txt结合echo向文件的末尾追加内容:echo "hello" >> 2.txt注意:双大于号">>"表示内容追加,但大于号">"则是覆盖目标文件的内容。方法二、使用命令tee -atee

Shell脚本使用curl命令发送JSON数据

在Linux使用命令行工具curl发送JSON数据需要把content-type设置为“application/json”。-H "Content-Type: application/json示例curl -H "Content-Type: application/json" -X POST -d '{"username":"jack","age":10}' http://example.com/

Linux实时监控磁盘IO工具iotop

iotop和top类似,它是专用于实时监控磁盘的使用状况,包括PID、用户、I/O、进程等相关信息。安装Ubuntusudo apt-get install iotopCentOSsudo yum install iotop使用直接执行iotop就可以。iotop -o:只显示有io操作的进程-b:批量显示,无交互,主要用作记录到文件。-n NUM:显示NUM次,主要用于非交互式模式。-

Linux使用iftop实时监控网络流量

在Linux,我们可以使用top来实时监控cpu,内存的使用情况。iftop类似于top,它是用来实时监控系统的网络使用情况,包括监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。安装1、iftop依赖libpcap和libcurses。在CentOS上安装libpcap和libcurses:yum install flex byacc libpcap ncurses ncurs

Shell脚本boolean类型的使用注意点

推荐使用方式在shell脚本里,推荐按以下方式声明和使用布尔类型。bool=trueif [ "$bool" = true ]; thenif [ "$bool" = "true" ]; thenif [[ "$bool" = true ]]; thenif [[ "$bool" = "true" ]]; thenif [[ "$bool" == true ]]; thenif [[ "$bool

Linux排除特定文件打包压缩文件夹

Linux打包可以使用tar命令。如果要排除目录里的特定文件或文件夹,可以使用--exclude选项。$ tar --exclude='./folder' -zcvf /backup/filename.tgz .--exclude选项需要放在源文件和目的压缩包文件之前。排除多个文件/文件夹$ tar --exclude='./folder' --exclude='./upload/folder2'

shell命令在原文件查找和替换字符串

sed在文件直接替换字符串最简单的是使用sed,如sed -i -e 's/abc/XYZ/g' myfile.txt-i[SUFFIX], --in-place[=SUFFIX]表示就地编辑,如果后面提供了后缀,则会把原文件以提供的后缀做备份。-e script, --expression=script指定执行编辑的脚本,这里使用了替换表达式。表达式格式为s/被替换文本/新的文本/gperl也可

Linux kernel AESNI缓冲区溢出漏洞(CVE-2015-3331)

Linux kernel是一款开源操作系统。Linux kernel /arch/x86/crypto/aesni-intel_glue.c文件的‘__driver_rfc4106_decrypt()’函数中存在缓冲区溢出漏洞,允许本地攻击者可利用漏洞发送特制的IPSec数据包使系统崩溃。漏洞披露时间:2015-05-27 00:00:00解决方法更新kernel。在基于Redhat分发的Linu

Ubuntu检测包是否已经安装

在Ubuntu可以使用dpkg或者dpkg-query来检测软件包是否已经安装了。dpkg:dpkg -s <packagename> dpkg-query:dpkg-query -l <packagename> 如果要检测命令是属于哪个包,可以:dpkg -S `which <command>

Linux检测命令是否存在

如果要兼容POSIX的话可以使用command:command -v <the_command> 使用示例:if ! [ -x "$(command -v git)" ]; then   echo 'Error: git&nbs

Linux bash查找目录下最新的文件

方法一:ls使用-t按时间排序,然后使用head获取前面几条记录:ls -t b2* | head -1 方法二:使用unsetunset -v latest for file in "$dir"/*; do   [[ $file 

grep显示匹配以及前后的行

如果要指定匹配前后显示的行数,可以使用-B num指定匹配行前几行,以及使用-A num指定匹配行后几行,如:grep -B 3 -A 2 test demo.txt 如果前后行数一样,可以使用-C num指定前后显示的行数:grep -C 3 test demo.tx

Linux安装Git的简易方式

在Linux安装Git首先要确定Linux系统的分发版本,这里介绍两种基于Debian和基于Red Hat的分发版本。基于Debian(包括Ubuntu)分发的Linux安装Git在debian系列的Linux使用apt安装,指令如下:sudo apt-get update sudo apt-get upgrade sudo apt-ge

Linux统计目录下所有文件的行数

这里提供两种方法来统计目录下所有文件的行数:1、结合使用find和wc:find . -name '*.pl' | xargs wc -l 另外,此命令也可以改为:( find ./ -name '*.pl' -print0 | xargs -0&n

Arch Linux使用BlueZ连接蓝牙设备指令

下面是在Arch Linux上使用Blue Z 5.31连接蓝牙的指令。依赖安装需要安装一下软件:bluez: bluetoothdbluez-utils: bluetoothctl, rfcomm配对1、启动守护进程:systemctl start bluetooth 2、使用bluetoothctl配对power on agent&n

npm报错解决:Error: ENOSPC, write

在Linux使用npm安装mongodb报了ENOSPC的错误,错误信息:# npm install mongodb npm http GET https://registry.npmjs.org/mongodb npm http 200 https://registry.npmjs.org/mongodb

Linux使用scp拷贝多个文件到远程服务器

使用scp复制多个文件根据文件传输方向的不同,可以分为两种情况:远程服务器拷贝多个文件到本地本地上传多个文件到远程服务器1、远程服务器拷贝多个文件到本地$ scp username@remote.com:/from/path/\{a,b,c\} ./ 2、本地上传多个文件到远程服务器$ scp foo.txt bar.txt u