ubuntu.plugin.zsh 4.89 KB
Newer Older
1
2
3
4
# Authors:
# https://github.com/AlexBio
# https://github.com/dbb
# https://github.com/Mappleconfusers
5
# https://github.com/trinaldi
6
# Nicolas Jonas nextgenthemes.com
7
# https://github.com/loctauxphilippe
8
# https://github.com/HaraldNordgren
9
10
11
#
# Debian, Ubuntu and friends related zsh aliases and functions for zsh

12
13
(( $+commands[apt] )) && APT=apt || APT=apt-get

14
15
16
17
18
19
alias acs='apt-cache search'
compdef _acs acs='apt-cache search'

alias afs='apt-file search --regexp'
compdef _afs afs='apt-file search --regexp'

20
21
22
# These are apt/apt-get only
alias ags="$APT source"   # asrc
compdef _ags ags="$APT source"
23
24
25
26

alias acp='apt-cache policy' # app
compdef _acp acp='apt-cache policy'

27
28
29
30
#List all installed packages
alias agli='apt list --installed'
compdef _agli agli='apt list --installed'

31
# superuser operations ######################################################
32
33
34
35
36

# List available updates only
alias aglu='sudo apt-get -u upgrade --assume-no'
compdef _aglu aglu='sudo apt-get -u upgrade --assume-no'

37
38
39
40
41
42
alias afu='sudo apt-file update'
compdef _afu afu='sudo apt-file update'

alias ppap='sudo ppa-purge'
compdef _ppap ppap='sudo ppa-purge'

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
alias ag="sudo $APT"               # age - but without sudo
alias aga="sudo $APT autoclean"    # aac
alias agb="sudo $APT build-dep"    # abd
alias agc="sudo $APT clean"        # adc
alias agd="sudo $APT dselect-upgrade" # ads
alias agi="sudo $APT install"      # ai
alias agp="sudo $APT purge"        # ap
alias agr="sudo $APT remove"       # ar
alias agu="sudo $APT update"       # ad
alias agud="sudo $APT update && sudo $APT dist-upgrade" #adu
alias agug="sudo $APT upgrade"     # ag
alias aguu="sudo $APT update && sudo $APT upgrade"      #adg
alias agar="sudo $APT autoremove"

compdef _ag ag="sudo $APT"
compdef _aga aga="sudo $APT autoclean"
compdef _agb agb="sudo $APT build-dep"
compdef _agc agc="sudo $APT clean"
compdef _agd agd="sudo $APT dselect-upgrade"
compdef _agi agi="sudo $APT install"
compdef _agp agp="sudo $APT purge"
compdef _agr agr="sudo $APT remove"
compdef _agu agu="sudo $APT update"
compdef _agud agud="sudo $APT update && sudo $APT dist-upgrade"
compdef _agug agug="sudo $APT upgrade"
compdef _aguu aguu="sudo $APT update && sudo $APT upgrade"
compdef _agar agar="sudo $APT autoremove"
70
71
72
73
74
75
76

# Remove ALL kernel images and headers EXCEPT the one in use
alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \
	?not(~n`uname -r`))'

# Misc. #####################################################################
# print all installed packages
77
alias allpkgs='dpkg --get-selections | grep -v deinstall'
78
79
80
81
82
83

# Create a basic .deb package
alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'

# apt-add-repository with automatic install/upgrade of the desired package
# Usage: aar ppa:xxxxxx/xxxxxx [packagename]
nextgenthemes's avatar
nextgenthemes committed
84
# If packagename is not given as 2nd argument the function will ask for it and guess the default by taking
85
# the part after the / from the ppa name which is sometimes the right name for the package you want to install
86
87
88
89
90
91
92
93
94
95
96
aar() {
	if [ -n "$2" ]; then
		PACKAGE=$2
	else
		read "PACKAGE?Type in the package name to install/upgrade with this ppa [${1##*/}]: "
	fi
	
	if [ -z "$PACKAGE" ]; then
		PACKAGE=${1##*/}
	fi
	
97
98
	sudo apt-add-repository $1 && sudo $APT update
	sudo $APT install $PACKAGE
99
100
101
102
103
104
105
106
107
}

# Prints apt history
# Usage:
#   apt-history install
#   apt-history upgrade
#   apt-history remove
#   apt-history rollback
#   apt-history list
Janosch Schwalm's avatar
Janosch Schwalm committed
108
# Based On: https://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
apt-history () {
  case "$1" in
    install)
      zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
      ;;
    upgrade|remove)
      zgrep --no-filename $1 $(ls -rt /var/log/dpkg*)
      ;;
    rollback)
      zgrep --no-filename upgrade $(ls -rt /var/log/dpkg*) | \
        grep "$2" -A10000000 | \
        grep "$3" -B10000000 | \
        awk '{print $4"="$5}'
      ;;
    list)
124
      zgrep --no-filename '' $(ls -rt /var/log/dpkg*)
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
      ;;
    *)
      echo "Parameters:"
      echo " install - Lists all packages that have been installed."
      echo " upgrade - Lists all packages that have been upgraded."
      echo " remove - Lists all packages that have been removed."
      echo " rollback - Lists rollback information."
      echo " list - Lists all contains of dpkg logs."
      ;;
  esac
}

# Kernel-package building shortcut
kerndeb () {
    # temporarily unset MAKEFLAGS ( '-j3' will fail )
    MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' )
    print '$MAKEFLAGS set to '"'$MAKEFLAGS'"
	appendage='-custom' # this shows up in $ (uname -r )
    revision=$(date +"%Y%m%d") # this shows up in the .deb file name

    make-kpkg clean

    time fakeroot make-kpkg --append-to-version "$appendage" --revision \
        "$revision" kernel_image kernel_headers
}

# List packages by size
function apt-list-packages {
    dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | \
    grep -v deinstall | \
    sort -n | \
    awk '{print $1" "$2}'
}