Linux零碎笔记, 及一些命令

001.gui与tui

gui, 完全的图形界面. tui, 终端下的图形界面. 

002.补全命令

输入前缀, 按一次Tab. 若前缀不唯一, 按2次Tab, 出现相关命令列表. 

003.RHEL7.2实现上网功能

1.固定的可用联网IP地址
2.关闭防火墙
3.关闭selinux
4.光盘自动挂载
5.配置好本地yum源

004.linux系统安装分区(标准分区)

1.boot分区:引导分区(启动系统用的), grub(引导器), 内核文件   200M
2.swap分区:内存扩展分区, 一般最多8G或16G            1000M
3./ 根:所有文件的根                        10G    
4.sda:linux下的第一个磁盘
5.RHEL7使用xfs文件系统, RHEL6使用ext4文件系统, Win7/10使用NTFS文件系统

005.手动配置以太网_IPv4设置

1.ip地址:192.168.0.71(网段192.168一样, 且是没用过的ip)
2.子网掩码:24
3.网关:192.168.0.1
4.DNS服务器:8.8.8.8(或114.114.114.114)

006.ubuntu第一次切换到root用户失败

1.为root设置一个root密码
sudo passwd root // 之后会提示要输入root用户的密码, 连续输入root密码
2.使用
su,并按照提示输入root密码, 就可以在终端中切换成超级管理员用户身份了!    
3.设置后,以后就可以直接root登录了

007.ubuntu安装yum

1.安装了build-essential: 
apt-get install build-essential
2.安装yum: 
apt-get install yum

008.Xshell由于权限问题无法上传文件到linux

  1. 给lunux的文件夹设置权限, 例:
给/usr下的java文件夹添加上传权限
chmod -R 777 /usr/java  // -R表示包括子文件夹
添加权限后,在/usr目录下输入:
ll    // 显示/usr/java这一个文件夹drwxrwxrwx(之前为drwxr-xr-x),并且有绿色阴影
  1. Ubuntu chmod 命令可以用来修改文件或文件夹的读写权限, 命令有两种使用方式:

      (1)chmod [ u / g / o / a ] [ + / - / = ] [ r / w / x ] file, 其中: 
      u表示User, 是文件的所有者
      g表示跟User同Group的用户
      o表示Other, 即其他用户
      a表示ALL, 所有用户
      +表示增加权限
      -表示取消权限
      =表示取消之前的权限, 并给予唯一的权限
      r表示Read, 即读文件
      w表示Write, 即写文件
      x表示运行文件
      file表示文件的路径, 如ubandy-rest/job/views.py
      For example: chmod u+rw ubandy-rest/job/views.py
    
      2)chmod [xyz] file
      其中, x, y, z分别表示数字(最大不超过7), 并分别对应User、Group、Other
      x, y, z的值由r(r=4), w ( w=2 ), x ( x=1 )来确定
      For example:chmod 765 ubandy-rest/authentication/models.py  
      当然, 你也可以使用通配符 ‘*’, 来设置当前路径下的所有文件的权限
      For example:
      假如, 当前你的路径下有文件:1.txt,  2.html,  3.py
      使用命令:chmod 777 *  
      可以同时设置上述三个文件的权限为rwx
      如果你要修改整个文件夹的权限, 比如你有一个文件夹WhoJoy, 
      你想修改这个文件夹(包括内部的所有文件)的权限, 那么
      可以使用命令:chmod -R 777 WhoJoy/  
      其中:-R表示以递归整个文件夹中的子文件
    

009.ubuntu中apt命令是什么的缩写

the Advanced Packaging Tool

010.Xshell命令行的锁定/解除

Ctrl + q

011.Xshell无法连接到虚拟机,可能原因

1.防火墙未打开22端口
2.未安装openssh-server
3.虚拟机无法联网

012.ubuntu标准磁盘分区:21.5GB

primary   /boot   2.0GB    f    ext4
primary   swap    2.5GB    f    swap
primary   /home   7.0GB    f    ext4
logical   /       10.0GB    f    ext4

013.ubuntu查看所有组和用户

cat /etc/group
sudo cat /etc/shadow

014.查看ip网址

https://ip.cn 或者 https://ipinfo.io

015.ubuntu下载ping和ifconfig命令

apt install iputils-ping
apt install net-tools

016.ubuntu16.04关闭/开启mysql开机启动

// 禁止启动
sudo systemctl disable mysql
# 开机启动
sudo systemctl enable mysql

017.查看一个目录下所有文件的数量(包括子目录下的文件,只算文件,不算目录)

ls -lR|grep "^-"|wc -l

018.ubuntu设置mysql不区分大小写

// 在/etc/mysql/mysql.conf.d/mysqld.cnf文件中加一行代码: 
lower_case_table_names=1

019.关机

init 0

020.虚拟机切换到主机

Ctrl + Alt

021.清屏

Ctrl + l

022.取消某一操作

Ctrl + c

023.虚拟机BIOS设置

开机按F2(或虚拟机_电源_打开电源进入固件)

024.查看ip

ifconfig

025.编辑文件

vim

026.保存退出

:wq

027.不保存退出

:q!

028.撤销

Esc + u

029.进入插入模式

i

030.复制粘贴

插入模式下选中一段文本,按下鼠标滚轮

031.重启

reboot(或者sudo shutdown -r now)

032.查看当前登录用户

whoami

033.切换用户

su - root(用户名)

034.进入全屏

  1. VMware进入全屏
    Ctrl + Alt + Enter
  2. Xshell进入全屏
    Alt + Enter

035.创建新的文件

touch a.txt

036.复制一个文件夹下所有文件(包括子文件夹)到另一个文件夹下:

cp -r /fangjian/tomcat8_new/webapps/ROOT/* /fangjian/bak/oa_20170905_test/ROOT

037.删除一个文件夹下所有文件(包括子文件夹)

rm -rf /fangjian/bak/oa_20170905_test/*   // 不加/*则删父文件夹

038.查看Linux是32位还是64位

sudo uname -m // i686表示是32位,x86_64表示是64位

039.解压压缩文件

tar -zxvf test.tar.gz

040.创建文件夹

mkdir java

041.为过长的目录建立一个链接

ln -s /usr/java/jdk1.8.0_60/ /usr/jdk

042.查看某进程名的PID

ps -ef | grep java

043.根据端口号查看该端口号被谁占用

lsof -i:8080 // 若命令用不了,则需: yum -y install lsof
或者:
netstat -apn | grep 8080

044.根据进程PID查看该进程占用的端口号

netstat -nap | grep 2703 // 若命令用不了,则需: yum -y install net-tools

045.根据进程PID杀掉该进程

kill -9 2703

046.纯文本形式访问网址

elinks -dump http://www.baidu.com // 若命令用不了,则需: yum -y install elinks

047.RHEL7查看已启动的服务列表

systemctl list-unit-files|grep enabled

048.关闭虚拟机

shutdown -h now

049.Xshell锁屏

Ctrl+s
解锁:
Ctrl+q

050.登录mysql

mysql -h localhost -u root -proot

051.查看jdk安装路径

which java
或者:
echo $JAVA_HOME

052.查看tomcat版本

进入tomcat的bin下执行sh version.sh

053.zip压缩文件

zip -r fileName.zip 文件夹名
解压缩:
unzip fileName.zip

054.查看ubuntu版本

sudo lsb_release -a

055.复制一个文件夹下所有文件(包括子文件夹的所有文件但不复制目录,不考虑文件重名)到另一个文件夹下:

find /home/dailin/ -type f -exec cp {} /home/c1 ;

056.显示所有ufw应用的配置

sudo ufw app list

057.vim快捷键

01.光标跳转到页面第一行: gg
02.光标跳转到页面最后一行: Shift + g
03.删除光标所在行: dd
04.删除光标所在的向下n行: ndd n表示数字
05.清空文本:先执行:gg 再执行:d + (Shift + g)
06.复制光标所在的行: yy
07.复制光标所在的向下n行: nyy n表示数字
08.将已复制的数据粘贴在光标的下一行: 小p表示
09.将已复制的数据粘贴在光标的上一行: 大P
10.撤销上一步操作: u (相当于windws的Ctrl + z)
11.与u相反, 回到后一步操作: ctrl+r (相当于windws的Ctrl + y)
12.重复前一个操作: . 点
13.跳转到某一指定行: :12 跳转到第12行
14.键入/后, 光标进入VIM底部的命令行, 这时就可以输入以/为开始的/搜索命令,按n搜索下一个,按N搜索上一个

058. 查看文件占用空间大小

du -ah -d 0
-a代表所有文件
-h代表加单位
-d 0代表: 只深入到第n层目录,若无此属性,则包含所有子目录

059.ubuntu查看磁盘空间

df -h

060.ubuntu永久修改主机名

1、查看主机名
在Ubuntu系统中, 快速查看主机名有多种方法:
其一, 打开一个GNOME终端窗口, 在命令提示符中可以看到主机名, 主机名通常位于“@”符号后;
其二, 在终端窗口中输入命令:hostname或uname –n, 均可以查看到当前主机的主机名.

2、临时修改主机名
命令行下运行命令:“hostname 新主机名”
其中“新主机名”可以用任何合法字符串来表示. 不过采用这种方式, 新主机名并不保存在系统中, 重启系统后主机名将恢复为原先的主机名称.
例子:hostname ubuntu-temp
这样主机名字就临时被修改为ubuntu-temp, 但是终端下不会立即显示生效后的主机名, 重开一个终端窗口(通过ssh连接的终端需要重新连接才可以);

3、永久修改主机名
在Ubuntu系统中永久修改主机名也比较简单. 主机名存放在/etc/hostname文件中, 修改主机名时, 编辑hostname文件, 在文件中输入新的主机名并保存该文件即可.
重启系统后, 参照上面介绍的快速查看主机名的办法来确认主机名有没有修改成功.

值得指出的是, 在其它Linux发行版中, 并非都存在/etc/hostname文件.
如Fedora发行版将主机名存放在/etc/sysconfig/network文件中. 所以, 修改主机名时应注意区分是哪种Linux发行版.

4、/etc/hostname与/etc/hosts的区别
/etc/hostname中存放的是主机名, hostname文件的一个例子:
paulandcode

/etc/hosts存放的是域名与ip的对应关系, 域名与主机名没有任何关系, 你可以为任何一个IP指定任意一个或多个名字, hosts文件的一个例子:(IP地址 hostname aliases) aliases可选
127.0.0.1 localhost paulandcode
127.0.1.1 v-jiwan-ubuntu

061.linux的bash命令一般存放在/sbin, /bin, /usr/bin,这几个目录中

062.ubuntu 显示相对路径

打开 home/paul/.bashrc
找到(可能有多处):
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
修改将小写w改为大写W保存
执行source home/paul/.bashrc

063.Ubuntu的add-apt-repository: command not found

sudo apt-get install software-properties-common python-software-properties

064.创建用户

adduser paul        创建用户
passwd paul         给已创建的用户testuser设置密码
userdel paul        用户名删除用户
给paul用户增加所有权限:
    vim /etc/sudoers
    在root    ALL=(ALL:ALL) ALL这一行的下面增加如下代码:
    paul    ALL=(ALL:ALL) ALL

065.给用户增加sudu权限

1) 进入到root用户下. 
2)添加文件的写权限. 也就是输入命令"chmod u+w /etc/sudoers". 
3)编辑该文件,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"yourName ALL=(ALL) ALL"
4)撤销文件的写权限. 也就是输入命令"chmod u-w /etc/sudoers"

066.删除除了某几个文件之外的所有文件

例:删除A文件夹下除了a文件夹和b.txt文件的其他所有文件和文件夹
    rm -rf A/!(a|b.txt)
不过一般bash中运行后会提示
“-bash: !: event not found ” 可以通过运行shopt -s extgolb来解决. 如下:
[root@localhost abc]# rm -f !(a)
-bash: !: event not found
[root@localhost abc]# shopt -s extglob
[root@localhost abc]# rm -f !(a)
[root@localhost abc]# ls
a

067.linux脚本加入延时等待

默认以秒为单位,以后接时间的单位, 可以以m表示分钟, h表示小时, d表示天数
sleep 5
sleep 0.005
sleep 3m

068.awk -F ':' '{print $1"\t"$3}', 以冒号为分隔符后把第1,3列,以t分隔输出

例: kill掉第一个java进程id
netstat -apn |grep java |awk '{print $7}' |xargs |awk -F '/' '{print $1}' |xargs kill -9

069.查看文件夹的目录结构

sudo tree /etc/nginx

070. Linux上的MySQL设置区分大小写

在/etc/mysql/mysql.conf.d/mysqld.cnf中最后一行加入如下代码:
lower_case_table_names=1

071.Ubuntu安装MySQL

sudo apt update
sudo apt install mysql-server mysql-client

072. Linux下使用命令行导入, 导出MySQL数据库

(1) 导出数据库
1> 只导出表结构, 格式: mysqldump -u用户名 -p密码 -d 数据库名 > 文件名.sql

/usr/local/mysql/bin/mysqldump -uroot -p -d abc > file.sql

若-p后不加密码, 则敲回车后会提示输入密码

2> 导出表结构和数据, 格式: mysqldump -u用户名 -p密码 数据库名 > 文件名.sql

/usr/local/mysql/bin/mysqldump -uroot -p abc > file.sql

(2) 导入数据库
1> 使用MySQL的Bash命令, 格式: mysql -u用户名 -p密码 数据库名 < 文件名.sql

mysql -uroot -p abc < file.sql

2> 进入MySQL执行命令
a.进入MySQL

mysql -uroot -p

b.选择数据库

use abc;

c.设置数据库编码, 这个很关键, 否则会乱码

set names utf8;

d.导入数据

source /home/abc/file.sql;

073. Linux重启后Tomcat自动启动

只需更改一个文件后重启即可: /etc/rc.local
在文件结尾加入如下代码

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CATALINA_HOME=/home/paul/apache-tomcat-9.0.0.M26
# tomcat自启动
/home/paul/apache-tomcat-9.0.0.M26/bin/startup.sh

074. 虚拟机上的Tomcat无法被主机访问

防火墙原因, 允许访问8080端口:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

如果不使用“--permanent”标记, 把么防火墙规则在重启后会失效.

075. Linux上的MySQL设置区分大小写

在/etc/mysql/mysql.conf.d/mysqld.cnf中最后一行加入如下代码:

lower_case_table_names=1

076. Linux虚拟机桥接联网的配置文件

Linux虚拟机桥接联网时需要如下两个配置文件:

1. /etc/resolv.conf

nameserver 8.8.8.8

2. /etc/sysconfig/network-scripts/ifcfg-eno16777736

TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.0.66"
NETWORK="255.255.255.0"
GATEWAY="192.168.0.1"
DNS1="8.8.8.8"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="96aa40e3-de9e-4074-b4ad-760d28ae2b66"
DEVICE="eno16777736"
ONBOOT="yes"

077. 如何Ping固定端口号

1. Windows

需要选择: 控制面板 --> 程序 --> 启动或关闭Windows功能, 在Telnet客户端和Telnet服务端打勾. 被Ping的机器需要服务端, 要Ping的机器需要客户端.

2. Linux若没有自带telnet, 需要安装客户端和服务端

3. 连接命令: telnet 127.0.0.1 8080

注意: IP和端口号之间是空格, 不是冒号.

上一篇:angular源码分析:angular中脏活累活承担者之$parse


下一篇:云服务器为什么淘汰了传统服务器