Linux常用命令大全(非常全!!!)

2023-11-05

前言

本文特点

  • 授之以渔:了解命令学习方法、用途:不再死记硬背,拒绝漫无目的;

  • 准确无误:所有命令执行通过(环境为centos7),拒绝复制粘贴;

  • 实用性高:命令多为实际工作中用到的,实例讲解,拒绝纯理论;

  • 条理清晰:分类归纳,快速找到想要的命令,拒绝天马行空;

  • 总结性强:只列常用语法,易错情况强调,拒绝照搬照套。

学前须知

  • 适用人群:开发、测试、运维
  • 文档用途:linux入门学习、命令备忘录、面试复习
  • 学习途径:书籍(鸟哥的Linux私房菜)、视频:慕课网等、百度谷歌搜索、qq群等
  • 学习环境:虚拟机VirtualBox+centos7
  • 学习记录:多动手,多联想,多记录,特别是遇到问题时
  • 遇到问题:百度谷歌搜索、系统日志(/var/log/)、qq群

学前理论

  • linux主要特征 :一切且文件(目录、硬盘等都是文件);硬件都在/dev 目录,如硬盘、U盘为/dev/sd[a-d]; /dev/sr0(/dev/cdrom)是光驱的设备名(df命令查看),为设备文件,代表的是光驱本身,得把这个设备挂载到目录下(一般为/mnt)(文件系统的临时挂载点),才能对设备上的文件进行读写等操作;

  • 不懂的命令 :man 命令(查用法、全称),只记得关键词,可用man -k 关键词;

  • Linux命令常用结构 :Command [-option] [argument]
    Command:即是要运行的命令的本身,说白了就是一个软件(程序);
    Option:是选项(可选),选项是控制命令运行状态和行为的(可多个选项一起,如df -hT);
    Argument:是参数(可选),是命令要操作对象如文件、路径、数据、目录等;
    在指令的第一部分按[tab]键一下为[命令补全],两下为所有命令选择,在非第一部分按[tab]键两下为[文件补全];

  • linux命令区分大小写

开关机

  • sync :把内存中的数据写到磁盘中(关机、重启前都需先执行sync)
  • shutdown -r nowreboot :立刻重启
  • shutdown -h now :立刻关机
  • shutdown -h 20:00 :预定时间关闭系统(晚上8点关机,如果现在超过8点,则明晚8点)
  • shutdown -h +10 :预定时间关闭系统(10分钟后关机)
  • shutdown -c :取消按预定时间关闭系统

系统信息

  • who am i :查看当前使用的终端
  • who 或 w : 查看所有终端
  • uname -m :显示机器的处理器架构(如x86_64)
  • cat /proc/version :查看linux版本信息
  • uname -r :显示正在使用的内核版本
  • lsb_release -a :查看系统发行版本(如CentOS7)
  • rpm -qa | grep kernel-devel :查看kernel-devel版本(安装软件时编译内核用,故需要保持内核版本一致性)
  • yum install -y "kernel-devel-uname-r == $(uname -r)":安装和Linux内核版本匹配的kernel-devel
  • hostnamectl set-hostname 主机名:修改主机名(包括静态、瞬态和灵活主机名,如有域名解析记得手动更新/etc/hosts)
  • date :显示系统日期 (date +%Y/%m/%d : 显示效果如2018/01/01)
  • date 070314592018.00 :设置时间(格式为月日时分年.秒 )
  • clock -w :将时间修改保存到 BIOS
  • cal 2018 :显示2018年的日历表
  • clear :清空命令行
  • ifconfig :显示或设置网卡(查ip等)(类似windows中ipconfig)
  • ping -c 3 www.baidu.com :测试百度与本机的连接情况( -c 3表示测试3次)
  • cat /proc/cpuinfo :显示CPU的信息
  • cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l :查看物理CPU个数
  • cat /proc/cpuinfo| grep "cpu cores"| uniq :查看每个物理CPU的核数
  • cat /proc/cpuinfo| grep "processor"| wc -l :查看逻辑CPU个数即线程数

系统性能

  • top :动态实时显示cpu、内存、进程等使用情况(类似windows下的任务管理器)
  • top -d 2 -p 7427 :-d为画面更新的秒数,默认5秒,-p为指定进程pid的信息
  • vmstat 2 10 :每隔2秒采集一次服务器状态,采集10次(查看内存、io读写状态、cpu)
  • free -h :查看系统内存及虚拟内存使用情况
  • df -h :显示磁盘的空间使用情况
  • iostat :可查io读写、cpu使用情况
  • sar -u 3 5 :查看cpu使用情况(3秒一次,共5次)
  • sar -d 2 3 :评估磁盘性能
  • ps aux|grep firefox :获取火狐的进程号(PID)(可查看进程占用cpu、内存百分比及进程触发指令的路径)
  • kill -9 进程号 :强制杀死进程
  • systemctl :查看正在运行的服务

文件和目录

​ cd:是Change Directory的缩写,用来切换工作目录,语法:cd [相对或绝对路径或特殊符号]

  • cd :进入该用户的主目录 ~(root用户为/root,其他用户为/home/用户名)
  • cd .. :返回上一级目录(注意要空格)
  • cd - :返回上次所在目录
  • cd / :返回根目录 (绝对路径)
  • cd ./目录1/目录2 :进入当前目录下的子目录(相对路径)
  • pwd :显示工作路径(Print Working Directory 的缩写)

    ​ls:是List的缩写,用于列出目录下的文件,语法:ls [选项][目录或文件名]

  • ls -a :列出文件下所有的文件,包括以“.“开头的隐藏文件
  • **ls -lh *.log** :列出文件的详细信息(.log结尾,*为通配符代表任意多个字符)
  • file 文件或目录 :显示文件的类型(目录、text、zip、shell脚本等)

  • mkdir dir1 :创建目录(dir1)(mkdir为make directory的缩写)
  • mkdir -p ./dir1/dir2 :递归创建目录(-p:父目录不存在时,同时建立)
  • touch a.txt :创建文件a.txt

    ​rm:可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉; 语法:rm (选项)(参数)(注:如果参数中含有目录,则必须加上-r选项);

  • rm 文件 :删除文件
  • rm -r 目录或文件 :删除目录(及目录下所有文件)(非空也可以)
  • rm -rf 目录或文件 :强制删除,如:rm -rf * 为删除当前目录下所有文件
  • find -inum 1842601 -exec rm -rf {} ; :删除乱码文件或目录(会提示找不到此文件或文件夹但其实已经删除了)(上传中文文件会乱码,rm命令删除不了)(先使用ls -i命令找到inode,即文件或目录前面的数字字符串,如1842601;)

    ​mv:是move的缩写,可以用来剪切移动文件、目录或者将文件改名;
    语法:mv 源文件 目标文件(改名)或目录(移动);

  • mv a b :移动或者重命名一个文件或者目录(存在即移动目录或覆盖文件,不存在即改名)
  • mv /opt/git/g /opt/a :移动g到opt目录下并改名为a(a目录不存在,若存在则为移动g到a目录下)
  • mv -t ./test a.txt b.txt :移动多个文件到某目录下

    ​cp:复制文件或目录;cp命令可以将单个或多个文件复制到一个已经存在的目录下;
    常用:cp -ai 文件或目录 目标目录;

  • cp -ai /opt/abc /opt/git/ :复制abc目录(或文件)到git目录下(选项a表示文件的属性也复制、目录下所有文件都复制;i表示覆盖前询问)

    ​ln:link的缩写,用于建立硬(软)链接,常用于软件安装时建软链接(类似快捷方式)到PATH;
    语法:ln [-s] 源文件 目标文件

  • ln -s /opt/a.txt /opt/git/ :对文件创建软链接(快捷方式不改名还是a.txt)
  • ln -s /opt/a.txt /opt/git/b :(快捷方式改名为b)(下面的一样可以改名)
  • ln -s /opt/mulu /opt/git/ :对目录创建软链接
  • ln /opt/a.txt /opt/git/ :对文件创建硬链接

文件权限

  • chmod [-R] 777文件或目录 :设置权限(chmod a+rwx a=chmod ugo +rwx a=chmod 777 a)

    ​注: r(read)对应4,w(write)对应2,x(execute)执行对应1;
    -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改)

  • chmod [{ugoa}{+-=}{rwx}][文件或目录] :如chmod u-w,g+x,o=r test.txt为user(拥有者)去掉写权限,group(所属组)加上执行权限,other(其他人)权限等于只读;
  • chown [-R] admin:root /opt/ :变更文件及目录的拥有者和所属组(-R递归处理所有文件和文件夹,admin为拥有者,root为所属者)

文件查找

  • locate a.txt :在系统全局范围内查找文件名包含a.txt字样的文件(比find快);

​locate:原理是updatedb会把文件系统中的信息存放到数据库databases中(但一般一天才执行一次,所以locate找不到新创建的文件,需要先手动执行updatedb,再执行locate),locate从数据库中读数据;

​ find:在目录结构中搜索文件,并执行指定的操作
语法:find pathname -options [-print -exec ...]
pathname :为 find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录(find查找范围为目标目录及其子目录所有文件及目录);
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格;
-print: find命令将匹配的文件输出到标准输出;

  • find /home -mtime -2 :在/home下查最近2*24小时内改动过的文件
  • find . -size +100M :在当前目录及子目录下查找大于100M的文件
  • find . -type f :f表示文件类型为普通文件(b/d/c/p/l/f 分别为块设备、目录、字符设备、管道、符号链接、普通文件)
  • find . -mtime +2 -exec rm {} ; :查出更改时间在2*24小时以前的文件并删除它**
  • find . -name '*.log' -exec grep -i hello {} \; -print :在当前目录及子目录下查出文件名后缀为.log的文件并且该文件内容包含了hello字样并打印,-exec 命令 {} \表示对查出文件操作,-i表示不区分大小写;
  • find . -name '*.log'|grep hello :在当前目录及子目录下查出文件名后缀为.log的文件并且文件名包含了hello字样(grep用来处理字符串);

  • grep -i 'HELLO' . -r -n :在当前目录及子目录下查找文件内容中包含hello的文件并显示文件路径(-i表示忽略大小写)

  • which java :在环境变量$PATH设置的目录里查找符合条件的文件,并显示路径(查询运行文件所在路径)
  • whereis java :查看安装的软件的所有的文件路径(whereis 只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令)

查看文件的内容

  • cat [-n] 文件名 :显示文件内容,连行号一起显示

  • less 文件名 :一页一页的显示文件内容(搜索翻页同man命令)

  • head [-n] 文件名 :显示文件头n行内容,n指定显示多少行

  • tail [-nf] 文件名:显示文件尾几行内容,n指定显示多少行,f用于实时追踪文件的所有更新,常用于查阅正在改变的日志文件(如tail -f -n 3 a.log 表示开始显示最后3行,并在文件更新时实时追加显示,没有-n默认10行)

  • sed -n '2,$p' ab :显示第二行到最后一行;
  • sed -n '/搜索的关键词/p' a.txt :显示包括关键词所在行
  • cat filename |grep abc -A10 :查看filename中含有abc所在行后10行(A10)、前10行(B10)内容
  • less a.txt|grep git :显示关键词所在行,管道符”|”它只能处理由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后传递给下一个命令,作为标准的输入;

  • cat /etc/passwd |awk -F ':' '{print $1}' :显示第一列

文本处理

  • ls -l>file :输出重定向>(改变原来系统命令的默认执行方式):ls -l命令结果输出到file文件中,若存在,则覆盖

  • cat file1 >>file :输出重定向之cat命令结果输出追加到file文件(>表示覆盖原文件内容,>>表示追加内容)

  • ls fileno 2>file : 2>表示重定向标准错误输出(文件不存在,报错信息保存至file文件);

  • cowsay <a.txt :重定向标准输入’命令<文件’表示将文件做为命令的输入(为从文件读数据作为输入)

  • sed -i '4,$d' a.txt :删除第四行到最后一行($表示最后一行)(sed可以增删改查文件内容)
  • sed -i '$a 增加的字符串' a.txt :在最后一行的下一行增加字符串
  • sed -i 's/old/new/g' a.txt :替换字符串;格式为sed 's/要替换的字符串/新的字符串/g' 修改的文件

  • vim 文件:编辑查看文件(同vi)

用户与权限

  • useradd 用户名 :创建用户
  • userdel -r 用户名 :删除用户:(-r表示把用户的主目录一起删除)
  • usermod -g 组名 用户名 :修改用户的组
  • usermod -aG 组名 用户名 :将用户添加到组
  • groups test :查看test用户所在的组
  • cat /etc/group |grep test :查看test用户详情:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

  • passwd [ludf] 用户名 :用户改自己密码,不需要输入用户名,选项-d:指定空口令,-l:禁用某用户,-u解禁某用户,-f:强迫用户下次登录时修改口令

  • groupadd 组名 :创建用户组
  • groupdel 用户组 :删除组
  • groupmod -n 新组名 旧组名 :修改用户组名字

  • su - 用户名:完整的切换到一个用户环境(相当于登录)(建议用这个)(退出用户:exit)
  • su 用户名 :切换到用户的身份(环境变量等没变,导致很多命令要加上绝对路径才能执行)
  • sudo 命令 :以root的身份执行命令(输入用户自己的密码,而su为输入要切换用户的密码,普通用户需设置/etc/sudoers才可用sudo)

磁盘管理

  • df -h :显示磁盘的空间使用情况 及挂载点
  • df -h /var/log :(显示log所在分区(挂载点)、目录所在磁盘及可用的磁盘容量)

  • du -sm /var/log/* | sort -rn : 根据占用磁盘空间大小排序(MB)某目录下文件和目录大小

  • fdisk -l :查所有分区及总容量,加/dev/sda为查硬盘a的分区)
  • fdisk /dev/sdb :对硬盘sdb进行分区

  • mount /dev/sda1 /mnt :硬盘sda1挂载到/mnt目录(mount 装置文件名 挂载点)
  • mount -t cifs -o username=luolanguo,password=win用户账号密码,vers=3.0 //10.2.1.178/G /mnt/usb :远程linux 共享挂载windows的U盘,G为U盘共享名,需设置U盘共享
  • mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :挂载iso文件
  • umount /dev/sda1 :取消挂载(umount 装置文件名或挂载点)

压缩、解压和打包备份

​ 单纯tar仅为打包(多个文件包成一个大文件),加上参数-j(bzip2格式.bz2)、-z(gzip格式.gz)可以备份、压缩(-c)、解压(-x),备份一般比压缩多加参数-p(保留原本文件的权限与属性),-C可以指定解压到特定目录;bzip2、gzip只能对单一文件压缩;

  • file 文件名 :查文件类型(可看是用哪一种方式压缩的)

  • tar -zxvf a.tar.gz -C ./test :解压tar.gz到当前目录下的test目录
  • tar -zcvf /opt/c.tar.gz ./a/ :压缩tar.gz(把当前目录下的a目录及目录下所有文件压缩为 /opt/目录下的c.tar.gz,这样tar -zxvf c.tar.gz解压出来带有目录a)

  • tar -jxvf a.tar.bz2 :解压tar.bz2(到当前目录)
  • tar -jcvf c.tar.bz2 ./a/ :压缩tar.bz2(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.tar.gz2)

  • unzip a.zip :解压zip(到当前目录)
  • unzip -o mdmtest.war -d /opt/mdm :推荐使用unzip解压war包(-o覆盖原有文件,-d指定文件解压后存储的目录)
  • zip -r c.zip ./a/ :压缩zip(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.zip

  • bzip2 -k file1 : 压缩一个 'file1' 的文件(-k表示保留源文件)(bzip2格式,比gzip好)
  • bzip2 -d -k file1.bz2 : 解压一个叫做 'file1.bz2'的文件

  • gzip file1 : 压缩一个叫做 'file1'的文件(gzip格式)(不能保留源文件)
  • gzip -9 file1 : 最大程度压缩
  • gzip -d file1.gz : 解压缩一个叫做 'file1'的文件

软件安装

  • 尽量用yum源(apt-get)安装,不行就rpm、deb包安装,能不手动编译的就不要手动编译;
  • dpkg只能安装已经下载到本地机器上的deb包. apt-get能在线下载并安装deb包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是dpkg工具所不具备的;
  • rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的;
  • yum、rpm安装文件分布在/usr的bin、lib、share不同目录,不用配置PATH,直接用命令,但可用命令卸载更新;
  • 手动编译软件,默认位置为/usr/local下不同子目录下,不用配置PATH直接用命令(手动指定安装路径需要加PATH),使得软件更新和删除变得很麻烦。编译安装的软件没有卸载命令,卸载就是把所有这个软件的文件删除。

二进制(Binaries)包

yum安装

​ 在线下载并安装rpm包,适用于CentOS、Fedora、RedHat及类似系统

  • yum install epel-releas :安装第三方yum源EPEL(企业版 Linux 附加软件包的简称)
  • yum repolist enabled :显示可用的源仓库(/etc/yum.repos.d/目录下配置)
  • yum install yum-fastestmirror :自动选择最快的yum源
  • yum list installed |grep java :列出已安装的软件(查看已安装的JDK)
  • yum remove java-1.8.0-openjdk.x86_64 :卸载软件(卸载JDK)
  • yum list java* :列出已安装和可安装的软件(查看yum库中的JDK包)
  • yum install [-y] java-1.8.0-openjdk :安装软件JDK(-y自动安装)(推荐这种方式安装)
  • yum install docker-ce-18.03.1.ce :安装指定版本的软件(已知docker-ce.x86_64 18.03.1.ce-1.el7.centos,则rpm包名为docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm)
  • yum check-update [kernel] :列出所有可更新的软件(检查更新kernel)
  • yum update tomcat :更新软件(可所有)
  • rpm -ql 软件名称 :查询yum安装路径(软件名称可通过rpm -qa|grep java)
  • yum info kernel :查看软件(kernel)的信息
  • yum clean all :(清除缓存,使最新的yum配置生效)
yum安装常用工具
  • yum install -y unzip zip :安装压缩、解压缩命令(zip、unzip)
rpm包手动下载安装

​ yum中没有时用,适用于CentOS、Fedora、RedHat及类似系统;

  • wget -P /opt https://网址 :下载到/opt目录

  • rpm -ivh wps-office-版本.x86_64.rpm :安装rpm包(包要先下载)(要先装依赖包)
  • rpm -e wps-office :卸载软件(注意不要软件名不要版本号)
  • rpm -qa |grep wps :查看安装的rpm包
  • rpm -ql 软件名称 :查看rpm包安装路径(软件名称可通过rpm -qa|grep java)

apt方式安装

​ 安装deb包,类似yum安装,适用于Debian, Ubuntu 以及类似系统;

  • apt-get install aptitude :安装aptitude工具,实现依赖自动安装,依赖版本自动降级或升级
  • aptitude install 软件 :安装软件(推荐这种方式安装)

  • apt-cache search 软件 :搜索软件
  • apt-get install 软件 :安装软件
  • apt-get purge 软件 :卸载软件(包括配置文件,只删除软件purge换成remove)
  • apt-get upgrade :更新所有已安装的软件包
  • apt-get update :升级列表中的软件包
  • apt-get clean :从下载的软件包中清理缓存

deb包安装

​ 适用于Debian, Ubuntu 以及类似系统;

  • dpkg -i package.deb :安装一个 deb 包
  • dpkg -r package_name :从系统删除一个 deb 包
  • dpkg -l |grep chrome :查询系统中所有已经安装的 deb 包
  • dpkg -L 软件名称 :查软件安装的文件
解压即用

​ 大多数非开源的商业软件都采取这种办法;

​ 二进制(Binaries)包如apache-jmeter-3.3.tgz,下载复制解压到/opt,然后然后将该软件的 bin 目录加入到 PATH 中即可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin);

软件自己的模块/包管理器

​ 如python:系统的源中不可能包含该软件的所有模块; 系统的源中该软件的模块的更新要远远滞后于最新版本;手动安装python,并用Python 自带的 pip 安装模块(类似yum);

  • pip install redis :安装python软件包redis
  • pip unstall redis :卸载
  • pip show --files redis :pip查看已安装的包
  • pip list --outdated :检查更新

源代码(Source)包

编译安装

​ 源代码包(一般有install文件)如hello-2.2.tar.bz2,下载复制到/opt;

    • tar -jxvf hello-2.2.tar.bz2 :解压
    • ./configure --prefix=/opt/软件目录名称 :为编译做好准备,加上 prefix 手动指定安装路径
    • make :编译
    • make install :安装
    • make clean :删除安装时产生的临时文件
    • vim /etc/profile export PATH=$PATH:/opt/目录/bin :手动指定安装路径需要加path
    • hello :执行软件:看INSTALL和README文件(是否源码包、如何安装、执行都看这两个)
    • rm -rf 软件目录名称 :卸载软件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux常用命令大全(非常全!!!) 的相关文章

  • 查询 MongoDB 集合中的字段。

    我正在尝试查询 mongodb 集合中的特定字段 这是我的代码和输出 Mongo m new Mongo DB db m getDB mydb DBCollection coll db getCollection student addin
  • Java 卡布局。多张卡中的一个组件

    一个组件 例如JLabel 在多张卡中使用CardLayout 目前看来该组件仅出现在它添加到的最后一张卡上 如果有办法做到这一点 我应该吗 这是不好的做法吗 或者有其他选择吗 你是对的 它只出现在 添加到的最后一张卡 中 但这与CardL
  • 在哪里保存选项值、重要文件的路径等[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在创建一个程序 需要设置一些选项值以及图像文件的一些路径 SQLite 数据库的路径 有关各种按钮上文本的一些信息 有关要使用哪个数据库的信
  • 无法访问“不安全”java方法的java表达式语言

    我正在开发一个项目 让用户向服务器提交小 脚本 然后我将执行这些脚本 有很多脚本语言可以嵌入到Java程序中 例如mvel ognl uel clojure rhino javascript等 但是 据我所知 它们都允许脚本编写者调用Jav
  • 这个等待通知线程语义的真正目的是什么?

    我刚刚遇到一些代码 它使用等待通知构造通过其其他成员方法与类中定义的线程进行通信 有趣的是 获取锁后 同步范围内的所有线程都会在同一锁上进行定时等待 请参见下面的代码片段 随后 在非同步作用域中 线程执行其关键函数 即 做一些有用的事情1
  • ReferenceError:MongoDB shell 中未定义 require

    我尝试通过 Windows 命令 Windows 8 1 从 Mongo 客户端连接 MongoDB 当我使用require 在 javascript 中 我遇到如下错误 有人有同样的问题吗 我有错过任何一个吗require有关的npm安装
  • 如何将 Java 地图转换为在 Scala 中使用?

    我正在开发一个 Scala 程序 该程序调用 Java 库中的函数 处理结果并生成 CSV 有问题的 Java 函数如下所示 Map
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • 有一种简单的方法可以忽略时间戳来区分日志文件吗?

    我需要比较两个日志文件 但忽略每行的时间戳部分 确切地说是前 12 个字符 有没有一个好的工具 或者一个聪明的 awk 命令 可以帮助我 根据您使用的 shell 您可以改变方法 Blair https stackoverflow com
  • 拆分/标记化/扫描字符串并注意引号

    Java中是否有默认 简单的方法来分割字符串 但要注意引号或其他符号 例如 给定以下文本 There s a man that live next door in my neighborhood and he gets me down Ob
  • 在 Java 中创建 XML 文件的最佳方法是什么?

    我们目前使用 dom4j 来创建 XML 文件 不过 我猜现在有更好的东西了 如果我们使用的是 Java 1 6 或更高版本 那么在编写 XML 文件时最好使用什么类 运行速度最快 使用简单 我不需要构建一个 DOM 然后编写整个 DOM
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • 嵌套字段的 Comparator.comparing(...)

    假设我有一个这样的域模型 class Lecture Course course getters class Course Teacher teacher int studentSize getters class Teacher int
  • 为什么无法从 WEB-INF 文件夹内加载 POSModel 文件?

    我在我的 Web 项目中使用 Spring MVC 我将模型文件放在 WEB INF 目录中 String taggerModelPath WEB INF lib en pos maxent bin String chunkerModelP
  • Java 中 JButton 的击键/热键

    最初我使用 JMenu 并建立热键以使用加速器工作 它运行得很好 现在我想在 JButton 中实现相同的行为 但我陷入困境 这是我编写的代码 请分享您的想法 以便我可以走上正确的道路 import javax swing import j
  • C 与 C++ 中的 JNI 调用不同?

    所以我有以下使用 Java 本机接口的 C 代码 但是我想将其转换为 C 但不知道如何转换 include
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 删除 JFX 中选项卡后面的灰色背景

    So is there any way to remove the gray area behind the tab s 我尝试过用 CSS 来做到这一点 但没有找到方法 要设置 tabpane 标题的背景颜色 请在 CSS 文件中写入 t
  • 受信任的 1.5 小程序可以执行系统命令吗?

    如果是的话 这个能力有什么限制吗 具体来说 我需要以 Mac OSX 为目标 我以前用过这个在 Windows 系统上启动东西 但从未在 Mac 上尝试过 public void launchScript String args Strin
  • 如何建立与 FileZilla Server 1.2.0 的 FTPS 数据连接

    使用 Apache commons net 的 Java FTPSClient 进行会话恢复是一个已知问题 会话恢复是 FTPS 服务器数据连接所需的一项安全功能 Apache FTPSClient 不支持会话恢复 并且 JDK API 使

随机推荐

  • you need to install ‘unbuffer‘ (from package expect or expect-dev)

    在下载完RK3399 Linux SDK后的第一次编译时 报以下错误 you need to install unbuffer from package expect or expect dev log saved on home user
  • Java循环查询数据库优化

    1 static 和 final 的用法 static 的作用从三个方面来谈 分别是静态变量 静态方法 静态类 静态变量 声明为 static 的静态变量实质上就是全局变量 当声明一个对象时 并不产生static 变量的拷贝 而是该类所有实
  • 使用git fetch和git merge手动解决一次pull request冲突

    问题提出 github上的一次 pull request 出现了 conflicts 需要解决合并冲突 冲突的内容主要是新增功能的代码和修改的注释 问题思考 由于之前没有更新分支 同时又提交了分支中的代码 而git不能在不丢失提交的情况下对
  • 自动驾驶和自然语言如何结合?NuPrompt来了!

    点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 gt gt 点击进入 自动驾驶之心 大模型 技术交流群 自动驾驶语言提示 原标题 Language Prompt for Autonomous Driving 论文链接
  • VMware Workstation17下载安装、环境搭建、网络配置最小化安装操作步骤

    一 VMware Workstation17下载安装 1 官网下载 官网网址 https www vmware com cn products workstation pro html 安装Workstation 17 Pro for Wi
  • openssl+http实现https

    openssl详解及实现https openssl详解及实现https OpenSSL 是一个安全套接字层密码库 囊括主要的密码算法 常用的密钥和证书封装管理功能及SSL协议 并提供丰富的应用程序供测试或其它目的使用 秘钥算法和协议 对称加
  • 数据库基础--多表查询

    在数据库查询过程中无法避免的需要从两张表中同时查询数据 此时我们需要用到各式各样的多表查询方式 接下来 简单介绍一下数据库基础的多表查询方式 以便于让大家更好的了解多表查询的过程 多表查询 项目开发中 在进行数据库表结构设计时 会根据业务需
  • 【五一创作】iSH修改hostname(主机名)【美化】【短篇技术类文章】

    最后一次更新 2023 4 30 请勿利用文章内的相关技术从事非法测试 由于传播 利用此文所提供的信息而造成的任何直接或者间接的后果及损失 均由使用者本人负责 作者不为此承担任何责任 文章目录 1 前言 简单 的介绍 2 踩坑 摸索 3 解
  • Arduin调节舵机的思路

    一 先判断舵机能够调节的最大值和最小值 二 让舵机转动能够平滑 三 用二维数组和for循环实现码垛机器人的效果 四 机械臂在指令模式的基础上增加手柄模式 手柄模式可以 通过键盘上字符按键操控舵机机械臂 五 通过蓝牙模块进行蓝牙无线设备连接
  • Python读取mat文件-转csv文件

    这篇教程主要介绍如何使用Python读取mat文件并且转csv文件 一 读取mat文件和转CSV 首先将MATLAB生成的mat文件存储在一个目录下 import pandas as pd import scipy from scipy i
  • 王者荣耀服务器维护七月,《王者荣耀》7.28不停服维护更新攻略教程 7月28日更新公告...

    在王者荣耀的游戏中 7月28日进行了不停服的更新维护 此次更新除了常规的修复以外 还带来了蔷薇珍宝阁活动 接下来就让小编带大家一起来看看详细的内容吧 王者荣耀2021年7月28日全服不停机更新公告 更新时间 7月28日8 30 9 30 更
  • RL 暂态电路与磁能

    前言 RL 电路是一个电阻 R 和 自感线圈 L 组成的 RL 电路 在连接或者接通电源U 的时候 由于自感电动势的作用 电路中的电流不会瞬间改变 而是一个连续的渐变的过程 通常这个时间很短暂 所以被称为暂态过程 正文 看看书上是怎么写的
  • 【iOS】—— APP启动流程

    文章目录 APP启动流程 冷启动和热启动 APP完整的启动流程 1 main函数执行前 系统会做的事 2 main函数执行后 3 首屏渲染完成后 Mach O APP启动流程 冷启动和热启动 冷启动 启动时 App的进程不在系统里 需要开启
  • CSS设置字间距、行间距、首行缩进

    CSS设置字间距 行间距 首行缩进 ps 本人亲测 阿里云2核4G5M的服务器性价比很高 新用户一块多一天 老用户三块多一天 最高可以买三年 感兴趣的可以戳一下 阿里云折扣服务器 字间距 1 text indent设置抬头距离css缩进 即
  • 大数据时代,区块链在数据安全领域有什么样的表现?

    大数据时代之下 一如我们无法抗拒科技进步带来的便捷及欢愉 我们同样也无法避免在享受这一切的过程中留下自己的 数字足迹 正因如此 数据如今已然被纳入企业的战略资源 开始指导决策 成为其提高行业核心竞争力的关键一环 当今的数字化时代 数据可谓是
  • ubuntu18.04安装GPU PyTorch

    转载自这篇文章 安装GPU版本的PyTorch 这里选择用pip进行安装 首先需要安装pip 执行命令sudo apt intall python pip3 该步骤可以跳过 现在建议配置pip虚拟环境 为此我们需要配置virtualenv
  • 一、用 ChatGPT 充当面试官

    目录 一 如何让 ChatGPT 充当面试官 1 1正确使用 1 2 反例 二 模拟面试 2 1 ChatGPT 让我介绍自己 2 2 ChatGPT 提问技术问题 2 2 1 技术问题 2 2 2 下一个问题
  • wifi名称可以有空格吗_但是名称中不能有空格

    Excel表格的每一个单元格都有一个默认的名称 其命名规则是列标加横标 例如A1表示第一列 第一行的单元格 如果要将某单元格重新命名 可以运用以下两种方法 工具 原料 Microsoft Office WPS Office 方法一 1 打开
  • [305]mysql1062错误:Duplicate entry '...' for key 'PRIMARY

    问题解释 Duplicate entry for key PRIMARY 即插入数据时 要插入数据的主键数据 已经存在 不能再重复添加了 例 Duplicate entry 0 for key PRIMARY是指主键为0的数据已经存在 不能
  • Linux常用命令大全(非常全!!!)

    前言 本文特点 授之以渔 了解命令学习方法 用途 不再死记硬背 拒绝漫无目的 准确无误 所有命令执行通过 环境为centos7 拒绝复制粘贴 实用性高 命令多为实际工作中用到的 实例讲解 拒绝纯理论 条理清晰 分类归纳 快速找到想要的命令