shell常用命令

2018-11-12  本文已影响0人  leobupt

1. 目的

环境: Ubuntu16.04
梳理

2. 系统相关

2.1 设置root用户密码

1. 开机进入桌面,ctrl+alt+T打开终端
2. 在此处输入:sudo passwd root
3. 设置root密码
4. 进入root账号: 终端上输入:su  回车键 , 然后输入设置的新密码,即可

2.2 重新添加系统睡眠选项

1. 先检查是否有交换分区(swap),如果有确认交换分区至少和实际可用内存一样大。
2. 按Ctrl+Alt+T开启终端或者Dash搜索开启终端
3. 运行sudo pm-hibernate,输入密码后回车。
4. 如果休眠测试无法正常工作,就说明你的计算机无法进行休眠。
5. 如果休眠测试可以正常工作,进入root权限,新建文件/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla添加以下内容后保存
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

6、关闭所有程序,重启计算机。
7、重启后,菜单中就有休眠选项了。

3. 编码

3.1 base64

场景1: 把字符按照base64编码
echo -n 哈哈 | base64 
# 结果如下:
5ZOI5ZOI

场景2: 把字符按照base64解码
echo -n 5ZOI5ZOI | base64 -d
# 结果如下:
哈哈

4. alias与export

尽量使用export
alias , 使用which 命令找不到, 但是export可以

5. 空间大小

6. 后台运行

# 命令后面加& 
ipython notebook &

7. watch

8. rsync | scp

9. diff

diff file1 file2
# 如果想看的更清楚, 共同和不同的都打印
vimdiff file1 file2

9.1 meld

10.vim: 大小写替换

vim中大小写转化的命令是
gu或者gU
形象一点的解释就是小u意味着转为小写;大U意味着转为大写.
# 1、整篇文章大写转化为小写
  打开文件后,无须进入命令行模式。键入:ggguG 

解释一下:ggguG分作三段gg gu G
gg=光标到文件第一个字符
gu=把选定范围全部小写
G=到文件结束
# 2、整篇文章小写转化为大写
  打开文件后,无须进入命令行模式。键入:gggUG 

解释一下:gggUG分作三段gg gU G
gg=光标到文件第一个字符
gU=把选定范围全部大写
G=到文件结束
# 3、只转化某个单词
guw 、gue
gUw、gUe
这样,光标后面的单词便会进行大小写转换
想转换5个单词的命令如下:
gu5w、gu5e
gU5w、gU5e
# 4、转换几行的大小写
将光标定位到想转换的行上,键入:1gU 从光标所在行 往下一行都进行小写到大写的转换
10gU,则进行11行小写到大写的转换
以此类推,就出现其他的大小写转换命令
gU0        :从光标所在位置到行首,都变为大写
gU$        :从光标所在位置到行尾,都变为大写
gUG        :从光标所在位置到文章最后一个字符,都变为大写
gU1G      :从光标所在位置到文章第一个字符,都变为大写

11. linux权限管理

12. date

# 给定日期字符串, 转换显示格式, 包括可转为时间戳
date -d "dateString"  +"formatString"   
$ date -d "19700101 08:00:00" +%s 
0

# 给定时间戳, 转换对应日期字符串
date -d @timestamp  +"formatString" 
$ date -d @0 +"%Y%m%d %H:%M:%S"
19700101 08:00:00

# 给定日期进行加减
date -d -ndays +"formatString"
$ date -d -4days +"%Y-%m-%d"
2018-02-01

13. dirname

使用dirname在shell脚本中获取当前脚本文件所在的绝对路径.

# 比如: 找出python对应的文件绝对路径
dirname $(which python) 
# 找出本地安装sbt的路径
 echo $(dirname $(dirname $(readlink -f $(which sbt))))

14. xargs

# 针对id_file, 每行在file1中做grep操作
cat id_file
123
233
245

cat id_file | xargs -n1 -I {} grep {} file1 
# 批量转化时间戳为日期
# 比如, 文件file每行存放时间戳, 如下:
1539912736
1538992708
1538992479
# 使用如下命令, 批量转化:
cat file | xargs -n1 -I {} date -d @{} 
上一篇 下一篇

猜你喜欢

热点阅读