Linux之Xshell

shell简介

shell的英文含义是“壳”;
它是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核。
Linux中的shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息;

由于Linux不同于Windows,Linux是内核与界面分离的,它可以脱离图形界面而单独运行,同样也可以在内核的基础上运行图形化的桌面。

这样,在Linux系统中,就出现了两种shell表现形式,一种是在无图形界面下的终端运行环境下的shell,另一种是桌面上运行的类似Windows 的MS-DOS运行窗口,前者我们一般习惯性地简称为终端,后者一般直接称为shell。

使用shell可以实现:

1.文件管理: 创建, 移动, 赋值, 删除, 编辑...
2.权限管理: 不同用户的不同权限管理.
3.用户管理: 创建以及删除用户.
4.磁盘管理: 磁盘挂载.
5.网络管理: IP的配置.
6.软件管理: 下载及运行等等.

xshell

Xshell是一个远程工具,可以远程连接linux系统 ,SSH,远程管理 Xshell来远程访问Linux系统的终端 。

使用方式:

下载,安装xshell

通过对虚拟机的快照设置可以快速回到某一步

shell提示符

[root@xh ~]#
# root:当前用户
# @ :没有意义
#xh:主机名
# ~:家目录
# #:表示超级用户
[xh@xh ~]$ :$ 表示普通用户

ls命令

#  命令  选项  参数   三部分组成 选项和参数可以调换
ls:查看当前路径下的文件,以及文件夹
# 如果想把命令写全了就加 -- 不写全就加 -
ls --all = ls -a:查看所有文件,包括隐藏文件,以点开头的都是隐藏文件
ls -a  /temp  

ls -l:查看每个组,权限,修改时间
# 以下三个一样
ls -l -a
ls -la
ls -al

命令补全

# 一下或者两下tab建
# 一下的话会直接找到你要用的命令
# 两下,可能会用到的全列出来

# ifconfig 在7的版本没有,需要装软件
yum install net-tools -y
yum install net-tools

# yum install bash-completion -y   补齐选项  安装完成之后需要重新连接 还是按两下tab键
ls - 两下tab建,所有的选项都会提示出来

命令快捷键

Ctrl + a    #光标跳转至正在输入的命令行的首部
Ctrl + e    #光标跳转至正在输入的命令行的尾部
Ctrl + c    #终止前台运行的程序   ##################
Ctrl + d    #在shell中,ctrl-d表示推出当前shell。
Ctrl + z    #将任务暂停,挂至后台
Ctrl + l    #清屏,和clear命令等效。  ##############
Ctrl + k    #删除从光标到行末的所有字符
Ctrl + u    #删除从光标到行首的所有字符
Ctrl + r    #搜索历史命令, 利用关键字,Tab建选中,只能找到最近的一条
Ctrl + w    #按单词或空格进行向前删除
Ctrl + 左右建 #按单词或空格进行向前向后跳

#在命令行前加面加 "#" 则该命令不会被执行

!命令

!!://执行上一条命令
!vim://执行历史命令中最近的以 vim 开头的命令,如 !ls,!cat...
!$://上一条命令的最后一个参数,[与 Alt + . 相同(在Xshell中用不了)]
!$:p://打印输出 !$ 的内容
!blah:p://仅打印输出,而不执行
!*://上一条命令的所有参数
!*:p://打印输出 !* 的内容
^blah://删除上一条命令中的 blah
^blah^foo://将上一条命令中的 blah 替换为 foo
^blah^foo^://将上一条命令中所有的 blah 都替换为 foo

history历史记录

history查看历史命令
!数字   快速执行数字那一行
!yum    快速执行最近一条yum命令
history -d 70  把历史记录的第70行删除
history -c   清空所有记录(连到人家服务器,操作完了,执行一下)
history -w   可以把 历史记录写到用户家路径的.bash_history文件中

设置命令别名

  • 将复杂的难记的命令简单化
  • "alias 别名=命令"
  • "" : 取消特殊意义, 取消了别名的意义: \ls,
  • 取消别名 : "unalias 别名"
 1、设置别名
 alias www='ls /'  只在当前bashshell中生效

 2、永久生效(全局,局部),将别名写到环境变量中去
	echo "alias wk='ifconfig'" >> /etc/bashrc
    
 3、取消别名
	which ls //先查看命令的完整路径, 在使用完整路径来运行
	\ls      //反斜杠可以取消特殊意义, 取消ls的别名意义
	unalias  //直接取消别名

	如果写到配置文件中,取消的话unalias wk+去配置文件删除
    
 4、内置的别名:在环境变量的配置文件中放着
	alias ls
    
 5、/bin/ls -al /root   # ls 内置了别名

 6、命令 --help  # 查看命令该怎么用
    
 7、man 命令  # 也是查看命名的使用方法,按q退出

重启 关机 注销

shutdown -r 10			//10分钟后重启
shutdown -r 0			//立即重启
shutdown -r now			//立即重启
init 6				//立即重启
reboot				//立即重启

shutdown -h 10			//10分钟后关机
shutdown -h 0			//立即关机
shutdown -h now			//立即关机
init 0				//立即关机
halt				//立即关机
poweroff			//立即关机.

# 注销
1.exit
2.logout
3.Ctrl + d

# 取消正在进行的关机或者重启
shutdown -c

路径定位

1 . ..  相对路径,. 是当前,..是上一级

2 注意:带斜杠和不带斜杠
    cd /usr # 根路径下的usr
    cd usr  # 当前路径下的usr
3 执行当前路径下的某个文件
	./xx linux
    xx   windows
4 ~当前用户的家路径:root   /root   jack  /home/jack

mkdir

创建目录

 选项:-v 显示详细信息  -p 递归创建目录
 mkdir dir1
 mkdir /home/od/dir1 /home/od/dir2
 mkdir -v /home/od/{dir3,dir4}  
 mkdir -pv /home/od/dir5/dir6
 mkdir -pv /home/{od/{diu,but},boy}
 mkdir /dir1	在根目录下创建dir1
 mkdir ./dir1	在当前目录下创建dir1
 mkdir ../dir1	在上一个目录下创建dir1

touch

新建文件

touch file                    #无则创建,有则修改时间
touch file2 file3
touch /home/od/file4 file5
touch file{a,b,c}             #{}集合,等价 touch a b c
touch file{1..10}
touch file{a..z}

rm

删除文件

选项:-r: 递归 -f: 强制删除 -v: 详细过程
rm  file.txt      #删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
rm -f file.txt    #删除文件, 不提醒

rm -r dir/        #递归删除目录,会提示
rm -rf dir/       #强制删除目录,不提醒(慎用)

1.rm删除示例
mkdir /home/dir10
touch /home/dir10/{file2,file3,.file4}
rm -f /home/dir10/  //不包括隐藏文件 
ls /home/dir10/ -a
. .. .file4

2.rm删除示例2
touch file{1..10}
touch {1..10}.pdf
rm -rf file 
rm -rf .pdf
rm -f file*
rm -f *.txt

rmdir

删除空目录,如果删除的目录有其他文件或者子目录存在,就会删除不成功

rmdir [参数] 目录名
参数 -p 删除父目录,要求父目录没有其他目录存在
	-v 显示命令的详细执行过程

mv

移动文件

mv file file1             #原地移动算改名
mv file1 /tmp/            #移动文件至tmp目录:不一样mv file1 tmp 
mv /tmp/file1 ./          #移动tmp目录的文件至当前目录
mv dir/ /tmp/             #移动目录至/tmp目录下

touch file{1..3}
mv file1 file2 file3 /opt/    #移动多个文件或至同一个目录

mkdir dir{1..3}
mv dir1/ dir2/ dir3/ /opt     #移动多个目录至同一个目录

cp

复制文件

选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性
cp file /tmp/file_copy
cp name /tmp/name1         #修改名称
cp file /tmp/             #不修改名称
cp -p file /tmp/file_p    #-p保持原文件或目录的属性
cp -r  /etc/ /tmp/        #复制目录需要使用-r参数, 递归复制
cp -rv /etc/hosts /etc/hostname /tmp  #拷贝多个文件至一个目录
cp -rv /etc/{hosts,hosts.bak}
cp -rv /etc/hosts{,-org}

cd

切换命令

cd	切换到家目录
cd ./	当前路径
cd ../	上级路径
cd -	切换到上次工作路径
cd ~	切换到root下的家目录
pwd	(print working directory)打印当前工作路径

查找命令

查看

tree:树状形式显示
       需要安装:yum install tree
       tree /home/ 
    
cat :查看文本内容
      cat >> test2.txt <<EOF
      > ads
      > adf
      > EOF

less,more:文本查看,分页
	  less /etc/services
      more只支持向前浏览,less命令允许向前或向后浏览文件
      less [选项] 文件名
      可以使用/ 查找 n向下 N向上查找
      less打开文件:ctrl+b:下翻页   	ctrl+f:上翻页
	  Page Up 向上翻页,Page Down 向下翻页

head
	head -n	文件名 (不加默认开头十行)
	head -n1 /etc/services :查看该文件第一行
    ps aux | head -n5 :查看前5个进程
    head -n -3 3.txt   #-3 不显示最后3行
    head -n +3 3.txt   #就只显示前三行
    
tail
	tail -n	文件名 (不加默认结尾十行)
	tail -f	文件名 实时跟踪最后十行
	tail -f /var/log/messages :动态查看文件变化
 	tail -n -3 3.txt   #-3 只显示最后三行
	tail -n +3 3.txt   #从第三行开始
    
grep:查找命令
	-grep "xh" test2.txt   查找文件中有xh的行
    -ps aux | grep ssh    查看sshd进程是否在运行
    “^……”表示以……开头,“……$”表示以……结尾
    “^$”表示空行

wget:下载yum install wget
	wget 路径  默认下载在当前路径
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        
curl:连通性
	可以连百度等 curl www.baidu.com
	django:127.0.0.1:8080端口,先在本地curl一下,看看能不能通,可能是防火墙,阿里云的安全组
	curl -o /home/a.png https:72743-20190.png

上传下载 (4g以内)
	yum install lrzsz -y
    rz:上传,选择文件直接上传
    sz:sz 文件路径  可以下载到当前主机

which  命令 :找出命令的绝对路径
  去/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/b   in:/root/bin 路径找有没有
                    
whereis命令:找出命令的路径以及文档手册信息
   whereis -b ls  查找ls命令,只找二进制(可执行文件)
    
sort
	sort file.txt  对内容进行排序
    sort -t ":" -k2 file.txt
    sort -t ":" -n -k2 file.txt
    
uniq 去重,连续挨着的才能去,所以要跟sort连用
	 sort file2.txt | uniq
cut 
    Im xh, is QQ 3524130451
    cut -d " " -f2,5 file.txt #把字符串按“ ” 分割,取出第2和第5个
    
wc
    wc -l /etc/services 
    ls | wc -l # 统计当前路径下有多少文件和文件夹
    ps aux |grep ssh | wc -l # 统计有多少个ssh相关的进程

du

du -a	all,统计磁盘空间占用时包含的所有文件
du -h	人性化方式
du -s	只统计每个参数所占用空间总的大小(summary),不统计子目录
du -d	打印目录(或文件,带 --all)的总计

文件属性与类型

ls -l
ls -lh  以人性化显示,kb,gb
-:文件类型       
rw-r--r--.:权限 
1:硬链接的
root:属主(属于哪个用户)
root:属组(属于哪个组)
43856 :文件大小
Aug 19 11:54 :修改时间
a.png:文件名字

权限
r:可读权限 数字表示 4
w:可写权限 数字表示 2
x:可执行权限 数字表示 1

文件类型:
字符设备(c)	character,所有输入输出的设备 终端 /dev/tty1, /dev/zero
块设备(b)	block,所有存储设备称之为块设备文件,硬盘 /dev/sda1, /dev/sda2
软连接文件(l)	类似与windows下的快捷方式
目录文件(d)	相当于windows下的的文件夹
普通文件(f或-)	类似windows下的记事本、word等,可以使用相关命令进行编辑,查看文件内容
管道文件(p)	pipe,管道文件
套接字文件(s)	socket,套接字文件


通过file来查看详细的类型
  file a.txt 
  file /bin/ls
        
posted on 2022-09-25 13:06  AprilX  阅读(1428)  评论(0编辑  收藏  举报