Linux各种开发版我们应该知道的几个基础命令

基础知识
.代表当前目录
..代表上一级目录
在linux中输入一个文件名或文件时可以用TAB键进行自动补全名字
要创建隐藏文件只需要在文件名前面加一个.
白色表示文件 蓝色是文件夹
linux系统下文件夹与文件不同区别


ls命令详解

命令作用含义
pwd查看当前文件夹
ls文件夹内容
ls -a查看当前文件夹里面所有目录或文件,包括隐藏文件
ls -l以列表的方式显示当前文件夹里面文件的详细信息
ls -l -h配合-l来人性化显示文件大小
ls -lha人性化显示所有文件的详细信息

如果当前文件夹里面文件过多,无法快速找到我们需要的文件,我们需要使用ls的通配符
“*”或者“?”,比如我输入ls 1*,则只会显示1开头的文件夹或者文件,输入ls *1.txt则只会显示以1.txt结尾的文件,输入ls 1?1则只会显示开头一个字符是1且结尾一个字符为以的文件夹或文件,且?只能代表一位数字。


cd命令详解

命令作用含义
cd回到家目录
cd test进入当前文件夹下的test文件夹
cd .当前目录
cd ..返回上一目录
cd -在最近两次工作目录中来回切换

touch命令详解

命令作用含义
touch test.txt在当前文件夹下创建test.txt

如果文件不存在,则创建该文件,如果存在该文件,则会修改文件的创建日期。注意的是touch命令只能创建文件,不能创建文件夹!


mkdir命令详解

命令作用含义
mkdir test在当前文件夹下创建test文件夹
mkdir -p a/b在当前文件夹下创建a文件夹,在a文件夹下面创建b文件夹

注意的是touch命令只能创建文件夹,不能创建文件!


rm命令详解

命令作用含义
rm test.txt删除当前文件夹下的test.txt文件
rm -r test删除当前文件夹下的test目录

注意的是rm命令和ls一样有通用的通配符


拷贝和移动文件
我们首先要安装tree命令:yum install tree

命令作用含义
tree输出当前文件夹和文件的树状图
tree -d输出当前文件夹的树状图
cp test.txt test/把当前文件夹下的文件复制到当前目录的test目录下
mv test.txt test/把当前文件夹下的文件移动到当前目录的test目录下
mv test.txt test1.txt把当前文件夹下的test.txt重命名

查看文件内容

命令作用含义
cat test.txt显示test.txt内容(显示文本的全部内容)
cat -b test.txt显示test.txt内容和行号(不包含空行)
cat -n test.txt显示test.txt内容(包含空行)
more test.txt显示test.txt内容(只显示文本部分的内容)
grep -n test test.txt查找test.txt中有test文本的行号
grep -i Test test.txt查找test.txt有test文本(不分大小写)
grep -in "Test 1" test.txt查找test.txt中有T(t)est 1文本的行号

定时关机重新启动

命令作用含义
shutdown一分钟后关机(服务器慎用)
shutdown 00:00今天00:00关机(服务器慎用)
shutdown -r now现在重新启动电脑
shutdown -c取消关机或重新启动

用户权限命令

权限缩写数字
r4
w2
执行x1
无权限-0
命令作用含义
chmod -rw test.txt对当前用户撤销对test.txt的读写权限
chmod +rw test.txt对当前用户增加对test.txt的读写权限
chmod -rw test对当前用户撤销对test目录的读写权限
chmod +rw test对当前用户增加对test目录的读写权限

在任何命令前面加上sudo则赋予执行这个命令的用户超级权限


打包压缩
tar只打包不压缩,gz才有压缩功能哟!

命令作用含义
tar -cvf test.tar ./test把当前文件夹下的test打包为test.tar
tar -xvf test.tar ./test把当前文件夹下的test.tar解包到test
tar -zcvf test.tar ./test把当前文件夹下的test打包为test.tar.gz
tar -zxvf test.tar ./test把当前文件夹下的test.tar.gz解包到test

软件安装

命令作用含义
sudo apt install 软件包安装包
sudo apt remove 软件包卸载某个已经安装的包
sudo apt upgrade更新已经安装的包
tar -zxvf test.tar ./test把当前文件夹下的test.tar.gz解包到test

编辑文本

命令作用含义
vi test.txt编辑test.txt文档
wq保存退出编辑
w保存不退出编辑
q不保存退出编辑

上传下载

命令作用含义
yum -y install lrzsz安装上传程序
rz上传某个文件
sz下载某个文件

其他软件安装命令安装

命令作用
yum -y update升级系统的yum功能
yum -y install wget安装wget命令
yum inatall git安装git命令

前方高能!!!
字符集修改

cd /etc/sysconfig/
sudo vi i18n
LANG="zh_CN.utf8"
source  /etc/sysconfig/i18n

设置 DNS

vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8

配置 Yum 源

cd /etc/yum.repos.d/
sudo mv CentOS-Base.repo CentOS-Base.repo_bak
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache

设置时区

yum install ntp -y
timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp yes    #同步
timedatectl # 查看时区

常用软件

yum install epel-release -y
yum -y update
yum clean all
yum makecache
yum -y install wget bind-utils net-tools lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl     curl-devel unzip sudo ntp libaio-devel wget ncurses-devel autoconf automake zlib-devel  python-devel

Vim

yum -y install vim
curl -sLf https://spacevim.org/cn/install.sh | bash -s -- -h
vi  ~/.SpaceVim.d/

Git

yum -y install git
git config --global user.name SimonMa
git config --global user.email simon@tomotoes.com
git config --global http.sslverify false
git config --global https.sslverify false

# 远程仓库密钥生成
ssh-keygen -t rsa -C "simon@tomotoes.com"

Zsh

# 安装 zsh 包
yum -y install zsh
# 切换默认shell为zsh
chsh -s /bin/zsh
# 重启服务器
reboot
# 安装on my zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
vi ~/.zshrc
ZSH_THEME="agnoster"
# autojump
yum install autojump -y
yum install autojump-zsh

# zsh-autosuggestions
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-    zsh/custom}/plugins/zsh-syntax-highlighting

# 配置.zshrc文件
plugins=(
  git 
  autojump 
  zsh-autosuggestions
  zsh-syntax-highlighting
  z
  extract
)

source ~/.zshrc

更新
upgrade_oh_my_zsh
卸载
uninstall_oh_my_zsh

Nodejs

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
source   ~/.bashrc

# 安装node的最新稳定版
nvm install stable

# 查看安装版本
nvm list

# 配置
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
npm config set puppeteer_download_host https://npm.taobao.org/mirrors

Nginx

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

sudo yum install -y nginx

# 启动 Nginx
sudo systemctl start nginx.service

# 将 Nginx 加入到开机启动
sudo systemctl enable nginx.service

*命令别名*
vi ~/.zshrc

alias shadow='/etc/init.d/shadowsocks'
alias vi='vim'

alias ls='ls --color=auto'
alias ll="ls --color -al"
alias grep='grep --color=auto'

# 查看当前时间
alias now='date "+%Y-%m-%d %H:%M:%S"'

alias reboot='sudo /sbin/reboot'
alias poweroff='sudo /sbin/poweroff' 
alias halt='sudo /sbin/halt'
alias shutdown='sudo /sbin/shutdown'

# 自动创建父目录
alias mkdir='mkdir -pv'

# 解压任何文件
extract() { 
    if [ -f $1 ] ; then 
      case $1 in 
        *.tar.bz2)   tar xjf $1     ;; 
        *.tar.gz)    tar xzf $1     ;; 
        *.bz2)       bunzip2 $1     ;; 
        *.rar)       unrar e $1     ;; 
        *.gz)        gunzip $1      ;; 
        *.tar)       tar xf $1      ;; 
        *.tbz2)      tar xjf $1     ;; 
        *.tgz)       tar xzf $1     ;; 
        *.zip)       unzip $1       ;; 
        *.Z)         uncompress $1  ;; 
        *.7z)        7z x $1        ;; 
        *)     echo "'$1' cannot be extracted via extract()" ;; 
         esac 
     else 
         echo "'$1' is not a valid file" 
     fi 
}

# 查看文件/目录大小
alias size='f(){ du -sh $1* | sort -hr; }; f'

# 开放端口
alias portopen='f(){ /sbin/iptables -I INPUT -p tcp --dport $1 -j ACCEPT; }; f'
# 关闭端口
alias portclose='f(){ /sbin/iptables -I INPUT -p tcp --dport $1 -j DROP; }; f'

# 解压
alias untar='tar xvf '

alias -s html='vim'   # 在命令行直接输入后缀为 html 的文件名,会在 Vim 中打开
alias -s rb='vim'     # 在命令行直接输入 ruby 文件,会在 Vim 中打开
alias -s py='vim'      # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似
alias -s js='vim'
alias -s md='vim'
alias -s mjs='vim'
alias -s css='vim'
alias -s c='vim'
alias -s java='vim'
alias -s txt='vim'
alias -s gz='tar -xzvf' # 在命令行直接输入后缀为 gz 的文件名,会自动解压打开
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'
alias -s json='vim'
alias -s go='vim'

alias cat=ccat
alias man=tldr
eval "$(thefuck --alias)"

# Load zsh-syntax-highlighting.
source ~/.oh-my-zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
#
# Load zsh-autosuggestions.
source ~/.oh-my-zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
#

# Enable autosuggestions automatically.
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=10"

# 保存
source ~/.zshrc
# 列出 bash 别名
alias

# 创建一个 bash shell 别名
alias name=value
alias c='clear'

# 删除别名
unalias aliasname

# 如果想要使别名永久生效, 请编辑
vi ~/.zshrc

连按两次Tab会列出所有的补全列表并直接开始选择,补全项可以使用 ctrl+n/p/f/b上下左右切换
1.命令选项补全。在zsh中只需要键入 tar - 就会列出所有的选项和帮助说明
2.命令参数补全。键入 kill 就会列出所有的进程名和对应的进程号
3.更智能的历史命令。在用或者方向上键查找历史命令时,zsh支持限制查找。比如,输入ls,然后再按方向上键,则只会查找用过的ls命令。而此时使用则会仍然按之前的方式查找,忽略 ls
4.多个终端会话共享历史记录
5.智能跳转,安装了 autojump 之后,zsh 会自动记录你访问过的目录,通过 j 目录名 可以直接进行目录跳转,而且目录名支持6.模糊匹配和自动补全,例如你访问过 hadoop-1.0.0 目录,输入j hado 即可正确跳转。j –stat 可以看你的历史路径库。
7.目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。
8.在当前目录下输入 .. 或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。在你知道路径的情况下,比如 /usr/local/bin 你可以输入 cd /u/l/b 然后按进行补全快速输入
9.通配符搜索:ls -l /*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find。使用 / 来递归搜索
扩展环境变量,输入环境变量然后按 就可以转换成表达的值
10.在 .zshrc 中添加 setopt HIST_IGNORE_DUPS 可以消除重复记录,也可以利用 sort -t “;” -k 2 -u ~/.zsh_history | sort -o ~/.zsh_history 手动清除
11.至此,你现在的zsh应该具备如下几个特性:
①各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下tab键,补全项可以使用ctrl+n/p/f/b上下左右切换。比如你想杀掉java的进程,只需要输入kill java + tab键,如果只有一个java进程,zsh会自动替换为进程的pid,如果有多个则会出现选择项供你选择。ssh + 空格 + 两个tab键,zsh会列出所有访问过的主机和用户名进行补全;
②即使你没有安装autojump,只要输入d,就会列出你在这个回话中访问的目录,输入前面的序号,就可以直接跳转;
③可以忽略cd命令, 输入..或者...和当前目录名都可以跳转; 当然,除了上面几点,zsh还有很多丰富的插件可以使用,这就需要继续的探索了…
clear|清屏

最后修改:2019 年 08 月 10 日 04 : 00 PM
如果觉得我的文章对你有帮助,可以给我来杯卡布其诺

3 条评论

  1. 阿捷吖

    收藏了

  2. 松鼠大大

    ( ̄o ̄) . z Z晚安

    1. JiuDe
      @松鼠大大

      午安OωO

发表评论 取消回复