1. 文件操作
1.1 获取文件头/文件尾
head -100 catanila.out > temp.log
tail -f oc.logs
tail -100 oc.log
1.2 合并文件
cat *.txt > test.txt
1.3 清空文件
echo "" > oc.log
1.4 创建文件
touch test.txt
1.5 cmd结果导出到文件
mvn dependency:tree > tree.xml
2. 查看jar包/解压jar包
jar xvf *.jar 解压
jar -tvf *.jar 查看jar包内文件列表
//修改jar包内文件
vi portal.jar --> 找到文件 --> enter即进入编辑模式
3. sort 排序
//如果指定多个文件,则将全部文件当做一个文件进行处理
sort [options] [files]
-t 指定域分隔符(默认空格或tab) sort -t: -r video
-n 按数字排序(将字符串转数字)
-k 按指定字段(序号1开始)排序 l | sort -n -k 7
-b 忽略行前空格
-f 忽略大小写
-r 逆序排列
4. uniq 去重 统计重复行次数(需相邻,先sort)
uniq -c test.txt
-c 行首显示行出现的次数
-d 只打印重复行
-u 只打印非重复行
awk -F "/" '{print $3}' b.txt | sort -r| uniq -u
5. cut 分解出单个字符
cut -c3-5 /etc/passwd //就是输出/etc/passwd文件中每行的第三到第五个字符。
-c5 提取第5个字符
-c5- 提取第5个字符以后的字符
-c1,5,12 提取多个字符,中间用“,”符号隔开
-c5-14 提取第5个字符到第14个字符间的字符
6. 统计 ls -l | wc -l
wc [option] file
-c,--bytes 统计字节
-m,--chars 统计chracter
-l,--lines 统计行数
-L,--max-lene-length 长度最大行的长度
-w,--words 统计单词
7. du -m 文件(夹)大小
du : du -sm file/directory
默认不加选项 只显示文件夹的大小,包括显示子目录中的文件夹
-a 显示所有文件的大小,包括文件子目录中的文件
-s 只显示文件夹的总容量! 以k为单位显示,无后缀
-h 已G/M显示文件大小 显示后缀(只适用于linux)
-m 以M为单位显示大小 不显示M,只显示数字
-k 以1024 bit单位显示
-g 以GB为单位显示
8. sftp/ssh登录另一台linux
sftp besread@10.21.89.7 lls显示本地文件夹
ssh besread@10.21.89.7
9. df -h 查看磁盘空间
10. 查看端口占用(进程)
1-查找被占用的端口 netstat -tln | grep 8083
2-查看端口属于哪个程序, 切换到root用户, lsof -i :8083
12. wget 下载文件
13. uname -a 查看linux版本和内核版本
14. #()--字符串处理
file=/dir1/dir2/dir3/my.file.txt
${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
${file##*.}:删掉最后一个 . 及其左边的字符串:txt
${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个 / 及其右边的字符串:(空值)
${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:将全部dir 替换为 path:/path1/path2/path3/my.file.txt
//记忆方法如下
# 是 去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配
${file:0:5}:提取最左边的 5 个字节:/dir1
${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2
15. 设置别名 alias
//如此,可在任意目录执行简短的命令
alias p ${CASSANDRA_HOME}/bin/proc.sh
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1340 440 ? S Nov05 0:04 init
root 2 0.0 0.0 0 0 ? SW Nov05 0:00 [keventd]
root 3 0.0 0.0 0 0 ? SW Nov05 0:00 [keventd]
用户可以查看某个进程占用了多少CPU;
内存使用及其VSZ(虚拟内存大小)和RSS(常驻集大小):
VSZ表示如果一个程序完全驻留在内存的话需要占用多少内存空间;
RSS指明了当前实际占用了多少内存;
STAT显示了进程当前的状态:
"S":进程处在睡眠状态,表明这些进程在等待某些事件发生--可能是用户输入或者系统资源的可用性;
stat 中的参数意义如下:
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级
n 低优先级
s 包含子进程
+ 位于后台的进程组
2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u 以用户为主的格式来显示程序状况。
13)ps x 显示所有程序,不以终端机来区分。
ps -w 显示加宽可以显示较多的资讯
17. 改变文件权限
17.1 chmod--文件访问权限
chmod 777 test.log
chmod -R 777 test.log // 递归修改权限
17.2 setfacl - 文件访问权限控制
setfacl -Rm u:uniagent:rx /var/log //增加uniagent用户对/var/log文件夹的访问权限
setfacl -b /var/log //删除文件的ACl控制
getfacl /var/log //查看ACL权限列表
-m:设定ACL权限
-x:删除指定的ACL权限
-b:删除所以的ACL权限
-d:设定默认ACL权限
-k:删除默认ACL权限
-R:递归设定ACl权限
18. 用户和组管理
18.1 用户管理--usermod
18.2 群组管理-groupmod
groupmod -A uniagent mdn2000 //uniagent用户添加到组
groupmod -R uniagent mdn2000 //从组中删除uniagent用户
Usage: groupmod [-g gid [-o]] [-n new_name] group
-A user Add the user to the group entry
-R user Remove the user from the group entry
29. 保持程序后台运行(关闭终端程序继续运行)
以脱离终端的方式在后台运行这个shell命令: nohup 你的shell命令 &
//nohup命令可以让你的shell命令忽略SIGHUP信号,即可以使之脱离终端运行;“&”可以让你的命令在后台运行。
30. xshell使用证书登陆linux
基本步骤3步:
1、生成密钥,(公钥与私钥,xshell只能导出公钥,私钥保存在xshell中),
工具-->密钥生成-->“密钥名称”,即第3步登录中证书的名称-->
下一步,即将公钥复制。
2、公钥(Public Key)粘贴到服务器~/.ssh/authorized_key文件中。
3、配置ssh客户端使用密钥登录。新建连接-->用户省份认证-->方法(Public Key)
--> 输入用户名,选中1步中名字的证书即可。
31. 安装软件
Debian(使用aptitude管理) suduo -i ; apt-get install aptitude ; aptitude install package
//aptitude update 更新可用的包列表
//aptitude full-upgrade 将系统升级到新的发行版
//aptitude install pkgname 安装包
//aptitude remove pkgname 删除包
//aptitude purge pkgname 删除包及其配置文件
//aptitude show pkgname 显示包的详细信息