Linux基本操作

Linux基本操作 以前搞个小本本做的笔记有时候笔记本找不到很多命令也记不全故此记录一些较为常用的基本操作目录1、查看命令1.1、查看Linux系统1.2、查看当前文件夹路径1.3、查看某文件夹下所有文件属性1.4、切换目录2、查看硬盘空间信息2.1查看硬盘空间2.2 查看当前文件夹下各文件占用空间大小2.3查看总磁盘可以查看哪个文件占用大3、压缩包操作3.1 压缩 -r命令是包括子目录3.2 解压3.3 压缩工具压缩率对比3.3.1 ZSTD 压缩与解压日常备份首选压缩强、速度快3.3.2 xz 压缩与解压3.3.3 gzip 压缩与解压系统默认压缩一般仅应急3.4 常用附加使用参数3.4.1、排除缓存或者临时文件3.4.2、保留权限、属主系统完整备份必备3.4.3、增量备份只备份新增修改文件大幅减少备份体积4、搜索(定位)文件各种方法4.1、whereis4.2、find(最通用的搜索方法)4.3、locate(速度快好用)5、删除文件6、修改保存环境变量6.1 查看环境变量6.2、编辑环境变量6.3、刷新环境变量7、vim文本操作7.1打开编辑文本只是打开还不能编辑7.2 插入编辑7.3 保存退出7.4不保存强制退出7.5编写一个sh脚本自动sudo明文8、Linux文件权限8.1、更改文件夹权限8.2、更改文件夹权限(包括所有子文件夹)8.3、新建文件夹时候赋予权限9、设置桌面快捷方式9.1新建desktop文件设置执行脚本和图片9.2 把desktop建立软链接到桌面来9.3把desktop设置为可执行程序10 动态库设置10.1 临时办法使用export办法如下图本博客第6章节10.1 永久解决办法配置conf文件11 用户管理11.1修改用户名密码11.2新建用户11.3给指定用户管理员权限11.4删除用户11.5 查看所有用户11.6 显示当前系统上登录的用户信息11.7 显示最近登录系统的用户信息11.8 终止原有用户进程12 Linux C代码计时13、软件安装13.1、软件安装方法13.2、软件默认安装位置、查看及清理方法13.2、软件卸载1、查看命令1.1、查看Linux系统cat/proc/versionuname-alsb_release-a1.2、查看当前文件夹路径pwd1.3、查看某文件夹下所有文件属性ls-lrt 文件夹路径该参数不写默认是当前路径文件夹1.4、切换目录cd 待切换目录绝对路径2、查看硬盘空间信息2.1查看硬盘空间df-h2.2 查看当前文件夹下各文件占用空间大小du-sh*2.3查看总磁盘可以查看哪个文件占用大baobab3、压缩包操作3.1 压缩 -r命令是包括子目录zip-r xxx.zipxxx3.2 解压unzip xxx.ziptar-zxvf xxx.tar.gzgz文件两次解压gzip-dOpenCV\4.0.1.tar.gztar-xvfOpenCV\4.0.1.tartar-xjvffilename.tar.bz2# 解压并显示详细过程参数说明-x解压-j指定 bzip2 解压算法-v输出解压过程-f指定文件名3.3 压缩工具压缩率对比zipgzbz2xzzstd(最高压缩档)同等测试数据gzip -9基准体积 100%xz -9e约 65%75%zstd -19约 70%80%速度远快于 xz多个目录一起打包再压缩不要分开压缩节省冗余空间用 tar 打包多目录管道传给压缩工具一次性生成单备份文件。3.3.1 ZSTD 压缩与解压日常备份首选压缩强、速度快# 语法tar 打包多个目录 | zstd 最高压缩 备份包.zsttar-cf- /dir1 /dir2 /mnt/disk/data /opt/work|zstd-19-obackup_$(date%Y%m%d).zst参数说明-19zstd 最高压缩级别极致节省磁盘$(date %Y%m%d)自动按日期命名备份方便管理-cf -打包输出到标准输出不生成中间临时文件省磁盘解压方法zstd-dbackup_20260721.zst|tar-xf-3.3.2 xz 压缩与解压适合冷备份、不频繁解压追求最小体积压缩tar-cf- /home/user /var/log /mnt/storage|xz-9e-cfull_backup_$(date%Y%m%d).tar.xz-9exz 极限压缩参数比普通 gz 小 15%~30%解压xz-dfull_backup.tar.xz|tar-xf-# 或一步解压tar-Jxffull_backup.tar.xz3.3.3 gzip 压缩与解压系统默认压缩一般仅应急压缩率不如上面两个不推荐用来省空间压缩命令tar-zcfbackup.tar.gz /dir1 /dir23.4 常用附加使用参数3.4.1、排除缓存或者临时文件–exclude 忽略不需要备份的目录 可以进一步缩小压缩包体积如tar-cf- /home /opt\--exclude/home/*/.cache\--exclude/tmp\--exclude/var/tmp\--exclude*.log|zstd-19-obackup.zst3.4.2、保留权限、属主系统完整备份必备加 -p 参数保存文件权限tar-pcf- /dir1 /dir2|zstd-19-obackup.zst3.4.3、增量备份只备份新增修改文件大幅减少备份体积配合 --newer-mtime 只备份指定日期后改动文件tar-pcf- /home --newer-mtime2026-07-01|zstd-19-oinc_backup.zst4、搜索(定位)文件各种方法4.1、whereiswhereis xxx4.2、find(最通用的搜索方法)find $path-name 文件名4.3、locate(速度快好用)locate 文件名5、删除文件谨慎使用rm-rf 要删除的文件路径或者文件夹6、修改保存环境变量6.1 查看环境变量见我另一个博客的小插曲直接截图如下6.2、编辑环境变量vim~/.bashrc6.3、刷新环境变量source~/.bashrc7、vim文本操作7.1打开编辑文本只是打开还不能编辑vim 文件绝对路径7.2 插入编辑按“i”键7.3 保存退出先按“esc”键再按“shif;”键最后输入wq7.4不保存强制退出先按“esc”键再按“shif;”键最后输入q!7.5编写一个sh脚本自动sudo明文sh脚本就是将命令行写进去类似windows的*.bat脚本或者*.cmd脚本文件但是如果sudo执行的时候需要输入密码这里就说怎样写一个将密码放进去的sh脚本原理通过 echo 命令将密码通过管道传递给 sudo -S-S 表示从标准输入读取密码。#!/bin/bash# 注意密码明文存储存在安全风险PASSWORD你的管理员密码COMMAND需要执行的命令# 例如apt update# 传递密码并执行命令echo$PASSWORD|sudo-S$COMMAND使用方法chmodx auto_sudo.sh ./auto_sudo.sh8、Linux文件权限600只有所有者读和写的权限644所有者读和写权限组和用户只有读权限700只有所有者读、写、执行权限666每个人都有读和写的权限777每个人都有读、写、执行权限更多可以查看这里8.1、更改文件夹权限chmod777filePath/DirPath8.2、更改文件夹权限(包括所有子文件夹)#第一步用cd切换到要更换权限的文件夹#第二步使用下面命令chmod777*-R8.3、新建文件夹时候赋予权限mkdir-m777DirPath在当前路径新建了一个所有人可读、写、执行的test文件夹9、设置桌面快捷方式以设置pycharm桌面快捷方式为例9.1新建desktop文件设置执行脚本和图片sudo vim/usr/share/applications/pycharm.desktop内容如下Exec设置的是sh文件路径Icon设置的是图片路径其他名字也根据自己需要进行设置[Desktop Entry]Version2022.1.3EncodingUTF-8Namepycharm Commentpycharm Execsh/home/QL/softWare/pycharm-community-2022.1.3/bin/pycharm.sh Icon/home/QL/softWare/pycharm-community-2022.1.3/bin/pycharm.png TerminalfalseTypeApplication CategoriesApplication;Network;Tencent Software;StartupNotifytrueName[zh_CN]Pycharm GenericName[zh_CN]Comment[zh_CN]Pycharm9.2 把desktop建立软链接到桌面来ln-s/usr/share/applications/pycharm.desktop/home/QL/桌面/pycharm.desktop这时候桌面有pycharm.desktop的快捷方式但是双击的时候还是txt文件打开不能运行9.3把desktop设置为可执行程序sudo chmodx pycharm.desktop10 动态库设置C/C编译可执行程序时当静态库和动态库同时存在时优先使用动态库。编译程序后想要运行一个程序会提示缺少动态库。按照Windows的常规操作会将缺少的动态库拷贝到执行程序同级目录后程序可以正常执行。但是有时候往往动态库太多了都扔在一个文件夹找程序非常费劲参考链接Linux——动态库10.1 临时办法使用export办法如下图本博客第6章节10.1 永久解决办法配置conf文件1、conf文件路径/etc/ld.so.conf.d新建conf文件文件名可以自定义后缀是.conf2、将缺少的lib路径写入.conf文件中保存退出3、更新环境变量sudo ldconfig样例11 用户管理11.1修改用户名密码通过执行命令行修改用户密码执行代码如下su sudo passwd 用户名其中需要将“用户名”为需要更改密码的用户账户敲回车后按照提示输入新密码即可如11.2新建用户sudo adduser 用户名执行后会提示输入密码和其他各种信息其他各种信息可以不用输入直接敲回车按照默认设置即可11.3给指定用户管理员权限su sudo usermod-aG sudo 新用户名先切换root用户再进行赋权限到新用户下面或者执行sudo adduser 新用户名 sudo最后切换新用户使用sudo命令看看能否正常执行11.4删除用户sudo deluser 用户名11.5 查看所有用户cat/etc/passwd或者getentpasswd11.6 显示当前系统上登录的用户信息显示包括用户名、登录时间、登录终端等w或者who11.7 显示最近登录系统的用户信息包括用户名、登录时间、登录终端等。通过查看最近登录用户linux命令详解词典我们可以追踪系统的使用历史。last11.8 终止原有用户进程1、先新建一个用户避免用户删了进不了系统sudoadduser tempadminsudousermod-aGsudotempadmin2、在删除用户前应该先终止原有进程对用户进行注销sudopkill-u原用户名sudopkill-9-u原用户名3、登录刚刚注册的新用户tempadmin再将老用户删掉即可sudodeluser 原用户名sudorm-rf/home/原用户名12 Linux C代码计时Linux系统的计时代码如果使用Window的计时方法容易溢出导致计时错误常规windows 计时方法#includetime.hclock_t t1clock();...clock_t t2clock();doubletakeTime(t2-t1)/CLOCKS_PER_SEC;Linux计时方法方法1#includesys/time.hstructtimevalstart,end;doublestart_t,end_t,t_diff;gettimeofday(start,NULL);for(unsignedinti0;i2000;i){pg.insert(point);}gettimeofday(end,NULL);start_tstart.tv_secdouble(start.tv_usec)/1e6;end_tend.tv_secdouble(end.tv_usec)/1e6;t_diffend_t-start_t;printf(%%Insertion Time: %.9f \n,t_diff);方法2直接获取时间戳通过时间戳做差可以获取最终的时间#includeiostream#includeunistd.h#includetime.h#includesys/time.h// linuxintmain(){time_t t1;time(t1);std::couttime_t :t1std::endl;sleep(5);//seep 5 sec ,need #include unistd.htime_t t2;time(t2);doubletakeTimet2-t1;printf(All done,take time:%lf s!\n,takeTime);}13、软件安装13.1、软件安装方法对于ubuntu系统一般使用sudo apt-get install 命令进行软件安装13.2、软件默认安装位置、查看及清理方法apt-get install命令下载的安装包默认存储在/var/cache/apt/archives路径下‌。例如查看该路径下到底有啥如果需要清理这些下载的安装包可以使用sudo apt-get clean命令来删除该路径下的下载的deb包‌此外apt-get install命令会将软件包安装到系统默认的路径中通常是/usr/bin、/usr/lib等目录。具体来说可执行文件会存储在/usr/bin目录下库文件会存储在/usr/lib目录下配置文件和文档等则会存储在/usr/share目录下‌13.2、软件卸载aptautoremove xxx eg. 卸载cmakesudoaptautoremove cmake