环境变量
修改当前用户
vim ~/.bashrc
例:设置java环境变量
#set oracle jdk environment
export JAVA8=/usr/lib/jvm/jdk1.8.0_191
export JAVA7=/usr/lib/jvm/jdk1.7.0_80
export JAVA_HOME=${JAVA7}
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export PATH=/usr/appengine/appengine-java-sdk-1.9.66//bin:$PATH
export PATH=/usr/apache-ant-1.9.13//bin:$PATH
export PS1="\[\e[32m\]\w\[\e[m\]\[\e[32m\] >\[\e[m\] "
使环境变量马上生效:
source ~/.bashrc
用于所有用户:
sudo vim /etc/profile
source /etc/profile
测试当前环境变量:
echo $PATH 或 env
解压
| 类型 | 解包命令 | 打包/压缩命令 |
|---|---|---|
| tar | tar xvf | tar cvf |
| gz | gunzip | gzip -d |
| tar.gz | tar zxvf | tar zcvf |
| zip | unzip | zip |
| rar | rar x | rar a |
linux下unzip的乱码问题 unar方法 这个工具会自动检测文件的编码,也可以通过-e来指定
sudo apt install unar
unar your-zip
文件管理
文件查看
| 命令 | 解释 |
|---|---|
| ls -l | 列出文件列表 |
| ls -a | 浏览隐藏文件 |
| ls -lh | 以易读方式显示大小 |
| ls -F | 列出文件和目录 |
| ls -R | 递归出子目录 |
| ls -ltr | 以修改时间排序 |
| ls -ls | 以文件大小排序 |
| 复制: |
cp [options] <source file or directory> <target file or directory>
options选项
| options | 解释 |
|---|---|
| -a | 保留链接和文件属性,递归拷贝目录,相当于下面的d、p、r三个选项组合 |
| -d | 拷贝时保留链接 |
| -f | 删除已经存在目标文件而不提示 |
| -i | 覆盖目标文件前将给出确认提示,属交互式拷贝 |
| -p | 复制源文件内容后,还将把其修改时间和访问权限也复制到新文件中 |
| -r | 若源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件 |
| -l | 不作拷贝,只是链接文件 |
| -s | 复制成符号连结文件 (symbolic link),亦即『快捷方式』档案 |
| -u | 若 destination 比 source 旧才更新 destination |
剪切:
mv 剪切
删除:
rm 删除
rmdir
# 强制删除
rm -rf
文件搜索
语法
find path -option [ -print ] [ -exec -ok command ] {} ; 参数说明 : find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
-pid n : process id 是 n 的文件
你可以使用 ( ) 将运算式分隔,并使用下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
实例 将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
# find . -name "*.c"
将目前目录其其下子目录中所有一般文件列出
# find . -type f
将目前目录及其子目录下所有最近 20 天内更新过的文件列出
# find . -ctime -20
查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:
# find /var/log -type f -mtime +7 -ok rm {} \;
查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
# find . -type f -perm 644 -exec ls -l {} \;
为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:
# find / -type f -size 0 -exec ls -l {} \;
权限管理
chmod -(代表类型) xxx(所有者) xxx(用户组) xxx(其它用户) 其他参数说明:
- c : 若该文件权限确实已经更改,才显示其更改动作
- -f : 若该文件权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
- –help : 显示辅助说明
- –version : 显示版本
| 命令 | 解释 |
|---|---|
| chmod 600 | 只有所有者有读写权限 |
| chmod 644 | 所有者有读写权限,组用户只有读权限 |
| chmod 700 | 只有所有者有读写和执行权限 |
| chmod 666 | 每个人有读写权限 |
| chmod 777 | 每个人有读写和执行权限 |
进程管理
查看进程号:
lsof -i:9999
关闭进程:
kill -2 785[进程号]
安装和卸载
deb文件 通过deb包安装软件:
sudo dpkg -i package_file.deb
卸载:
sudo dpkg -r package_name
注意,卸载时候是package_file.deb对应的package name 查找: 若不知道package name,可以通过
dpkg -l
若要查找对应的package,可以加通配符,如查找包含fox的package
dpkg -l *fox*即可
磁盘管理
- df:列出文件系统的整体磁盘使用量
- du:检查磁盘空间使用量
- fdisk:用于磁盘分区
df 检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息 语法:
df [-ahikHTm] [目录或文件名]
| 参数 | 选项 |
|---|---|
| -a | 列出所有的文件系统,包括系统特有的 /proc 等文件系统 |
| -k | 以 KBytes 的容量显示各文件系统 |
| -m | 以 MBytes 的容量显示各文件系统 |
| -h | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示 |
| -H | 以 M=1000K 取代 M=1024K 的进位方式 |
| -T | 显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出 |
| -i | 不用硬盘容量,而以 inode 的数量来显示 |
网络管理
ubuntu设置静态ip以后忘记设置dns,ping的时候报错:Name or service not known 添加dns即可
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
会话管理
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
语法
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
选项
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
常用screen参数
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session