一、解压 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
** 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'的表示是开机自启的,使光标移动到相应的位置,按下 空格键,即可进行相应设置。
七、文件权限
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 的区别
如上图:端口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