基本shell命令

显示当前目录:pwd

切换到根目录:cd /

切换到某个目录 (绝对路径):cd /xxx

切换到某个目录 (相对路径):cd xxx

切换到root目录:cd ~

上一级目录:cd ..

列举目录文件:ls

显示目录文件包括隐藏文件:ls -a

显示目录详细信息(文件权限 用户 时间):ls -l

清屏:clear

重启:reboot

关机:halt

新建demo并写入aaa:echo aaa > demo.txt

在demo中追加内容aaa:echo aaa >> demo.txt 追加

查看文件内容:cat

文件所占空间:du

查看当前目录下的总大小:du -sh

su与sudo

切换用户(包括环境):su - username

切换用户(不包括环境):su username

执行命令权限不够,普通用户取得root用户的权限:sudo 命令 ,当前用户转换到root,然后以root身份执行命令,执行完成后,直接退回到当前用户

执行sudo需要额外配置文件,在root用户下给新用户授权,对sudoers文件编辑:vim /etc/sudoers,把用户添加到配置文件中

root     ALL=(ALL) ALL	#<-找到这行
username ALL=(ALL) ALL #<-添加用户名

文件操作命令

filename指文件名,path指路径

创建文件:touch filename.txt,touch filename.xml

新建文件夹:mkdir filename

删除文件(询问是否删除):rm filename

强制删除文件(不询问):rm filename -f

删除空文件夹:rmdir filename

删除有内容的文件夹(询问是否删除):rm filename -r r表示递归删除,递归子目录

强制删除有内容的文件夹(不询问):rm filename -rf

复制到path文件:cp filename path

移动到path文件:mv filename path

安装某个软件:yum xxxxx

查看目录下文件权限:ls -l

修改文件权限为777:sudo chmod 777 filename

# ls -l列举出当前目录权限信息,对应权限说明:
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。

vi编辑器相关:vim xxx/文件名进入vi编辑器,退出时先按ESC然后输

  • 保存并退出::wq
  • 强制保存并退出(当前用户权限不够)::wq!
  • 不保存退出::q
  • 强制不报错退出::q!

系统管理命令

查看网络配置:ifconfig

创建用户:useradd 用户名

用户设置密码:passwd 用户名

查看所有用户名:cat /etc/passwd

删除用户:userdel 用户名

查看进程(显示pid):ps

查看JAVA进程:jps

关闭某个进程:kill -9 pid

查看端口信息:netstat

防火墙

打开防火墙:systemctl start firewalld

关闭防火墙:systemctl stop firewalld

查看防火墙状态:systemctl status firewalld

开机禁用防火墙:systemctl disable firewalld

开机启动防火墙:systemctl enable firewalld

打包解压

-C:打包 -x:解包 -v:显示 -t:查看 -z:gzip -j:bzip2 -f:使用文档名

打包opt文件夹,压缩包命名test.tar.gztar -zcvf test.tar.gz /opt/

解压test.tar.gz到当前目录:tar -zxvf test.tar.gz -C ./(tar -zxvf test.tar.gz -C 自定义路径)

GUI

重设密码:vncpasswd

启动并设置分辨率:vncserver -geometry 1920x1080 :1vncserver:1

查看已有桌面:ps -ef|grep -i vnc

关闭已有桌面:vncserver -kill :1(关闭桌面1)、kill -9 uid

Screen

Screen,在Ubuntu下自带的一种新建窗口的功能,例如一段py代码或需要持续运行的程序放在screen中,在关闭ssh工具后仍可以持续运行

新建窗口:screen -R 窗口名字

进入已有窗口:screen -r 窗口名字

查看已有窗口:screen -ls

关闭当前窗口:Ctrl+a+d

删除当前窗口:exit

删除某个窗口:screen -S id.session_name -X quit

进入已有窗口报错There is no screen to be resumed matching xxx.是由于当前有其它用户或之前在某一窗口下突然断网导致窗口未关闭持续占用,screen -d id.session_name 关闭窗口再执行screen -r 窗口名字

SSH

适用ssh连接服务器:ssh ipssh 用户名@ip

但这种方式每次都需要输入密码,配置ssh密钥:

  1. 生成密钥对:ssh-keygen -t rsa -C "用户名" -f "文件名"

    参数解释(留空则默认)
    -t加密方式:rsa、ed25519、dss,默认为rsa
    -C命名密钥,默认为主机用户名
    -f文件名称,默认为id_rsa
  2. 客户端(即本地电脑)存放私钥,并向config文件中添加

    Host xxx	# 别名
    HostName xxx.xxx.xxx.xxx # ip地址
    IdentityFile ~/.ssh/tecent_VPS # 私钥路径
    PreferredAuthentications publickey
    User git # 用户
  3. 服务端存放公钥,例如/home/ubuntu/.sshauthorized_keys中填写即xxx.pub中的内容,如果需要填写多个公钥可以在authorized_keys中追加多条

  4. 连接方式:

    1. ssh -i ~\.ssh\私钥路径 用户@ip(未配置第二步config文件需要指定密钥位置)
    2. ssh 用户名@ip
    3. ssh 别名

ssh原理:

ssh原理