作为服务器使用广泛,原因: linux是一个操作系统
- 资源占用比较小
- 兼容性比较好
- 比较安全,相对于windows而言,
用虚拟机装linux。
一、ls,列出文件目录
ls是list files的缩写,意思是列出文件和目录。
pwd 输出当前的目录
1、ls的直接使用,列出了ll的区别
2、ls -a ,显示全部文件,a是单词all的缩写
3、ls -l , 长格式显示文件信息,l 是单词Long的缩写
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)。
-l (默认字母序)除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出。
-r 将文件以相反次序显示(原定依英文字母次序)。
-t 将文件依建立时间之先后次序列出。
长格式显示的详细信息的意义:
1) 第一列drwxr-xr-x ,字母d代表目录或者文件 ,目录directory的意思,若是l,表示链接,r表示read,w表示wirte,-表示是文件,x表示文件执行权限,一般这有三组权限:
第一组rwx表示该文件拥有者的权限,现在是有读写,执行的权限;
第二组r-x 表示用户组权限,现在是有读的权限和执行的权限,没有写的权限
最后三个r-x,表示对其他人访问的权限,就是针对其他所有人,现在有读,执行权限,没有写权限。
2) 第二列 数字2表示有多少个链接指向这个文件
3) 第三列 wls81是这个文件或文件夹的拥有者
4) 第四列,wls表示谁是这个文件或文件夹的所有组
5) 第五列,表示以字节为单位的大小,目录的大小总是4096大小
6) 第六列,文件的最后修改时间
7) 第八列,文件名或者目录名
4. ls -al ,列出所有文件并长格式显示
PS:点号开头的文件表示隐藏文件。
5、 ls / 显示根目录下文件清单,你不需要cd到根目录就可以直接查看它下的文件
6、ls ~ , 波浪线,这个可以显示用户的根目录
7、ls .. 查看父目录的文件
二、cd切换路径
windows dir
1、cd / ,切换到根目录
2、cd 后面跟着空格,默认切换到用户的home目录,cd后面跟着~,也就是波浪符,也是切换到用户home目录
3、在cd过程中经常结合Tab键一起使用,Tab键的好处是自动补全,例如你cd D 然后按下Tab键,会自动化变成cd Desktop,前提是你当前路径下只有一个大写D开头的文件夹
4、cd .. 切换到当前目录的父目录
三、cat
把字符串连接后输出到屏幕上,此时的标准输出就是屏幕
1)cat后面不谢任何参数,可以默认打开一个空白文件,可以随意写东西,如果要退出,ctrl+d,d~end
2)cat file 打开文件
3)cat -b file
-b 是no blank,不计算空行的情况下显示行号
4)cat -n file
行数显示,空行也计算
5)cat -E file
显示到每行结束部分,并在每行尾部显示''符号
实例:
1)把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
cat -n log2012.log log2013.log
2)把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里
cat -b log2012.log log2013.log log.log
四、touch 快速创建空文件
touch file.txt。
cat创建文件。 cat > file.txt,终端里面输入的字符保存到一个具体文件中file.txt。
#后面内容表示备注
在shell脚本中,用$变量名称来引用变量
echo $BASH BASH是系统变量,这样可以打印系统变量的值
用户自定义变量
name=sunny #等号前后不要有空格
echo my name is $name
总结:
shell脚本中,#表示注释内容,变量赋值时,不要有空格,变量是用$后面跟着变量名来引用变量
五、echo
把文本输出到标准输出,例如终端。有点类似开发语言中的print语句。
1)echo的基本用法
echo hello
echo “hello”
2)echo和变量的使用
v="this is test"
echo $v
x= 10
echo "the value of x is x"
3)echo 处理字符转义的输出
有时候,我们需要输出多行,需要用到换行符号,有时候需要用到制表符。
echo 'some \text'
echo 'some \ntest
\t表示制表符,就是一个tab输出的空格,\n表示换行符号'
六、其他
which告诉你相关程序的路径,whatis就是查询一个命令的含义。
七、ifconfig
1)whatis ifconfig
2)直接ifconfig。
eth0 表示有线网卡,如果有多个网卡,可能还有eth1,eth2等,如果是无线的笔记本,可能有wth0,表示无线网卡,可以看到硬件地址,
八、grep
grep:global search regular expression(RE)and print out the line的缩写。意思是找到符合一定规则的字符并打印该行到终端。grep主要是用来在文件中匹配摘取一些按照一定规则的字符串。
1)grep -n 'sth' filename
-n显示行号
2)在多个文件中查找
grep -n "sth" file1 file2
grep -n "sth" *
3)grep -i "sth" 表示忽略大小写,i~ ignore.忽略的意思
4)grep -v “sth” 不包含sth的字段
v~invert match 不匹配
5)grep -A 20 后20行,-after-context显示匹配字符后n行
6)grep -B 20 前20行,--before-context显示匹配字符前n行
7)grep -C 20 前后20行,--context 显示匹配字符前后n行
九、 ps process status 查看进程(动态)
PS:
$表示这个用户是一个普通用户,
#说明这个用户是一个管理员权限的用户,例如root用户。su 可以切换到其他用户
经常使用的命令是
su 用户名称
和
su - 用户名称
两者的使用用途有所不同,不注意区分会发生意想不到的问题。
su命令
使用该命令进行用户切换后,环境变量不发生改变,使用的环境变量还是切换前的用户环境变量。
切换后,当前文件目录不变。
su - 命令
使用该命令进行用户切换后,环境变量发生改变,使用的环境变量变为切换后的用户环境变量。
切换后,当前文件目录变为 '/home/用户名',也就是进入了切换后用户的根目录。
作者:Starting_Point
链接://www.greatytc.com/p/df98f6a8c2c9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
十、whereis 命令
whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。
参数:
- -b 定位可执行文件。
- -m 定位帮助文件。
- -s 定位源代码文件。
十一、which 命令
在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
- which 查看可执行文件的位置。
- whereis 查看文件的位置。
- locate 配合数据库查看文件位置。
- find 实际搜寻硬盘查询文件名称。
which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
[root@bigdatafat026048 aivms.ppdapi.com]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python3.6 /usr/bin/python3.6m /usr/bin/python2.7-config /usr/bin/python3.6-config /usr/bin/python3.6m-config /usr/bin/python3.6m-x86_64-config /usr/lib/python2.7 /usr/lib/python3.6 /usr/lib64/python2.7 /usr/lib64/python3.6 /etc/python /usr/local/lib/python3.6 /usr/include/python2.7 /usr/include/python3.6m /usr/share/man/man1/python.1.gz
[root@bigdatafat026048 aivms.ppdapi.com]# whereis -s python
python:[root@bigdatafat026048 aivms.ppdapi.com]# whereis -m python
python: /usr/share/man/man1/python.1.gz
[root@bigdatafat026048 aivms.ppdapi.com]# which python
/usr/bin/python
[root@bigdatafat026048 aivms.ppdapi.com]# echo $PATH
/www/apache-jmeter-4.0/bin:/usr/local/java/bin:/usr/local/java/bin:/usr/local/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/java/jre/bin:/usr/local/java/jre/bin:/home/dingshuai/.local/bin:/home/dingshuai/bin
mysql -hrm-uf6s6h54plk523al1.mysql.rds.aliyuncs.com -uzhiniu_api -p'8FzNzAJAzvCKCsgz.m)T3ARC'
998 ll
999 cd /data/log/
1000 kk
1001 ll
1002 cd messages
1003 less messages
1004 tail -f messages
1005 ll
1006 tail -f messages |grep 'unimrcp108'
1007 ps -ef | grep java
1008 cd /www/
1009 ls
1010 cd zhiniu_data/
1011 ls
1012 cd
1013 cd /usr/
1014 ls
1015 cd local/
1016 ls
1017 cd src/
1018 ls
1019 cd /
1020 find / -name fslog
1021 find / -name fslog*
1022 cd /data/
1023 ls
1024 cd /etc/cron.d/
1025 ls
1026 cat 0hourly
1027 cat raid-check
1028 cat sysstat
1029 cd ..
1030 ls
1031 cat cron.hourly/
1032 cd cron.hourly/
1033 ls
1034 cat 0anacron
1035 cd ..
1036 ls
1037 cat /etc/rsyslog.conf
1038 cd /var/log/cron
1039 cat /var/log/cron
1040 cat /var/log/cron-20210718
1041 cd
1042 df -h