Linux百问-001-020

001. apt-get upgrade vs apt-get dist-upgrade

apt-get upgrade will not change what is installed (only versions),

apt-get dist-upgrade will install or remove packages as necessary to complete the upgrade

upgrade

upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated in
/etc/apt/sources.list. Packages currently installed with new
versions available are retrieved and upgraded; under no
circumstances are currently installed packages removed, or packages
not already installed retrieved and installed. New versions of
currently installed packages that cannot be upgraded without
changing the install status of another package will be left at
their current version. An update must be performed first so that
apt-get knows that new versions of packages are available.

dist-upgrade

dist-upgrade in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages; apt-get has a “smart” conflict resolution system, and
it will attempt to upgrade the most important packages at the
expense of less important ones if necessary. So, dist-upgrade
command may remove some packages. The /etc/apt/sources.list file
contains a list of locations from which to retrieve desired package
files. See also apt_preferences(5) for a mechanism for overriding
the general settings for individual packages.

002. How do I find all files containing specific text on Linux?

 grep -rnw '/path/to/somewhere/' -e 'pattern'
-r or -R is recursive,
-n is line number, and
-w stands for match the whole word.
-l (lower-case L) can be added to just give the file name of matching files.
Along with these, --exclude, --include, --exclude-dir or --include-dir flags could be used for efficient searching:

This will only search through those files which have .c or .h extensions:

grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"

This will exclude searching all the files ending with .o extension:

grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"

Just like exclude files, it’s possible to exclude/include directories through –exclude-dir and –include-dir parameter. For example, this will exclude the dirs dir1/, dir2/ and all of them matching *.dst/:

grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

003. Delete empty folders in current directory

find . -type d -empty -delete
# User this only when you know exactly what you are doing

004. Change file line ending between unix and dos

unix -> dos

awk 'sub("$", "\r")' uniz.txt > windows.txt

dos -> unix

in vi: :1,$s/^M//g
[^M] is [Ctrl]+M

005. Switch GCC version

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50

使用gcc-4.9替代原gcc版本,Priority=50

update-alternatives --display gcc
列出gcc命令的链接组

update-alternatives --remove name path,其中name与path与install中的一致,如果所删除的链接组中还有其他链接的话,系统将会自动从其他中选择一个priority高的链接作为默认为链接。

006. Run chrome from shell / open .html file in Chrome

google-chrome foo.html

007. File/folder comparison

sudo apt-get install meld
meld diff1.md diff2.md

008. List file size

du -h | sort -h
du -h -d 1
# -h for human readable size, like 1M, 4k
# -d 1 to search one level
## Check disk usage of directories
sudo du -sh ./*

(Output)
348K    ./_archive
940K    ./docs
1.5G    ./_RARs
1.6G    ./tracker_benchmark

009. Count file number in current directory

ls -1 | wc -l

# 使用-1 每行列出一个文件
# wc -l 按行统计

010. Rename files in batch using regex

# using zsh command `zmv`
# run this in zsh
autoload zmv
zmv -w '*_*.mat' '$2_raw_$1.mat'

011. Kill processes with specific name

ps aux | grep Matlab | grep -v 'grep' | awk {print $2} | xargs kill -9

# grep -v to revert the meaning of matching 
# since the output of `ps aux` containing the grep process
# akw {print $2} to get the process PIE

# more short command to be learned

012. Clear/Cancel currernt line in terminal

# [Ctrl] + U to clear in current line
# [Ctrl] + C to cancel

013. How to manage packages

http://wiki.ubuntu.org.cn/Apt-get%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97

apt-cache search libffi

(Output)
libffi-dev - Foreign Function Interface library (development files)
libffi6 - Foreign Function Interface library runtime

sudo apt-get purge <package-name>

apt list --installed #列出安装的apt包

dpkg -i foo.deb     #install
dpkg -l | grep foo      #check installation status
dpkg -r foo     #remove program, but not configuration 
dpkg -P foo     #remove all, including configuration

014. Copy multiple files to one destination folder

cp /home/usr/dir/{file1,file2,file3,file4} /home/usr/destination/
# https://askubuntu.com/questions/327282/copying-multiple-specific-files-from-one-folder-to-another

015. Mount removeable disk (e.g. TOSHIBA)

sudo mount -t ntfs-3g /dev/sdc1 media/tmp
# Not the ntfs format, use ntfs-3g instead

016. Create new user and grant privileges @mysql

# 1. If you don't want to change current validate_password_settings
show variables like 'validate_password%';
create user 'lcar979'@'localhost' identified by 'password here'
user mysql

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
# The asterisks in this command refer to the database and table (respectively) 
# that they can access—this specific command allows to the user to read, edit, 
# execute and perform all tasks across all the databases and tables.


FLUSH PRIVILEGES;
# Once you have finalized the permissions that you want to set up for your 
# new users, always be sure to reload all the privileges.

# check users
select * from mysql \G

# 2. Or you can set current valdiate_password settings
set global validate_password_length = 6;
# then create new users

017. Hot to set default application

在你要设置的文件类型的某个文件上右键

选择Properties-Open With

018. How to delete PPA

# Method 1. Use the --remove flag, similar to how the PPA was added:
sudo add-apt-repository --remove ppa:whatever/ppa

# Method 2. As a safer alternative, you can install ppa-purge:
sudo apt-get install ppa-purge
# And then remove the PPA, downgrading gracefully packages it provided
# to packages provided by official repositories:
sudo ppa-purge ppa_name
#Note that this will uninstall packages provided by the PPA, but not
#those provided by the official repositories. If you want to remove
#them, you should tell it to apt:
sudo apt-get purge package_name

# Method 3. You can also remove PPAs by deleting the .list files from 
# /etc/apt/sources.list.d directory.

Last but not least, you can also disable or remove PPAs from the “Software Sources” section in Ubuntu Settings with a few clicks of your mouse (no terminal needed).

019. How to disable zsh glob pattern alert

setopt nonomatch

020. 不锁屏 & 屏幕快捷键

Brightness and lock 中设置不锁屏
Shift + PrintScreen 选择区域截图

Extra

watch -n 10 nvidia-smi 每隔10s执行一次指令

fortune 随机获得一句英文谚语、名言、电影台词等

fortune-zh 获得一句唐诗

(可以结合上面的watch一起用)

sudo !! 以sudo重新执行上一条命令

wget http://….. -q –show-progress
只显示下载进度条

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值