1. 指定区域截图 shift + PrtSc
2. 截屏并复制到剪贴板 Ctrl+Alt+A
压缩:命令 + 参数 + 压缩包名字 + 压缩的文件或目录
解压缩:命令 + 压缩包名字 + 参数(rar没有参数) + 解压目录
$ who
yufei tty7 2018-10-14 10:57 (:0)
alt + ctrl + F1~F7
互不影响
$ ps aux | grep "bash"
yufei 7273 0.0 0.0 30040 5512 pts/4 Ss 17:11 0:00 bash
yufei 7357 0.0 0.0 21312 924 pts/4 R+ 17:13 0:00 grep --color=auto bash
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
kill -9 998877
$ env |grep path
DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
$ ifconfig
enp0s31f6 Link encap:以太网 硬件地址 54:e1:ad:dd:4f:44
UP BROADCAST MULTICAST MTU:1500 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:0 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:0 (0.0 B) 发送字节:0 (0.0 B)
中断:16 Memory:ec300000-ec320000
enx00e04c3600cb Link encap:以太网 硬件地址 00:e0:4c:36:00:cb
inet 地址:192.168.1.2 广播:192.168.1.255 掩码:255.255.255.0
inet6 地址: fe80::21a6:a59b:1f7f:6d51/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:1814079 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:1281111 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:2505593352 (2.5 GB) 发送字节:111407766 (111.4 MB)
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:7901 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:7901 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:773235 (773.2 KB) 发送字节:773235 (773.2 KB)
wlp4s0 Link encap:以太网 硬件地址 28:c6:3f:4f:c7:84
inet 地址:192.168.1.20 广播:192.168.1.255 掩码:255.255.255.0
inet6 地址: fe80::1c92:d4e5:275f:6d86/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:12610 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:1435 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:1070689 (1.0 MB) 发送字节:207989 (207.9 KB)
$ ping www.baidu.com
PING www.a.shifen.com (111.13.100.92) 56(84) bytes of data.
64 bytes from localhost (111.13.100.92): icmp_seq=1 ttl=55 time=5.53 ms
64 bytes from localhost (111.13.100.92): icmp_seq=2 ttl=55 time=5.81 ms
64 bytes from localhost (111.13.100.92): icmp_seq=3 ttl=55 time=5.95 ms
64 bytes from localhost (111.13.100.92): icmp_seq=4 ttl=55 time=6.69 ms
64 bytes from localhost (111.13.100.92): icmp_seq=5 ttl=55 time=6.88 ms
64 bytes from localhost (111.13.100.92): icmp_seq=6 ttl=55 time=5.87 ms
64 bytes from localhost (111.13.100.92): icmp_seq=7 ttl=55 time=5.81 ms
$ nslookup www.baidu.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 111.13.100.92
Name: www.a.shifen.com
Address: 111.13.100.91
方法1 adduser
$ sudo adduser luffy
[sudo] yufei 的密码:
正在添加用户"luffy"...
正在添加新组"luffy" (1001)...
正在添加新用户"luffy" (1001) 到组"luffy"...
创建主目录"/home/luffy"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
正在改变 luffy 的用户信息
请输入新值,或直接敲回车键以使用默认值
全名 []:
房间号码 []:
工作电话 []:
家庭电话 []:
其它 []:
这些信息是否正确? [Y/n] y
**方法2 创建用户的同时,创建用户的家目录 一般使用这组命令就可以了**
$ sudo groupadd itcast
$ sudo useradd -s /bin/bash -g itcast -d /home/itcast -m itcast
方法1 不会删除家目录
$ sudo deluser itcast
正在删除用户 'itcast'...
警告:组"itcast"没有其他成员了。
完成。
$ sudo groupdel itcast
groupdel:“itcast”组不存在
** 当删除一个组内的最后一个成员后,组也自动删除 **
$ ls -l /home
总用量 12
drwxr-xr-x 2 1002 1002 4096 10月 14 17:32 itcast
drwxr-xr-x 2 luffy luffy 4096 10月 14 17:29 luffy
drwxr-xr-x 39 yufei yufei 4096 10月 14 10:57 yufei
** deluser没有删除用户的家目录**
$ sudo rm -rf itcast/
$ ls -l
总用量 8
drwxr-xr-x 2 luffy luffy 4096 10月 14 17:29 luffy
drwxr-xr-x 39 yufei yufei 4096 10月 14 10:57 yufei
**方法2 连同用户家目录一并删除 一般使用这个方法就可以了**
$ sudo userdel -r luffy
userdel: luffy 邮件池 (/var/mail/luffy) 未找到
yufei@yufei:home$ ls -l
总用量 4
drwxr-xr-x 39 yufei yufei 4096 10月 14 10:57 yufei
yufei@yufei:home$ su itcast
密码:
$ sudo su
root@yufei:/home/yufei#
$ sudo passwd itcast
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
切换到root用户,vi /etc/sudoers
增加自己的用户名 例如:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
yf ALL=(ALL) ALL
$ sudo usermod -aG vboxsf $(whoami)
$ sudo apt-get install exfat-utils
$ vi ~/.bashrc
输入
JAVA_HOME=/usr/local/java
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASS_PATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME
export JRE_HOME
export CLASS_PATH
export PATH
$ source ~/.bashrc
$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
下载eclipse解压后拷贝到主目录
配置导航
编辑 $ sudo vi /usr/share/applications/eclipse_jee.desktop
[Desktop Entry]
Encoding=UTF-8
Name=EclipseJee
Comment=EclipseJee
Exec=/home/yufei/eclipse/eclipse
Icon=/home/yufei/eclipse/icon.xpm
Terminal=False
StartupNotify=true
Type=Application
Categories=Application;Development;
启动eclipse如果出现如下错误
A Java Runtime Environment (JRE) or Java Development Kit (JDK)
must be available in order to run Eclipse.
将安装的jdk中的jre链接到eclipse目录下
$ ln -s /usr/local/java/jre jre
下载anacona并安装
$ sh Anaconda3-5.3.0-Linux-x86_64.sh -b
配置
$ vi ~/.bashrc
输入
ANACONDA_HOME=/home/yf/anaconda3
PATH=$ANACONDA_HOME/bin:$PATH
export PATH
export ANACONDA_HOME
$ source ~/.bashrc
需要注意ANACONDA_HOME的值应该是安装anaconda的路径,如果是默认安装则目录在你的主目录下
$ sudo apt-get install unrar -y
https://centos.pkgs.org/
编辑~/.bashrc,将62行末尾的w改成W
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
fi
【1】下载Pycharm
【2】解压到~/目录下
【3】设置桌面图标 在/usr/share/applications目录下新建pycharm.desktop,输入下边的内容
[Desktop Entry]
Encoding=UTF-8
Name=PyCharm
Comment=PyCharm
Exec=/home/yf/pycharm-community-2018.2.3/bin/pycharm.sh
Icon=/home/yf/pycharm-community-2018.2.3/bin/pycharm.png
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
Help->Install New Software
http://www.eclipse.org/cdt/downloads.php
http://download.eclipse.org/tools/cdt/releases/9.4
1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。
2、conda常用的命令。
1)conda list 查看安装了哪些包。
2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境
3)conda update conda 检查更新当前conda
3、创建python虚拟环境。
使用 conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
4、使用激活(或切换不同python版本)的虚拟环境。
打开命令行输入python --version可以检查当前python的版本。
使用如下命令即可 激活你的虚拟环境(即将python的版本改变)。
Linux: source activate your_env_name(虚拟环境名称)
Windows: activate your_env_name(虚拟环境名称)
这是再使用python --version可以检查当前python版本是否为想要的。
5、对虚拟环境中安装额外的包。
使用命令conda install -n your_env_name [package]即可安装package到your_env_name中
6、关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)。
使用如下命令即可。
Linux: source deactivate
Windows: deactivate
7、删除虚拟环境。
使用命令conda remove -n your_env_name(虚拟环境名称) --all, 即可删除。
8、删除环境中的某个包。
使用命令conda remove --name your_env_name package_name 即可。
$ cat Makefile
hello:helloworld.o
gcc -o hello helloworld.o
helloworld.o:helloworld.c
gcc -o helloworld.o -c helloworld.c
clean:
rm hello helloworld.o
$ ls
helloworld.c Makefile
$ make
gcc -o helloworld.o -c helloworld.c
gcc -o hello helloworld.o
$ make clean
rm hello helloworld.o
$ ls
helloworld.c Makefile
可执行文件
$ readelf -h hello
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x4003d0
Start of program headers: 64 (bytes into file)
Start of section headers: 2584 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 8
Size of section headers: 64 (bytes)
Number of section headers: 30
Section header string table index: 27
可重定位文件
$ readelf -h helloworld.o
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 312 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 64 (bytes)
Number of section headers: 13
Section header string table index: 10
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
$ file helloworld.o
helloworld.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
静态库和动态库文件
规则
变量
条件执行
文本、文件名处理函数
文件包含
注释
##########################
# 文件注释
# a simple Makefile demo
# Author: [email protected]
# Date: 2016.12.20
##########################
ifeq ($(DEBUG), "true") # 条件执行
CC = gcc -g # 变量
else # 条件执行
CC = gcc # 变量
endif # 条件执行
all:hello # 规则
hello:lcd.o player.o # 规则
$(CC) -o hello lcd.o player.o
player.o:player.c # 规则
$(CC) -o player.o -c player.c
lcd.o:lcd.c # 规则
$(CC) -o lcd.o -c lcd.c
clean:
rm lcd.o hello player.o
1. 项目名全部小写,包名全部小写,类名首字母大写
2. 变量名、方法名首字母小写,驼峰命名
3. 常量名全部大写
public class StringToNum {
public static void main(String[] args) {
String num = "123";
int intVal = Integer.valueOf(num);
float fltVal = Float.valueOf(num);
long longVal = Long.valueOf(num);
System.out.println(intVal);
System.out.println(fltVal);
System.out.println(longVal);
}
}
1. 非封装类型比较值是否相等用==
2. 封装类型==用于比较内存地址是否相同,equals方法比较值是否相等
public class StringDemo {
public static void main(String[] args) {
String a = "abc"; // 常量
String b = "abc"; // 常量
System.out.println("q1: " + (a == b)); // 常量 true
Integer i1 = 10;
Integer i2 = 10;
System.out.println("q2: " + (i1 == i2)); // 常量 true
String b1 = new String("abc");
System.out.println("q3: " + (a == b1)); // 变量 false
String a1 = new String("abc");
System.out.println("q4: " + (a1 == b1)); // 变量 false
String c = "a";
String d = c + "bc"; // 变量连接常量是变量
String e = "a" + "bc"; // 常量连接常量是常量
System.out.println("q5: " + (a == d)); // 变量false
System.out.println("q6: " + (a == e)); // 常量true
}
}
public class StringBadUsage {
public static void main(String[] args) {
String a = "123456789";
System.out.println(a.substring(0, 5));
String b = "123456789";
b.substring(0, 5); // substring方法,源串常量不变,返回子串
System.out.println(b);
String c = "123456789";
c.replace('1', '2');
System.out.println(c); // replace方法,源串不变,返回取代后的新串
String num = "1";
for (int i = 0; i < 100; i++) {
num = num + "0"; // 避免大规模使用String的连接操作,如果确实需要应该改用StringBuilder
}
System.out.println(num);
}
}
public class StringBuilderDemo {
public static void main(String[] args) {
// 创建StringBuilder类对象 用于单线程
StringBuilder builder = new StringBuilder();
// append用法
builder.append("123").append("456");
// substring用法
System.out.println(builder.substring(0, 4));
System.out.println(builder);
// replace用法
builder.replace(0, 3, "a");
System.out.println(builder);
// deleteCharAt用法
builder.deleteCharAt(0);
System.out.println(builder);
}
}
class Person {
void changeCompany(String name) {
name = "IBM";
}
}
public class FunctionDemo2 {
public static void main(String[] args) {
String name = "HP";
Person person = new Person();
person.changeCompany(name);
System.out.println(name); // HP
}
}
访问控制符 | 同类 | 同包 | 子类 | 不同包 |
---|---|---|---|---|
pulic | 能访问 | 能访问 | 能访问 | 能访问 |
protected | 能访问 | 能访问 | 能访问 | 不能访问 |
默认 | 能访问 | 能访问 | 不能访问 | 不能访问 |
private | 能访问 | 不能访问 | 不能访问 | 不能访问 |
class Student {
String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
// 重写equals方法,如果不重写,会用Object中的方法
public boolean equals(Object obj) {
if (getClass() == obj.getClass()) {
if (((Student) obj).getId() == this.id) {
return true;
} else {
return false;
}
}
return true;
}
}
public class EqualsDemo {
public static void main(String[] args) {
Student s1 = new Student();
s1.setId("1");
Student s2 = new Student();
s2.setId("1");
System.out.println(s1.equals(s2)); // true
}
}
public class FinalDemo {
public static void main(String[] args) {
final String a = "1";
String b = "1";
String c = "123";
String d = b + "23"; // 变量
System.out.println(c == d); // false
String e = a + "23"; // 常量
System.out.println(c == e); // true
}
}
1. 方法重载
2. 重载与覆盖
把子类中的方法移动到父类中,
返回类型 | 方法名 | 参数 | 重载/ 覆盖 |
---|---|---|---|
相同 | 相同 | 相同 | 覆盖 |
任意 | 相同 | 不同 | 重载 |
不同 | 相同 | 相同 | 报错 |
abstract class Employee {
protected abstract void talkBusiness();
}
class Sales extends Employee {
public void talkBusiness() {
System.out.println("Sales talk business.");
}
}
class Manager extends Employee {
public void talkBusiness() {
System.out.println("Manager talk business.");
}
}
public class ExpandDemo {
public static void main(String[] args) {
Employee sales = new Sales();
sales.talkBusiness();
Employee manager = new Manager();
manager.talkBusiness();
}
}
java -Xmx2048M -jar train.jar
扩展虚拟机运行内存
1. F6 单步跳过函数
2. F5 单步进入函数
3. F8 运行到下一个断点
4. ctrl+F2 停止调试
5.
#coding:gbk
"""
递归列出目录中所有文件 windows版
"""
import os
from fnmatch import fnmatch
def list_files(path):
files_li = []
for root, dirs, files in os.walk(path):
for one_file in files:
if os.path.getsize(ur"%s\%s" % (root, one_file)) > 0:
files_li.append(ur"%s\%s" % (root, one_file))
return files_li
files_li = list_files(ur"D:\zw_work\20170116-句子合理性分析-[9]\src\cpp\Preprocess\corpus\pmlc")
for file_name in [w for w in files_li if fnmatch(w,u'*.txt')]:
print file_name
# Linux版
import os
def list_files(path):
files_li = []
for root, dirs, files in os.walk(path):
for one_file in files:
if os.path.getsize(u"%s/%s" % (root, one_file)) > 0:
files_li.append(u"%s/%s" % (root, one_file))
return files_li
# 文件名匹配
from fnmatch import fnmatch
file_li = [ ]
for file_name in [w for w in files_li if fnmatch(w,u'*.sgml')]:
print file_name