0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linux常用命令汇总

Last updated at Posted at 2022-02-02

命令行相关

代码行的艺术: https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md
解读代码: https://explainshell.com/
引号嵌套: https://stackoverflow.com/questions/24245661/unix-alias-fails-with-awk-command

关于yum

查看所有包的版本
yum --showduplicates list XXXX
查看现在直接装的版本
yum list available XXXX –showduplicates
查看已经装的内容
yum list installed| grep ya-feed-batch
装特定版本
yum install <package name>-<version info>

查看配置

  • cpu: lscpu
  • mem: free -h
  • disk: df -h
    • mac: diskutil list diskutil info -all更有用
  • file usage: du -h --max-depth=1 PATH | sort -hr
  • os: hostnamectl, lsb_release -a

添加本地用户

$ sudo adduser cdp
$ sudo passwd cdp
# 添加到组
$ sudo gpasswd -a cdp wheel
# 确认
$ sudo lid -g wheel

查看本地用户和组,打印列表

cut -d: -f1,3,4 /etc/passwd

注意:通过这个方法找不到通过sssd同步过来的用户,想查看远程(例如ldap)用id, getent

id shyao
getent passwd shyao

查看DNS信息

$ nslookup <IP>
$ nslookup <HOSTNAME>
$ cat /etc/resolv.conf

或者

$ dig -x <IP> +short
$ dig <HOSTNAME> +short

这里的nslookup/dig只反应dns的查找路径,他是不看/etc/hosts
可以通过nsswitch.conf来查看host的查看顺序,
譬如下面:先看files(etc/hosts)再看dns

$ cat /etc/nsswitch.conf  | grep hosts
hosts:          files dns

查看系统信息

  • 查看开机信息: dmesg
  • 查看系统日志: journalctl -x journalctl -u <service_name>

查看线程

ps auxww
例:抓zoo的线程
ps auxww | grep zoo

查看服务端口

sudo netstat -ltnp

vim常用

  • 显示行号: set number
  • 替换: %s/shyao/usera/gc

向另一个服务器传文件

scp命令
例:把本地的key文件传给服务器的指定目录
scp syao.prod.keytab syao-dev01.ogk.ynwm.co.jp:/home/syao/
传文件夹
scp -r
例:现在需要拷贝一整个文件夹的内容
scp -r /Users/syao/Downloads/mysql-metadata-storage syao-dev01.yas.ssk.ynwm..co.jp:/home/syao/druid-0.12.0/extensions
rsync命令
rsync -avz --exclude='.git' feed-ansible-druid gw104.cyan.ygrid.cc1:~/

压缩文件

tar -zcvf xxxx.tar.gz directory

解压文件

tar -zxvf <filename>
z means (un)z̲ip.
x means ex̲tract files from the archive.
v means print the filenames v̲erbosely.
f means the following argument is a f̱ilename.

查看压缩内容

tar -tvf <filename>

更新压缩内容

tar -rvf <target> <resource path>

查看文件(单纯查看)

less + 文件名

输出错误

echo foo 2>&1

同步文件

rsync -az druid-0.12.0/ COORDINATION_SERVER:druid-0.12.0/

查找当前目录下的文件和文件夹(不会查子目录)

ls -l |grep yum

查找指定目录下的全部文件(包含子目录)

例:全目录下找yum
sudo find / -name “yum.*”

查找指定目录下的全部文件夹(包含子目录)

find /(查找范围) -name '查找关键字' -type d

进入root模式

sudo su

查找文件中的字符串

grep -rnw '/path/to/somewhere/' -e 'pattern'
Example: grep -rnw '/home/syao/druid-0.12.0/log/' -e 'GET'

字符串高亮(highlight)

ack --passthru 'pattern1' file_name
command_here | ack --passthru 'pattern1'

查找.gz文件中的字符串

zgrep 'ERROR' XXX.log.gz | more

查找并高亮(关键在less -p)

grep a9c49cf077e96c3 server.log | less -p 'a9c49cf077e96c3'

mv同时移动多个文件至一个目录

mv a.dir b.dir c.dir index.html zz.txt -t idolaoxu
mv /path/sourcefolder/* /path/destinationfolder/

跟踪文件的更新(常用于log)

tail -f XXXX

环境变量相关(path,lib)

查看全体
printenv
查看个别变量
echo $XXX
设置个别变量
export XXX=$YYY
export PATH="$PATH:/path/to/dir"
常用的变量
PYTHONPATH
设置快捷方式
例:希望所有的python3命令使用python36
sudo ln -s /usr/bin/python3.6 /usr/bin/python3

shell相关

切换shell

chsh -s /bin/zsh

多行输入文件

  • echo 不能输出多行,如果需要,那么请使用cat
  • 被EOS夹着的部分默认语法和""双引号一致
  • <<EOS使用时需要顶格
cat > ${rotate_job} << EOS
type=command
dependencies=XXXXX
q1=YYYYY
command=hostname
command.1=query_action --base_dir \${hql_base_dir} --file \${q1}
HCONF_tracking_id=${tid}
EOS

Mac相关(和linux的不同点汇总)

复制粘贴

pbcopy, pbpaste

xargs替换option

和linux的-i不同,是-I

super user

和linux的sudo su不同,用sudo -i即可

locate的使用

和linux的不同,用mdfind更方便

lsof来监听端口(比netstat方便)

lsof -iTCP -sTCP:LISTEN -P -n

netstatの使い方

netstat -vanp tcp | grep 3000
※参照:https://stackoverflow.com/questions/3855127/find-and-kill-process-locking-port-3000-on-mac

pmset 电源电池选项

查询当前配置
pmset -g custom
禁止进入sleep
sudo pmset -a sleep 0

python相关

关于导入lib

pip和brew,yum一样是用来装东西的。
pip装的东西是给python script用的。
所以.py里面有类似 from flask import Flask, request, jsonify 的语句,
直接运行 pip3 install flask即可。

虚拟环境(pip)

# 安装
pip install virtualenv
# 新建(venv是名字)
virtualenv venv
# 激活
. ./venv/bin/activate
# 关闭
deactivate

虚拟环境(python)

# 新建(第二个venv是名字)
python -m venv venv
# 激活
. ./venv/bin/activate
# 关闭
deactivate

查看安装包的版本

/opt/python36/bin/pip3 show XXXX

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?