iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >开发者常用及实用Linux Shell命令备忘录(小结)
  • 336
分享到

开发者常用及实用Linux Shell命令备忘录(小结)

LinuxShell常用命令LinuxShell命令 2022-06-04 23:06:58 336人浏览 泡泡鱼
摘要

最近都需要在 linux 系统下开发,所以经常需要在终端中进行操作。Linux 有很多 shell 命令可以帮助我们完成任务,但不常使用的话就会忘记掉。 本篇作为命令备忘录,我会将实际工作当中用到的命令记录下来,并长期保

最近都需要在 linux 系统下开发,所以经常需要在终端中进行操作。Linux 有很多 shell 命令可以帮助我们完成任务,但不常使用的话就会忘记掉。

本篇作为命令备忘录,我会将实际工作当中用到的命令记录下来,并长期保持更新。

1.which

which 用于查找一个文件,并返回绝对路径,查找的目录范围由系统的 PATH 指定。

由于 Linux 中一切皆文件,所以 which 指定更多的是查找系统中有没有这个命令。

比如,查找 ls 命令,我们可知它的可执行文件的位置


which ls
/bin/ls

2.ln

ln 是一个简单但却非常实用的命令,它的作用是为某个文件或者文件夹建立链接。

命令语法


ln [参数][源文件或目录][目标文件或目录]

链接有软链接和硬链接两种,我们一般用软链接。


ln -s test.txt  ../test1.txt

将当前目录中的 test.txt 文件链接称为上一级目录的 test1.txt 文件。这样,其他程序访问 test1.txt 就如访问 test.txt 一样。

3.tee

tee 命令是我个人非常喜爱的一个命令。

之前做 Android 开发,特别是源码编译的时候,经常在终端一瞬间就会打印无数条 log 信息,光靠肉眼是不行的,一个比较好的方法就是用命令保存起来。

另外,用 find 命令查找文件时,如果文件过多,也可以用 tee 来帮忙。

tee 命令可以接受标准输入,并输出到标准输出,同时保存到对应的文件。

标准输入值得是终端的键盘输入,比如 c++ 的 cin,标准输出就是终端的输出,比如 c++ 的 cout。

语法


tee [-ai][--help][--version][文件...]

参数 a 代表在后面添加内容而不是覆盖。

tee tmp
hello
hello
world
world

我在终端输入 tee tmp

接着我输入 hello,终端响应 hello

我输入 world,终端响应 world。

然后,我通过 cat tmp

查看 tmp 文件,它的结果如下:

hello
world

这说明 tee 命令准确将标准输入保存到指定的 tmp 文件了。

4.locate

locate我也非常喜欢用,用它来快速查找。它是查数据库,而不是一个个文件真实查,所以,速度比较快。

比如,我想查找系统有没有 libpng.so.

我只需要这样


locate libpng.so

/home/frank/anaconda3/lib/libpng.so
/home/frank/anaconda3/pkgs/libpng-1.6.34-hb9fc6fc_0/lib/libpng.so
/home/frank/anaconda3/pkgs/libpng-1.6.37-hbc83047_0/lib/libpng.so
/usr/lib/x86_64-linux-gnu/libpng.so

Linux的常用的shell命令

1.目录命令:


ll /:查看根文件下的所有文件目录

2.帮助命令:


man ls与ls --help与info ls:(man ls:分屏显示;--help:全部加载,不完整;info ls:无用信息比较多)

3.基本操作和命令:


Ctrl+R和方向键中的上键:查找历时输入过的命令 
Ctrl+C Ctrl+Z: 终止或者退出当前操作
字母键i:进入文本编辑模式(可以修改Linux操作系统的init相关设置)
编辑完成后按Esc键退出,然后如果确定保存修改并返回命令行界面输入命令-----:wq
如果不保存用命令并退出编辑界面----:q  
保存并强制退出----:q! 
Shift+G 到文件末位 o:换行

4.Table键的使用


 自动补全命令目录
 在某个目录下只有一个目录饿时候可以不用输入首字母直接敲table计划科自动补全目录
 双击table时一般为显示所有名或者列出某个目录下的所有目录和文件

5.系统级别命令


 更改主机名命令:vi /etc/sysconfig/network
 查看当前Linux系统信息
 uname -a 显示系统及版本的所有信息
 uname -r 显示内核版本
 uname -m 显示计算机是多少位系统
 cat /proc/version Linux查看当前操作系统版本信息
 cat /etc/issue或cat /etc/redhat-release Linux查看版本当前操作系统发行版本
 查看系统小版本
 cat /etc/redhat-release
 查看当前主机名
 hostname
 查看第一个网卡
 ifconfig eth0
 查看和设置系统时间
 date
 显示当前在运行的进程包括对CPU内存使用量
 top -s
 管道:|
 cmd1|cmd2将cmd1输出结果交给cmd2命令来执行
 比如:查看进程:ps-fe|grep Redis(这里表示查看redis的进程)
 grep:过滤
 #grep //输出包含指定字符串的行
  -i //忽略大小写
  -r //递归
  -v //取反
  --color //突出显示查找字符串
 重新启动Linux操作系统
 reboot
 init 6
 关闭Linux操作系统
 shutdown -h now
 init 0
 图形和命令行转换
 vi /etc/inittab
 init 3 命令行模式
 init 5 图形化
 查看虚拟机运行的运行级别(一般状态以5启动)
  cat /etc/inittab 
  1:单用户模式
  2和3一样的功能:多用户模式
  4:功能还没有定义(未使用)
  6:重启
 显示守护进程目录树
 pstree 或者 pstree -p(显示pid)
 查看正在运行的进程
 ps -aux
 显示所有的java进程
 jp

RMGSMBDO

s(如果没有安装jdk,就会显示没有该命令) 结束正在运行的指定进程 kill -9 pid(指的是进程的id) 不进去系统更改root密码 1.在grub选项菜单按e进入编辑模式 2.编辑kernel那行 输入"1"(空格+1),然后按enter键 3.按b重启 4.进入后执行下列命令 root@#passwd root(配置root的密码) Enter new unix passWord:输入新密码 root@#init 6

6.磁盘操作


 显示系统的磁盘空间用量
 df -h  //显示磁盘分区信息
 mkfs.ext3 /dev/sdb1 fs fORMat //格式化硬盘分区
 fdisk -l  //查看磁盘分区
 du -h -s //查看目录或者磁盘分区的使用空间  
  比如:du -h /var/log/(表示查看var/log目录下的各文件所占空间大小) 
   du -h -s /var/log/(表示查看整个log目录的使用空间)
 挂载
 mount -t vfat/dev/sdb1/media/umnt  //挂载
 mount -o remount rw/  //重新挂载,或者将根目录以读写方式重新加载
 umount /media/umnt  //卸载
 文件系统修复
 fsck -y /dev/sda1 (修复的可以是分区也可以是目录,最好在单用户模式下使用)
 //linux文件格式
 ext4 ext3 ext2 vfat(fat32)
 //windows文件格式
 ntfs fat32

7.用户和组的操作


 超级账户 root uid=0
 普通账户 uid>=500
 系统账户 uid=1~499
 /etc/passwd //保存账户的信息
 /etc/shadow //保存账户密码信息
 /root //root用户家目录
 /home/xxx  //普通用户xxx的家目录
 添加用户和删除用户 useradd
 #useradd  //创建用户 比如:useradd admin 另外一种方式:useradd -G manager tom(附加到组manager)
 -u 指定uid
 -d 指定宿主目录
 -s 指定使用shell
 -e 指定用户过期时间
 -g 指定基本组
 -G 指定附加组
 #useradd openlab
 #gpasswd -a openlab gropenlab //将用户加入到组中 比如:#gpasswd -a tom admin(将tom用户加入admin用户的组中)
 #gpasswd -d openlab gropenlab //将用户从组中删除
 #echo"123456"|passwd--stdin feige //不通过交互信息,直接修改密码
 #userdel -r //连主目录一起删除
 #userdel //删除用户 不删除用户文件
 #id openlab //显示用户信息
 vipw //查看用户
 创建用户组
 groupadd manager
 vigr 查看组
 groups manager 查看用户在哪些组中
 更改密码: 
 方式1:passwd tom 方式二:etho "root" |passwd --stdin root//不通过交互信息,直接修改密码
 定账户tom禁止其登录
 usermod -L tom
 切换当前账户为caimin
 su -caimin
 显示当前登录用户账户
 whoami
 查看系统文件判断添加用户组和添加用户操作是否正确
 cat /etc/passwd  或者使用 vipw
 cat /etc/group  或者使用 vigr

8.文件操作


 cd 进入操作
 pwd 查看当前目录
 mkdir 新建文件夹
 mkdir -p //递归创建文件夹 比如:mkdir -p ./test1/caimin/test2
 (./是指用户所在的当前目录,/是指根目录,Linux的根目录是/,root超级用户的家目录是/root)
 touch /tmp/test1/file 创建空文件
 vi file //创建空文件并进入编辑界面,按e键进入编辑模式,按Esc键退出编辑
 :wq 保存编辑信息并退回命令行界面  :q 不保存并退回命令行界面 :q! 强制退出(不保存)
 列出文件和目录列表:
 ll -h /home/
 ls -s -h /home/  (ll相当于 ls -l)
 vi 和 vim 文本编辑
 文件内容查看
 cat -n //查看内容时显示行号
 cat /etc/rehat-release //不显示行号
 cat -n /etc/passwd //查看内容时显示行号
 显示文件的头10行或者尾10行
 tail //默认查看文件尾10行
 head  //默认查看文件头10行
  -n 数字 //查看指定头几行
 cat  cat -n  head tail
 tail -f 动态监控文件数据 (按Ctrl+C退出)
 more 百分比查看,不能回滚看
 less  能往回滚看
 复制文件
 cp ./tmp/file.txt /test
 复制目录
 cp -r ./tmp/test01 ./test02(递归复制文件)
 移动、剪切、重命名、删除
 mv -rf
 rename  批量重命名
 >  >>  覆盖和追加
 rm xxx/ 删除文件   rm -rf xxx/ 删除目录

9.文件权限


 pwd 查看当前位置
 ls -l /data0 显示当前目录的文件

10.打包tar原理


 -z 压缩 -c 打包  -x 解包
 -f 必须要 -C 指定解压位置 -v 输出信息
 /usr/bin/unzip  /bin/gzip /bin/gunzip
 打包案例(tar命令平常就替代了gz命令)
 //将一个文件打包
 tar -zcvf ./test.tar ./test(将test文件夹打包成test压缩包)
 //将多个文件打包成一个包
 tar -zcvf folder.tar file1.txt file2.txt 
 //将一个文件解压
 tar -zxvf ./test.tar
 //将一个文件解压到指定目录
 tar -zxvf ./test.tar -C /home/test/
 //将多个文件打包并压缩
 tar -zcvf ./test.tar.gz folder1 folder2
 //将多个文件解包并解压缩
 tar -zxvf ./test.tar.gz
 使用tar备份指定目录/data0/内容包括子目录中内容备份至/data3/data0.tar.gz
 tar -zcvf /data3/data0.tar.gz /data0
 恢复tar文件中的内容/data3/data0.tar.gz至/data2/
 tar -zxvf /data3/data0.tar.gz -C /data2
 which cmd 查找cmd命令所在路径 whereis
 which reboot
 locate 文件查找-效率很快(用的是数据库)
 locate unzip(一个索引名) //查找文件按所在
 updatedb //更新数据库使之生效
 RMGSMBDOfind文件查找-效率很慢
 find 路径 条件    find / -name unzip(在根目录下找名字为unzip的文件)
 给shell命令取别名
 alias (此操作只针对当前session<连接>有效,另外再开启一个连接还是没有这个别名)
 eg:alias cle=clear(为清屏命令clear取别名cle)
 unalias 取消别名设置 eg:unalias cle
 永久设置:进入vi ~/.bashrc(家用户目录下的环境配置文件,这个文件只针对当前用户)
 进入编辑模式后,加入alias cle='clear' 保存退回命令行
 输入命令source ~/.bashrc就完成了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

--结束END--

本文标题: 开发者常用及实用Linux Shell命令备忘录(小结)

本文链接: https://www.lsjlt.com/news/20723.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 开发者必备Docker命令小结
    目录Docker 简介Docker 环境安装Docker 镜像常用命令搜索镜像下载镜像如何查找镜像支持的版本列出镜像删除镜像Docker 容器常用命令新建并启动容器列出容器停止容器强...
    99+
    2024-04-02
  • Linux常用命令小结
    这篇文章主要讲解了“Linux常用命令小结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux常用命令小结”吧!Linux常用命令使用CRT / Xshell 软件连接VM,编写虚拟机1...
    99+
    2023-06-03
  • Linux下常用的shell命令总结
    这篇文章主要介绍“Linux下常用的shell命令总结”,在日常操作中,相信很多人在Linux下常用的shell命令总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下常用的shell命令总结”的疑...
    99+
    2023-06-16
  • Linux中常用命令(初学者必备)
    目录 一 .学习Linux终端命令的原因 二 .linux常用指令 ls命令  pwd指令 whoami指令 clear指令  cd指令 touch指令 mkdir指令 rmdir指令 rm指令  mv指令  ...
    99+
    2023-08-31
    linux 服务器 debian
  • Linux环境开发的常用命令
    本篇内容主要讲解“Linux环境开发的常用命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux环境开发的常用命令”吧!1、打包压缩命令tar在linux下经常会遇到给源码打包解压等,如果...
    99+
    2023-06-13
  • Linux中SELinux、Shell简介、touch命令的应用小结
    目录 SElinux⛳️ SELinux的规则与概念⛳️ 查看SELinux⛳️ SELinux策略⛳️ SELinux模式⛳️ SELinux设置 Shell简介⛳️ Shell分类⛳️ BASH基础 touch命令的...
    99+
    2023-02-03
    linux  SELinux linuxShell简介 linux touch命令
  • Java开发者必须了解的NPM常用命令
    作为一名Java开发者,你是否经常使用NPM来管理你的前端依赖包呢?如果是的话,那么下面这些NPM常用命令一定会帮助你更加高效地开发和维护你的项目。 npm init 在创建一个新的项目时,你需要运行npm init命令来初始化一个p...
    99+
    2023-11-07
    npm 文件 二维码
  • Linux下,GO语言开发者需要掌握的常用命令有哪些?
    在Linux下进行GO语言开发,熟练掌握一些常用的命令可以大大提高工作效率。本文将为大家介绍一些Linux下GO语言开发者需要掌握的常用命令。 go build go build命令可以将GO语言源代码编译成可执行文件。使用方法很简单...
    99+
    2023-10-11
    linux numy windows
  • Linux环境shell脚本获取时间的常用命令总结
    本篇内容介绍了“Linux环境shell脚本获取时间的常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 相关概念Linux的系...
    99+
    2023-06-16
  • Go 开发者必知:如何在 Windows 系统中使用 Shell 命令?
    在 Windows 系统下,我们经常需要使用命令行来完成一些操作,比如编译程序、运行脚本等。而 Shell 命令是命令行操作的核心,掌握好它们可以让我们更高效地进行开发工作。本文将介绍如何在 Windows 系统中使用 Shell 命令。...
    99+
    2023-07-10
    windows shell path
  • Java开发时常用的相关Linux命令整理
    这篇文章主要讲解了“Java开发时常用的相关Linux命令整理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java开发时常用的相关Linux命令整理”吧!1.查找文件代码如下:find /...
    99+
    2023-06-12
  • 开发过程中常用的Linux系统命令有哪些
    这篇文章主要介绍了开发过程中常用的Linux系统命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关机/重启/注销常用命令作用shutdown -h now即刻关机sh...
    99+
    2023-06-22
  • Linux有哪些常用的磁盘管理及文件目录管理命令
    这篇文章主要介绍“Linux有哪些常用的磁盘管理及文件目录管理命令”,在日常操作中,相信很多人在Linux有哪些常用的磁盘管理及文件目录管理命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux有哪些常...
    99+
    2023-06-12
  • Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载
    Shell脚本常用命令 简介 1、什么是shell: Shell 是一个用 C 语言编写的应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写...
    99+
    2023-08-23
    服务器 linux 自动化
  • Linux操作系统设置图形化界面及目录和文件管理常用命令
    目录 1.安装图形化界面  2.开机启动图形化界面 dos界面与图形化界面切换快捷键 3.Windows与Linux文件系统的差别  4.Linux文件系统常用命令  5.使用pwd命令显示工作目录路径 6.绝对路径和相对路径  7.使用l...
    99+
    2023-09-24
    linux 运维 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作