Linux入门教程

网友投稿 888 2022-08-28

Linux入门教程

Linux入门教程

命令帮助

使用命令man 使用命令的–help选项 使用infor命令 使用help命令查看内部命令

目录路径概念

非以根目录”/”表达的路径是相对路径 .表示当前目录,..表示当前目录的上一级目录,~表示当前用户的家目录 ./1.txt当前目录下的1.txt文件 ../1.txt当前目录的上一级目录下的1.txt文件 以根目录”/”表达的路径是绝对路径 /home/1.txt根目录下home文件夹下的1.txt文件 pwd 查看当前所在的目录

目录操作

非以根目录”\”表达的路径是相对路径 .表示当前目录,..表示当前目录的上一级目录 ./1.txt当前目录下的1.txt文件 ../1.txt当前目录的上一级目录下的1.txt文件 以根目录”\”表达的路径是绝对路径 /home/1.txt根目录下home文件夹下的1.txt文件 ls 目录内容显示指令 cd 当前目录切换命令 pwd 当前目录显示命令 mkdir 目录新增命令 -p递归创建目录,如mkdir -p aa/pp 在当前目录下创建了一个目录aa,aa下面有一个子目录pp cp 目录拷贝命令 rmdir 删除空目录 rm -rf 非空目录删除命令(-r用于递归删除,-f用于强制删除) mv 目录的移动和改名 路径+文件名=完全合格文件名(mv实际修改的是完全合格文件名) mv a b 把a改为b mv c b/c 把c移动到b目录下面去 mv d b/e将d移动到b目录下面去的同时改为e mv d b把d移动到当前文件夹下的b目录

文件显示和过滤

cat 文件内容的全屏显示命令 more 文件内容的分屏显示命令 less 文件内容的滚屏显示命令 head 文件头部内容的显示命令 -n 指定显示文件信息的行数 tail 文件尾部内容的显示命令 grep 文件内容的过滤显示命令 -v 反向筛选出不含关键词的行 -i将以忽略大小写的方式来筛选

文件增删及拷贝

touch 新增空文件的命令 cp 拷贝文件的命令 -a 可以拷贝文件和目录 -i 可以提示拷贝时是否覆盖 rm 文件的删除命令 -i 提示确认被删除的内容 -r 递归删除指定的文件或目录 -f 强制删除指定的文件或目录,无论其是否存在 mv 文件的移动改名命令

//将test.jar重名名为test.jar-bakmv test.jar test.jar-bak//将test.jar-bak文件移动到当前文件夹下的backup目录mv test.jar-bak backup/

find 文件的查找命令 find [路径] [参数] [文件名] -name 输出搜索结果并且打印 如在当前文件夹下以文件名查找aa的文件find . -name “aa” which 系统命令文件的查找命令 locate 系统文件的快速查找命令

文本编辑器的基础编辑

i当前光标插入 a当前光标后插入 vi 打开文件操作

文本编辑器的高级编辑

文件基础归档和压缩

tar 文件归档命令(缺省仅仅打包归档,不进行文件压缩) -c 创建归档文件包 -x 释放归档文件包 -t 查看归档文件包 -v 显示归档包操作过程信息 -f 指定归档包文件名 创建包(不会进行压缩)包含文件夹123 tar -cvf yasuobao.tar 123 查看包 tar -tvf yasuobao.tar 解包 tar -xvf yasuobao.tar 解压缩到指定目录aa tar -xvf yasuobao.tar -C aa -z文件包以*.tgz格式压缩 -j文件包以*.bz2格式压缩 创建压缩包,以.tgz格式压缩 tar -czvf yasuo.tgz 123 查看和解压在上面的基础上加z即可 zip 文件压缩命令(压缩文件包为*.zip格式) zip 123.zip 123 unzip 文件解压缩命令 unzip 123.zip将文件解压到当前目录

7z压缩及库归档

7z 文件压缩命令(提供rar,iso在内的多种压缩格式的解压支持) -a 添加文件到压缩包中 -e 释放压缩包中的文件到当前目录 -l 列式压缩包中的子文件列表 -d 删除压缩包文件中的某个子文件 -t 测试压缩文件的完整性 7za文件压缩命令

设备挂载和卸载

mount 设备挂载命令 特殊格式 mount.ntfs 设备卸载 目录卸载 设备文件卸载 一般在media目录下面,系统会帮你自动挂载

软件包升级

apt-get APT软件包管理命令(sudo是提供管理员权限) apt-get download 在线软件包- eg:sudo apt-get download vim apt-get install 在线软件包安装 eg:sudo apt-get install vim apt-get update 软件列表更新 apt-get upgrade 软件在线升级 eg:sudo apt-get upgrade vim dpkg Debian包管理命令 离线deb软件包安装 dpkg -i eg:安装某个版本的indent的deb离线包 dpkg -i intent*.deb 离线deb软件包卸载 dpkg -r eg: dpkg -r indent

进程查看

ps 进程查看命令 ps -aux -a 显示关联终端的所有进程信息 -u 显示所有有效用户的进程信息 -x 显示没有控制终端的进程信息 ps -ef -e 表示显示所有进程信息同-a -f 表示以完全格式来显示进程信息 pstree 进程查看命令 -p 以附加显示进程号的方式来显示进程树 top 进程动态查看命令 缺省显示占用CPU资源最多的所有进程信息 -p 仅显示指定进程号进程的资源占用情况 如top -p 950,不能直接输入top -950

进程控制

终止 正常退出 中止 中断退出 kill 进程中止命令,缺省发送TERM信号给指定进程 -l 表示查看所有系统支持的信号 -9 发送中止该进程的信号 如中止当前进程 kill -9 $$,有时候前面得加sudu,表示管理员权限 kiallall 进程中止命令 缺省发送TERM信号给指定进程名的进程(和kill的区别是指定进程名,而不会进程号) gedit打开一个文本编辑器 killall -9 gedit 关闭文本编辑器 pidof gedit 查看编辑器的进程号

简单系统操作

clear 清屏命令(上面的东西还是存在的,只是将当前行置顶) reboot 重启命令 halt,shutdown 关机命令 cat /proc/meminfo 系统内存硬件信息查看 cat /proc/cpuinfo 系统CPU硬件信息查看 uname -a 操作系统信息查看 hostname 主机名查看

计划任务

crontab 计划任务查看与设置命令 crontab条目包括 分钟(m) 0-59 小时(h) 0-23 日(dom) 1-31 月份(mon) 1-12 星期(dow) 0-7 man 5 crontab查看计划表的定义语句 crontab -e 编辑计划表 重新启动计划表 sudo service cron restart -r 删除crontab -i 提示用户(是否删除crontab) -l 显示crontab crontab -ri

内存状态查看

free 内存状态查看 缺省以字节为单位显示内存信息 -s 以指定的间隔秒数来显示信息 free -s 5 每隔5秒显示信息 df 磁盘文件系统空间使用查看命令 缺省以字节为单位显示磁盘文件系统的空间使用 -h 以人性化方式显示 du 文件空间占用查看命令 -s 概括描述文件空间占用情况 -h 以人性化方式显示

磁盘分区

fdisk -l 磁盘分区查看 需要有特权 sudo fdisk -l

网络连接及地址查看

ping 网络联通测试命令 -c 用于指定发送ICMP_REQUEST的包计数 ping -c 6 127.0.0.1 可以支持域名如:ping baidu.com ifconfig 网络地址查看及设置命令(windows是ipconfig)

域名解析查询

nslookup 域名地址解析命令 域名通过域名服务器(DNS服务器)解析得到IP地址 如QQ能登录,网页看不了,则说明域名解析有故障 缺省解析指定域名的IP地址 nslookup baidu.com 反向解析指定IP地址的域名信息 nslookup 8.8.8.8(谷歌的域名)

路由及网络统计查看

route 路由信息查看及设置命令 缺省检测和显示路由信息 -n 用于简单显示缓存于主机的路由信息 netstat 网络统计信息查看命令 -a 用于显示包含监听信息的所有网络统计信息 -t 用于仅显示与TCP协议相关的网络统计信息

用户增删与查看

useradd 用户添加命令 -m 用于添加用户的同时创建该用户的家目录 useradd -m bencai userdel 用户删除命令 -r 用于删除用户的同时删除包含该用户家目录的所有文档 sudo passwd bencai 为bencai设置密码 su bencai 用bencai登录 whoami 查看当前用户命令 who 查看所有登录用户命令 id 用户id查看命令 -u 用于仅显示当前的有效用户ID id -u id -u bencai 显示bencai的ID

用户切换

su 用户名 用户间切换命令 在ubuntu系统中,切换到root用户的推荐方法sudo -i sudo 命令名 用户临时获取管理员授权命令 将用户erlie加入到sudo组 gpasswd -a erlie sudo

用户账户配置

usermod -L 用户账户的锁定 usermod -U 用户账户的解锁 用户账号文件 /etc/passwd 用户影子密码文件 /etc/shadow

用户组增删与查看

groupadd 用户组添加 缺省分配当前未被占用的最小gid给新用户组 -g 用于指定新用户组的gid(确保没有被占用) groupadd user01 groupadd -g 1002 user01 groupdel 用户组删除(删除指定的未被占用的用户组) eg:groupdel user01 查看组的账号 tail /etc/group groups 用户组查看命令 缺省查看当前用户所在的所有用户组 指定用户名时,查看指定用户所在的用户组 groups bencai

用户组账户配置

gpasswd 组名 用户组成员更改 -a 用于将新增用户加入组群 add user erlie to group bencai gpasswd -a erlie bencai -d 用于将用户从该组群删除 gpasswd -d erlie bencai newgrp 所属组名 改变有效登录群组 用户组账号文件 /etc/group 用户组影子文件 /etc/gshadow

文件权限概念

-普通文件

r 目录文件

l 符号链接文件

c 字符设备文件

b 块设备文件

p 管道文件

s socket文件

d 目录文件

第一个字符-表示文件性质,是一个普通文件,d代表的是一个目录,后面9个字符是权限,第一个erlie是所有者用户,第二个erlie是组用户,目录的可执行是这个目录能成为当前目录,即这个目录可以cd进去

权限也可以用数字表示为755,664之类的

文件权限设置

文件权限字符形式设置 u是user(所有者) g是group(组) o是other(其他用户) a是all(所有用户) r是read w是write x是execute chmod u+w 所有者加write权限 chmod g-x 123.txt chmod o=r 其他用户设置为只读权限,其他权限没有 chmod o=wr 其他用户设置为读写权限,其他权限没有 chmod a+x 所有用户设置为可执行权限 文件权限数字形式设置 chmod 644 123.txt 对所有者来说权限为6,即可读写 umask 缺省权限设置命令 输出 0002,第一位0为粘滞位,表示一些读写权限,现在用的不多,777-002=775 umask -S查看缺省默认权限为 u=rwx,g=rwx,o=rx,和上面一样 设置缺省权限为 022 umask 022

文件属主和属组设置

chown 文件属主设置命令 -R 递归设置目录中所有文件的属主 chown -R testdir chgrp 文件属组设置命令 -R 递归设置目录中所有文件的属组 eg:把文件456的属主变为bencai sudo chown bencai 456 把文件456的属组变为erlie sudo chown :erlie 456 把文件456的属主和属组都变为erlie sudo chown erlie:erlie 456 chown能改属组但是不能递归的改,所以出现了chgrp sudo chgrp -R bencai 456,同时修改456和456文件夹下面的文件

FTP的使用

命令补全及命令历史

shell是操作系统与用户进行交互操作的界面

最常用的为bash,在/bin/bash目录下

Tab键单击补全命令,Tab键双击来列示可能的命令

history 命令历史的查看

-c 命令历史的清空

使用键盘上下键来调阅最近的命令历史

使用”!”调用前端字符匹配的最近使用过的命令,并且立即执行

命令别名

alias 命令别名的查看 将ls -a这个命令设置昵称为myls alias myls=’ls -a’ 系统默认的有ls的昵称为ls –color=auto which ls查看ls在哪个文件,运行这个文件,显示出来的没有颜色 将显示所有文件设置昵称为myls alias myls=’ls -a’

通配符

*任意多个0-n ?任意一个字符 []eg:test[0-9],0-9当中的任意一个,表示的是范围,也可以这样写 [0-9,a-z],用逗号分隔

作业控制

命令后台发送的使用 在原有命令的末端使用&符号即可将命令发送至后台运行 使用jobs命令可以查看当前的后台作业任务 使用bg命令可以将当前命令作业(要被挂起)切换到后台 使用fg命令可以将最近的一个后台作业切换回前台 如在命令行输入gedit,在记事本关闭之前,命令行没法交互,这样就可以放到后台 睡1000s并且放到后台 sleep 1000& 返回[1] 35351 将这个进程杀死 kill -19 35351 jobs查看这个进程停止 bg (%1可以不写因为就一个) jobs查看这个进程被唤醒

变量的概念及自定义变量

Shell变量的设置 COLOR=red不能空格 Shell变量的引用 echo $COLOR echo ${COLOR} 之所以有大括号,是为了不产生歧义 eg:echo $COLORBALL是引用COLOR还是COLORBALL 自定义变量建议一个字母大写(全部大写有可能是环境变量,全部小写有可能是数据

PATH环境变量

环境变量可以保存在配置文件~/.bashrc(~是当前用户的家目录)中,供固化的长期使用 PATH变量的概念 1环境变量PATH存储系统命令的所在路径,通常为绝对路径 2.环境变量PATH提供了对于系统命令搜寻的便利,意义重大 如Java要配置环境变量当在doc窗口下输出javac之类的命令时,系统知道从哪里运行,像javac之类的命令其实是执行一个javac.exe程序 修改PATH环境变量(在当前PATH变量前加上新的变量) PATH=/home/erlie:$PATH

其他变量及预定义变量

其他环境变量的使用

环境变量PS1存储命令行的提示符

环境变量PS2存储命令行的换行符

erlie@ubuntu就是PS1显示的内容,\表示换行没有结束

.>表示换行符

预定义变量的概念

1.预定义变量是由Shell程序提供的内置变量

2.预定义变量用来存储Shell程序运行过程中的状态信息

3.预定义变量无需设置,只能引用

预定义变量的使用

变量$$存储当前进程的进程号信息

变量$0存储当前进程的进程名信息

变量$?存储上一个命令的返回值信息

变量$!存储最近一个后台进程的进程号信息

eg: echo $.$ $0(中间加点是因为博客编辑器的原因)

kill -9 $!杀死最近一个后台进程

位置变量

位置变量的概念 位置变量是由shell程序提供的变量,可用来引用传递给程序的参数 位置变量通过该程序参数在传递给程序时的位置顺序来引用 位置变量的使用 位置变量 位置变量的切取命令shift即$1的内容变成$2,$2的内容变成$3,以此类推 test.txt的内容为

ls -ld $1ls -l $1ls $2

运行结果为

test.txt的内容设置为

ls -ld $1ls -l $1shiftls $2

运行结果为

shift之后原来$1的值被$2覆盖,$2没有值,缺省显示当前目录下的东西

管道的使用

标准设备文件

显示含有bash的进程信息

ps -aux | grep "bash"//筛选出含有bash同时不含有grep的进程,这个就是管道的级联使用ps -aux | grep -v "grep"

标准出错信息不能通过管道传递出去

有456这个目录,没有789这个目录,456这个目录下面有test123.txt和test456.txt这2个文件

输出重定向

重定向的概念 重定向是指将原本关联输入或输出到标准设备文件的信息重新定向到指定的磁盘文件的举措 标准输出重定向

ls -l text.* ﹥output.txt(覆盖重定向)ls -l text.* ﹥﹥output.txt(追加重定向)

标准出错重定向

ls -l text.* 2﹥output.txt(覆盖重定向)ls -l text.* 2﹥﹥output.txt(追加重定向)

输入及合并重定向

合并重定向是指合并标准输出和标准错误的信息输出 使用合并重定向符&即可实现合并输出

ls -l text.* filenotfound &﹥ output.txt

cat默认敲一行显示一行

//从文件中读取显示出来cat < test.txt//直接写成这样也可以cat test.txt(显示的是stdin里面的内容)

管道与重定向应用

管道+重定向

ls -l

实现复制功能(cp)

cat < test.txt ﹥ test2.txt

here document

脚本编程概述

.空格运行是将脚本内容读取出来提交到当前环境运行,不是脚本真实运行 ./运行是脚本真实在运行

#!/bin/bashls -l /homeecho "hello world"echo $$ $0

Linux部署JavaWeb项目

screen -ls (显示目前所有的screen作业)screen -r <作业名称> 恢复离线的screen作业Ctrl+C 停掉服务按住Ctrl+A再按D退出screenrz 上传文件screen -r <作业名称> 恢复离线的screen作业java -jar camx-dp.jar(运行jar包)

screen命令:​​ kill掉一个screen 1.使用screen名字,kill掉。

screen -S session_name -X

2.激活screen:

screen -r

3.新建一个screen:

screen -S

并利用exit退出并kiil掉session

curl baidu.com通过命令行访问网页

查看端口是否被占用

netstat -anp | grep 端口号

找到pid

lsof -i:端口号

kill掉进程

kill -9

一直显示日志

tail -f server.log

查找monit路径

| grep monit

线上日志排错

// 排除指定内容grep -v// 显示行数grep -n// 跳到指定行数,n为行数

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何排查系统的性能瓶颈点?(如何分析系统性能瓶颈)
下一篇:为Ubuntu Kylin VM虚拟机安装VMware tools
相关文章

 发表评论

暂时没有评论,来抢沙发吧~