Ubuntu 命令积累

一、解压 zip

zip文件,在Ubuntu下默认的编码是UTF-8,而Windows下默认的编码是GBK,解决方案是: 解压时指定字符集,可以是,CP936,GBK,GB18030

$ unzip -O GBK xxx.zip 

三、vim 编辑器 显示行号

#临时显示:进入编辑某一个文件,然后键入:
: set number     或者   :set nu

#永久性显示

$ vim /etc/vim/vimrc
#在最后一行添加:
set number   或   set nu

四、ubuntu 安装 ftp 服务----vsftpd

$ sudo apt-get install vsftpd
$ ps -e | grep ftp    #查看vsftpd是否在运行
 
##3721 ?        00:00:00 vsftpd      说明vsftpd 已在运行

##修改 /etc/vsftp.conf
$ sudo vim /etc/vsftp.conf
Ubuntu 命令积累_第1张图片
vsftp.conf 部分内容

** anonymous_enable = NO ** 禁止无密码登录
write_enable=YES 此时才可以通过 ftp软件向服务器传文件

## 重启vsftpd 服务
$ sudo service vsftpd stop
$ sudo service vsftpd start

此时便可以通过ftp工具进行文件传输了。

五、scp 文件传输

***使用 scp 的前提是目标主机要安装 openssh-server ***

## 1、向服务器上传文件

$ scp /usr/local/mongodb-linux-x86_64-ubuntu1404-3.4.1.tgz [email protected]:/usr/local

##  此时会报错:scp: /usr/local/mongodb-linux-x86_64-ubuntu1404-3.4.1.tgz: Permission denied

##意思是说 你用administrator用户来传输文件,但是 目标主机的 /usr/local 没有给administrator用户开权限。
## 我们可以先传到 administrator的home目录:~

$ scp /usr/local/mongodb-linux-x86_64-ubuntu1404-3.4.1.tgz [email protected]:~

## 然后在移动到目标路径

## 2、从服务器下载文件

$ scp [email protected]:/root/aa.txt  /root/download   ## 前面是服务器地址以及需要下载的文件所在的路径,后面的是本地的下载目录

六、可视化 设置是否开机自启

我们可以使用 sysv-rc-conf 来可视化管理开机启动项

$ sudo apt-get install sysv-rc-conf
$ sudo sysv-rc-conf

有 'X'的表示是开机自启的,使光标移动到相应的位置,按下 空格键,即可进行相应设置。

Ubuntu 命令积累_第2张图片
可视化--开机自启

七、文件权限

ls

-l中显示的内容如下:

-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc

  • 10个字符确定不同用户能对文件干什么

  • 第一个字符代表文件(-)、目录(d),链接(l)

  • 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

  • 第一组rwx:文件所有者的权限是读、写和执行

  • 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

  • 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7

  • 1 表示连接的文件数

  • root 表示用户

  • root表示用户所在的组

  • 1213 表示文件大小(字节)

  • Feb 2 09:39 表示最后修改日期

  • abc 表示文件名

改变权限的命令

chmod 改变文件或目录的权限

chmod 755 abc:赋予abc权限rwxr-xr-x

chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限

chmod a+r abc:给所有用户添加读的权限

八、文件特殊权限 s和t

[root@localhost ~]# ls -ld /usr/bin/passwd  /tmp
drwxrwxrwt 4 root root  4096 Jun  2 17:33 /tmp
-rwsr-xr-x 1 root root 22984 Jan  7  2007 /usr/bin/passwd

这个s权限,是为了让一般使用者临时具有该文件所属主/组的执行权限。

比如/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,只能时临时让他们具有root的权限。所以这个s权限就是用来完成这个特殊任务的。

s权限只能应用在二进制的可执行文件上。

如果你不想让普通用户修改自己的密码,只需要

[root@localhost ~]# chmod u-s /usr/bin/passwd  或者
[root@localhost ~]# chmod 0755 /usr/bin/passwd

0755最前面的0表示不使用任何特殊权限,该位上的数字可以是0,1(--t),2(-s-),3(-st),4(s--),5(s-t),6(ss-),7(sst)

t权限只针对目录生效,它表示只能让所属主以及root可以删除(重命名/移动)该目录下的文件

[root@localhost ~]# cd /tmp/
[root@localhost tmp]# mkdir test
[root@localhost tmp]# chmod 1777 test
[root@localhost tmp]# ls -ld test
drwxrwxrwt 2 root root 4096 Jun  2 18:10 test
[root@localhost tmp]# su test1
[test1@localhost tmp]$ touch test/1.txt
[test1@localhost tmp]$ ls -l test
total 4
-rw-r--r-- 1 test1 test 0 Jun  2 18:12 1.txt
[test1@localhost tmp]$ exit
[root@localhost tmp]# su www
[www@localhost tmp]$ ls -l test/1.txt
-rwxrwxrwx 1 test1 test 6 Jun  2 18:12 test/1.txt
[www@localhost tmp]$ rm test/1.txt
#rm: cannot remove `test/1.txt': Operation not permitted
#提示不能删除1.txt
[www@localhost tmp]$ exit
[root@localhost tmp]# chmod -t test
#去掉t权限。
[root@localhost tmp]# ls -ld test
drwxrwxrwx 2 root root 4096 Jun  2 18:13 test
[root@localhost tmp]# su www
[www@localhost tmp]$ rm -f test/1.txt
#再次删除,则删除成功。
[www@localhost tmp]$ ls test/1.txt
#ls: test/1.txt: No such file or directory

九、查看文件内容

cat可以在非编辑模式下查看文档内容;
vi/vim进入编辑器查看

$ less test.txt
$ cat test.txt
#进入非编辑模式下查看文档内容,并可以通过  j、k进行上下一行翻页;
# f 和 pgdn 都是向下一屏   pgup 向上一屏

十、粘贴内容(命令行、vim编辑器)

命令行中按下组合键:Ctrl 和 :,会出现当前剪切的内容列表,然后输入你想要粘贴的内容的序号即可。

Vim 中 需要先 输入 i,进入编辑模式,再进行上面的操作

十一、安装 *.deb包

sudo dpkg --install  ****.deb

十二、防火墙开启某一个端口

$ netstat -ntlp   ##查看端口占用情况
$ iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
$ systemctl restart iptables.service   ## 重启防火墙
$ service iptables restart

十三、配置环境变量

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。

1.系统级
(1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件。
/etc/bash.bashrc:系统级的bashrc文件。
(2)/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。

注意:
1、/etc/environment 每次更改需要重启系统。source /etc/environment 的话只会在当前窗口起作用。
2、有的系统这个文件里面空的。此时如果你在里面只添加了某一个自定义路径(如:PATH="/root/nodejs/bin"),然后你重启了系统,那么会导致好多命令用不了(报:-bsah commoned not found),是因为系统从该文件中找环境变量时找不到/bin导致的(关键是此时你连vi命令都用不了!)。
解决办法是:在命令行中输入:export PATH=/bin:$PATH。然后你就可以用vi命令了,此时编辑/etc/environment文件,把其他常用的环境变量添加进去(PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/root/nodejs/bin:")。
然后重启系统,就可以了。

2.用户级(这些文件处于家目录下):
(1)~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。这里是推荐放置个人设置的地方

在原有的 PATH=$PATH:$HOME/bin后面加上:/usr/local/nginx/sbin
其中/usr/local/nginx/sbin,是你新增的 nginx的环境变量。
配置完成以后需要退出当前登录重新登录。

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin

export PATH

(2)~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。不推荐放到这儿,因为每开一个shell,这个文件会读取一次,效率肯定有影响。
~/.bash_profile or ~./bash_login
~/.pam_environment:用户级的环境变量设置文件

十四、wget 下载 https链接的文件

#可以不需要ssl验证
wget  --no-check-certificate https://www.xxx.com/dir/abc.tgz

十五、查看系统名称是Ubuntu/RedHat/CentOS等

  # lsb_release -a

LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID:    CentOS
Description:    CentOS release 5.7 (Final)
Release:    5.7
Codename:    Final

十六、cp命令复制多个文件夹到某一目录中

## 将 dir1、dir2、dir3、dir4 复制到 newDir目录中
$ cp -R /root/{dir1,dir2,dir3,dir4} /root/newDir

十七、basename、dirname

1、basename 获取当前所处文件夹的名称
### 例如我当前在:/usr/local/workspace/test01目录下
$ basename $(pwd)
## 输出:test01
2、dirname 获取当前文件夹所在的目录
### 例如我当前在:/usr/local/workspace/test01目录下
$ dirname $(pwd)
## 输出:/usr/local/workspace

十八、0.0.0.0 和 127.0.0.1 的区别

Ubuntu 命令积累_第3张图片
image.png

如上图:端口4873监听在 127.0.0.1上,导致虽然开放了 4873端口,但是浏览器访问不了。
需要监听在 0.0.0.0上。

十九、修改SSH链接有效时间

ssh连接超时问题解决方案:

1.修改server端的etc/ssh/sshd_config

ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接

ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应

2.修改client端的etc/ssh/ssh_config添加以下:(在没有权限改server配置的情形下)

ServerAliveInterval 60 #client每隔60秒发送一次请求给server,然后server响应,从而保持连接

ServerAliveCountMax 3 #client发出请求后,服务器端没有响应得次数达到3,就自动断开连接,正常情况下,server不会不响应

二十、查看文件或文件夹的大小

// 1、默认会递归列出当前目录下左右目录及子目录的文件大小 
$ du -h   
  0B    ./branches
 68K    ./hooks
4.0K    ./info
4.0K    ./logs/refs/heads/feature/sdq
4.0K    ./logs/refs/heads/feature
8.0K    ./logs/refs/heads/wxq/fix
8.0K    ./logs/refs/heads/wxq
4.0K    ./logs/refs/heads/zp
 20K    ./logs/refs/heads
4.0K    ./logs/refs/remotes/origin/bugfix
4.0K    ./logs/refs/remotes/origin/cxd/feature/HFE-33864

// 2、可以指定某个目录
$ du -h logs
4.0K    ./logs/refs/heads/feature
8.0K    ./logs/refs/heads/wxq/fix
8.0K    ./logs/refs/heads/wxq
4.0K    ./logs/refs/heads/zp
 20K    ./logs/refs/heads
4.0K    ./logs/refs/remotes/origin/bugfix
4.0K    ./logs/refs/remotes/origin/cxd/feature/HFE-33864
4.0K    ./logs/refs/remotes/origin/cxd/feature/HFE-3396
14.0K    ./logs/refs/remotes/origin/cxd/feature/HFE-36051
 24K    ./logs/refs/remotes/origin/cxd/feature
 28K    ./logs/refs/remotes/origin/cxd
4.0K    ./logs/refs/remotes/origin/dp/bugfix

// 3、可以不一一列举,只展示总大小
$ du -sh logs
45.0K    logs

二十一、清空命令行历史


# 第一步: 删除 .bash_history 文件
rm -rf ~/.bash_history
 
# 第二步: 清空命令历史记录
history -c

你可能感兴趣的:(Ubuntu 命令积累)