Linux常用命令

Liunx基本介绍

Linux 使用的是统一的目录树结构 
/
/home/li
/root
/bin 
/mnt
/usr
/etc

Linux系统支持多个用户,每个用户一个目录。
用户目录:例如用户li  --> 目录:/home/li ,用户只能在 /home/li 这个目录下进行操作

特例:超级用户 root,其用户目录为 /root


技巧:
	1 在输入命令和路径时,按 TAB 键可以自动补全
	2 输入历史可以翻阅,按 ↑ ↓ 箭头键可以上下翻阅
	3 宿主机 与 虚拟机之间可以拷贝粘贴,一般情况下,文本和文件都可以拷贝

文件列表

1.文件列表:
列出目录下的所有项:ls , 即 list,
	示例:
	查看当前目录:ls 
	查看 /home/li 目录:ls /home/shaofa

以详细模式查看:
	ls -l /home/li  
	其中,-l 为参数,参数一般以 - 开头

目录切换

显示当前目录:pwd , 即 print working directory 

切换目录:cd , 即 change directory 
	示例:
	切换到用户主目录:cd 
	切换到某个目录:cd /home/li/example
	使用相对路径:cd example/

几个特殊的目录:
	~  代表当前用户的主目录
	.   代表当前目录
	..  代表上一级目录
示例:
cd ~  切换到用户主目录
cd ~/example 切换到用户主目录下的example目录
cd ../www  切换到上级目录、再到www子目录

在 ls 命令中,也可以使用 ~  . .. 表示路径
	ls ~
	ls ./www  查询当前路径下的www文件夹的内容

目录操作

1 创建目录:mkdir ,即 make directory 
	mkdir  abc 主目录下创建abc文件夹
	mkdir  -p  abc/123/test 使用 -p 参数,可以将路径的层次目录全部创建

2 删除空目录:rmdir ,即 remove directory  不常用
	rmdir abc
	如果目录非空,则删除失败

3 删除文件或者目录:rm ,即 remove 
	rm -rf abc
	删除abc目录,和子项一并删除
	其中, r 表示 recursive , f 表示 force

4 复制文件或者目录:cp,即 copy 
	cp -rf  /home/li/example example2
	复制example目录,重命名为example2,和example目录相同

5 移动文件或目录 (重命名)mv ,即 move 
	move hello helloworld

注意:对于文件, rm / cp / mv 这三个命令同样适用

归档压缩

1 归档
  档案打包:tar , 即 tape archive 
	 tar   -cvf   example.tar   example
	 其中,
	   c ,   表示 create 创建档案
	   v ,   表示 verbose 显示详情
	   f ,   表示 file
	 也可以将多个目录打包成一个tar文件  tar -cvf  xxx.tar  file1  file2  file3

2 还原档案包
	tar   -xvf   example.tar
	tar   -xvf   example.tar   -C   outdir
	其中,-C 参数指定目标目录,默认解到当前目录下
 
3 归档并压缩:先前的tar格式并没有压缩,体积较大
	档并压缩
		tar   -zcvf   example.tar.gz   example
	解压缩
		tar   -zxvf   example.tar.gz
		tar   -zxvf   example.tar.gz   -C   outdir
		通常我们所见的,都是 *.tar.gz 这种格式

用户和组

用户操作

1 添加用户
   sudo useradd  -m username
   其中,-m参数表示在 /home 下添加用户目录
2 修改用户密码
   sudo passwd username
3 删除用户
   sudo userdel username

说明:
1 在登录系统时,默认不允许以 root 用户登录

2 只有特殊的用户,才能执行 sudo
   比如,li可以执行sudo,但username不行,Linux下,把能执行sudo命令的用户叫 sudoer

超级用户

超级用户 root,类似于 Windows 下的 Administrator 用户
切换到 root 用户,有全部权限,可以直接 useradd 等命令


1 首次使用时,需要给 root 设置密码
   sudo passwd root
2 切换到 root 用户
   su root
   其中,su 表示 switch user 
3 退出 
   exit
 
 说明:
1 su root 仅仅对当前会话 (终端) 有效不影响当前桌面环境
2 root 权力太大,需要小心使用

Linux 下可以创建多个用户,可以用组进行管理用户。


1 创建组
	groupadd boys
2 创建用户
	useradd -m -g boys xxx
	其中,-g表示在添加用户,同时将用户加到boys组
3 修改现有用户到新的组
	usermod -g boys xxx
	其中,usermod表示修改用户信息
4 如何查看用户和组:cat /etc/group
5 如何查看用户列表:cat /etc/passwd 

软链接

软链接:即 Windows 下的 "快捷方式"

创建软链接 :ln,link
	ln  -s  source  link
	其中,-s 表示 soft 软链接 ( 默认为硬 )
	例如:ln  -s  example  example2
软链接的特点:
	1 删除软件接,对原文件没有影响
	2 删除原文件,则软链接失效

以 ls -l 查看文件详情时,可以看到目标路径
比如,ls -l / 查看根目录可以发现,/bin 实际指向的是 /usr/bin 目录

文件的权限

查看文件权限

1) 考虑以下几个方面:
	 owner:  文件的属主 owner 
	 r :     文件是否可读 read 
	 w :     文件是否可写 write
	 x :     文件是否可以执行 excute

2) 用ls命令查看一个文件的权限:ls -l

在这里插入图片描述

修改文件的权限

chmod  , 即change file mode 修改文件的访问权限

比如,一个文件simple.txt ,想让别人也能修改
chmod  o+w  simple.txt
其中,
   o ,表示 other 别人
   +w ,表示增写 write 权限
   chmod  a+w  simple.txt 
   
chmod  a+w  simple.txt  所有人 all 添加 w 权限
chmod  a-w simple.txt   所有人减去 w 权限
chmod  u+w  simple.txt  仅用户 user 自己的权限 +w
chmod  o-w  simple.txt  修改别人 other 的权限 -w

补充:
1 只有文件的属主或者root 可以修改文件权限
2 省略写法
 chmod +w simple.txt
 chmod -w simple.txt
 默认是修改自己和本组的权限

修改文件的属主

chown  , 即change owner 修改文件的属主

一般来说,每个用户只操作自己的用户目录,所以 chown 命令并不常用

示例:
1 在 /opt 目录下建立一个文件夹 software
2 将 software 目录分配给用户 shaofa
	su root
	mkdir /opt/software
	chown -R shaofa /opt/software
	ls -ld /opt/software
	
注意:只有文件的 owner 和 root 才有权更改属主

可执行脚本

脚本介绍

脚本 Script ,一种解释执行的程序

Linux 下常见的三种脚本程序
 - Shell 脚本  *.sh
 - Perl 脚本   *.pl
 - Python 脚本 *.py

脚本程序,本质是一个文本文件
 1 它是一个文本文件
 2 它具有可执行权限
 
脚本程序都是由解释器来执行的
 Shell脚本解释器:   /bin/sh
 Perl脚本解释器:    /bin/perl 
 Python脚本解释器:  /bin/python3


执行一个脚本时,以下两种方式等效
 ./hello.py
 /bin/python3  hello.py

Shell脚本

Shell脚本,按Shell的语法写出来的脚本
是 Linux 自带的脚本语言,相当于Windows下的 DOS 批处理脚本

1 编辑一个文本文件,保存为 hello.sh
 #!/bin/sh
 echo "hello,world"
2 添加可执行权限
 chmod +x  hello.sh
3 执行程序 
 ./hello.sh 或者
 /bin/sh hello.sh

要点与细节:

1 第一行必须声明解释器
  #!/bin/sh
2 必须有 x 权限,才能够执行
比如,一个程序只有作者执行,别人不能执行
  rwxr--r-- 
3 执行程序时,必须加上路径
  ./hello.sh 
  /home/shaofa/hello.sh

Python脚本

Python脚本,比Shell要强大一些

1 编辑一个文本文件,保存为 hello.py
 #!bin/python3
 添加语句:print("hello.py")
2 添加可执行权限
 chmod +x  hello.py
3 执行程序 
 ./hello.py

环境变量

Shell中的变量

SHELL,是一个脚本编程语言
1 定义变量
2 执行命令 echo ls cd cp
3 if 判断逻辑, while循环逻辑
4 自定义的函数 …

示例:
#!/bin/sh
# 定义变量
OUTDIR=/opt
# 使用变量
echo "output to : ${OUTDIR}"
ls ${OUTDIR}

要点与细节:
1 定义一个变量
  NAME=value
注意:等号左右两侧不要多加空格
2 使用一个变量
  ${NAME}
如果已经有了定界符,则可以简写为 $NAME
 例如 echo $NAME/build/

环境变量

环境变量,就是存在当前环境中的变量,无论Linux ,还是Windows,都有环境变量
比如,最常用的环境变量 PATH,  JAVA_HOME

Linux下设置环境变量:
 1 定义环境变量
     export OUTDIR=/opt/
 2 显示环境变量
     echo ${OUTDIR}
 3 查看所有环境变量
     printenv
 重点注意 path 变量

环境变量的使用:
 1 可以在当前终端中使用
 2 可以在 SHELL 脚本中调用,不需要定义

示例:在Shell脚本中调用一个环境变量。。
在命令行中定义的环境变量,只对当前SHELL终端有效
当关闭终端后,重启后就消失了

思考:有没有办法让一个环境变量不消失?

用户环境变量

用户环境变量:定义在 ~/.profile 中

在主目录下
  ls -la 
  其中,a 表示 all ,显示所有文件
注:在Linux下,以 . 开头的文件为 隐藏文件

.profile文件中定义环境变量:

1 用文本编辑器打开 ~/. profile 
	gedit ~/.profile 也可以先 cd,gedit .profile
2 在文件最后添加
	export JAVA_HOME=/opt/jdk1.8
  保存并关闭
3 注销,重新登录后生效,查看环境变量
	echo $JAVA_HOME

原理:当用户打开终端时,会自动运行 .profile ,将变量注入到当前环境中。

在这里插入图片描述

要点与细节:

1 以点号 . 开头的文件为隐藏文件
	ls -a 查看所有文件
2 此配置只对当前用户有效,因为每个用户都有自己的配置文件 .profile
3 有的Linux系统上,使用 .bash_profile

系统环境变量

系统环境变量:定义在 /etc/profile 中,此中的环境变量对 所有用户 有效

以 root 身份执行 gedit /etc/profile ,会发现里面会遍历一个名为profile.d的文件

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

因此,我们一般不直接修改 /etc/profile ,而是在 /etc/profile.d/ 下创建一个自定义的脚本

示例:

演示:
1 用 gedit 创建一个脚本 
	gedit /etc/profile.d/myprofile.sh
2 定义环境变量
	export TOMCAT=/opt/tomcat
3 注销并重新登录,重新登录后 环境变量 生效
     查看命令:echo $TOMCAT

PATH环境变量

先来看一个问题:创建一个可执行脚本 hello.sh
直接执行:
在这里插入图片描述
明明就在当前目录下,为什么提示找不到?

PATH,最常见的一个环境变量,用于描述可执行程序的搜索路径

查看当前PATH环境变量:
	echo $PATH
注意:多个路径之间以冒号分隔。
查看结果如下:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

默认地,系统从以下目录中搜索可执行程序
	/usr/bin 
	/usr/sbin  
	/usr/local/bin
	/usr/local/sbin
其中: 
sbin 为超级用户 root 才能执行的程序
/usr/ 下系统自带的程序 
/usr/local/ 是用户安装的程序

直接使用hello.sh是执行脚本,系统会在PATH中的目录中搜索这个脚本,但我们可以看到当前PATH路径中没有/home/username/路径,因此会执行失败

演示:修改PATH环境变量
1 编辑 /etc/profile.d/myprofile.sh 修改到系统变量中
	打开文件 sudo gedit /etc/profile.d/myprofile.sh
	设定 PATH 环境变量:
		1) #!/bin/sh
		2) export PATH=$PATH:/home/username
		   先取出原来的PATH的值,再后面附加一段
  注意:也就可以直接使用 export PATH=$PATH:/home/username 
2 注销,重新登录后生效
3 此时就可以使用 hello.sh 直接执行脚本了

注意:使用用户环境变量或者系统环境变量修改PATH均可。

手动配置网络

在终端里,以命令行方式来配置网络,常用命令: ifconfig  ,  netstat 等

默认地,Ubuntu 下面不带 ifconfig 命令
需要使用 apt 软件包管理器
	apt install net-tools 安装一个软件包
	apt remove net-tools 移除一个软件包
	apt search xxx  搜索
	apt list | grep xxx 列表


1 查看网络配置
   ifconfig  
   其中,if 表示 interface 网络接口,会列出所有的网络接口,及各个接口的状态
2 开启/禁用网络
   sudo ifconfig xxx up
   sudo ifconfig xxx down

文本编辑 vi/vim

vi/vim的使用

vi / vim , 一个基于控制台的文本编辑器
gedit , 一个基于GUI的文本编辑器,再命令行终端里面无法运行

其中,vim 是 vi 的升级版,  演示使用 vim 命令 

1 打开文本编辑
	vim abc.txt
	如果目标文件存在,则打开编辑;如果不存在,会新建一个文件
如果系统上没有 vim ,就安装一下:
	sudo apt install vim
2 切换模式
	编辑模式 Insert Mode:  按 i 键
	命令模式 Command Mode:  按 ESC 键
3 退出编辑
	按 ESC 键,进入命令模式
	输入  :wq  保存并退出
    输入  :q   退出
    输入  :q!  强制退出 ( 放弃保存 )

vim 的完全用法非常复杂,花样繁多,几乎键盘上的每一个键都是快速键
不建议深入研究, vim 本身是一个低效率的工具

Linux文本文件的编辑
  1  桌面环境:gedit
  2  终端环境:
     - 少量修改 : vim
     - 大量修改 : 在 Windows上编辑,然后上传到Linux

文本文件的上传

推荐:在 Windows上编辑,然后上传到 Linux 
使用 notepad ++ 或者其他的专业编辑器
==================================================================
==================================================================
文本文件的换行符
	Windows : \r\n
	Linux : \n
可以在 Notepad ++ 里观察到此区别:视图 | 显示符号 | 显示行尾符
换行符的转换:编辑 | 文档格式转换 | 转换为 UNIX格式,这样做之后就符合linux的换行符格式
==================================================================
==================================================================
注意:只有在编辑 SHELL 脚本时,才需要转换
      其他格式的文件一般都不需要转换,如*.xml, *.java

常见问题

Permission denied

授权文件rwx,可读可写可执行权限:chmod 777 文件名称
如果目标是文件夹:chmod -R 777 指定目录

杀死进程

kill -9 PID # PID为进程号

xshell链接虚拟机

需要先启动sshd服务
参考:https://www.cnblogs.com/jiarenanhao/p/9938280.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熠熠98

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值